needs_replay: make simulated cases real aggregates, report buckets by state
Test / test (push) Successful in 26s
Test / test (push) Successful in 26s
A simulation that lives in JSON never meets the engine. needs_replay takes a simulation's cases and runs them through the code the site runs: answers::store_answer for the submission, aggregates::transition for each desk move, against a real JetStream with its event log and its refusal of undeclared moves. Buckets are then read back by replaying each record's events and reported per bucket against `done_when` and `success`. `--report-only` takes the same scorecard from any JetStream, a live site's included. First run, 30 cases from a generated contractor site on a throwaway in-memory NATS: 30 aggregates, 56 transitions accepted, none refused. The same routes against the earlier machine that skipped a stage: 8 refused, 8 of 12 enquiries left in `open`. The local-checkout loaders move from the lint binary to `portal::local` so both tools share them. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L4jrCgLiKKHAEFuZUJjckH
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
cbbc1c0da5
commit
6efd7a0c6b
@@ -111,6 +111,11 @@ name = "question_lint"
|
||||
path = "src/bin/question_lint.rs"
|
||||
required-features = ["ssr"]
|
||||
|
||||
[[bin]]
|
||||
name = "needs_replay"
|
||||
path = "src/bin/needs_replay.rs"
|
||||
required-features = ["ssr"]
|
||||
|
||||
[profile.wasm-release]
|
||||
inherits = "release"
|
||||
opt-level = 'z'
|
||||
|
||||
Reference in New Issue
Block a user