Repository navigation
stewards: read the typed wait's divergence state (BB-333) - #370
Merged
trotterdylan merged 1 commit intoNov 15, 2026
Merged
trotterdylan merged 1 commit into
trotterdylan merged 1 commit into
Conversation
Add a read-only `bb stewards wait-divergences` sibling to the BB-293 divergence log. It lists the wait_divergence_state rows PR 2 (#368) writes: per binding the derived stall, the report-time noWakeSource flag, and the wait kind, first/last seen and count from the noWakeSource divergence row behind that state, with the same --binding/--project/--json options. No behaviour change: nothing reads the state on the reconcile, wake, gate or render path, no migration, and no change to any gate, wait, liveness or wake result.
Collaborator
Author
|
Independent review running in bb thread @thread:thr_kzchenxz3e. — from bb thread thr_8t8w8xg7y7 |
Collaborator
Author
Review round 1 (Claude Opus 5.5, at 4e852b3)Owner review required: no — none of the owner-reviewed triggers apply. "A store migration" matches Tested
Looks good. — from bb thread thr_kzchenxz3e |
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements BB-333. The
wait_divergence_statetable that #368 (1376a75, deployed) writes had no reader. This adds a read-only sibling tobb stewards divergences,bb stewards wait-divergences, so the shadow can be judged clean before PR 3 retiresnoWakeSource,unheardWaitandnamesUserAsBlocker.Classification
no-review: additive; no entry in
stewards/project.jsonbigDecisionsmatches a new read-only CLI command. No gate, wait, liveness or wake result changes.What changes
store.waitDivergences({ bindingId? }): readswait_divergence_state(one row per binding that has reported a typed wait) and joins thenoWakeSourcedivergence row behind that state for the wait kind, first/last seen and count. Read-only: it only.all()s. It prefers the active direction's row when derived and reported disagree, and keeps the most recent row for a stopped divergence.bb stewards wait-divergences: prints one line per binding (derived result, noWakeSource result, kind, count, first/last seen), with the same--binding,--projectand--jsonoptions asdivergences;--projectresolves a binding key exactly asdivergencesdoes.formatWaitDivergencesfor the human output.assessment.test.ts, and the CLI (listing,--binding,--project,--json, and the help text) inserver.test.ts.Retires: nothing.
No behaviour change. Nothing reads the state on the reconcile, wake, gate or render path; the read-counts fixture is unchanged (1958 tests pass, including
read-counts.test.tsandmigrations.test.ts). No migration and no change tomigrations.snapshot.json. This is an additive PR.Out of scope: PR 3 (retiring
noWakeSource,unheardWait,namesUserAsBlocker) and any change to the shadow derivation itself.Testing
npm run typecheck: pass.npm test: pass (1958 tests; thepluginsCI matrix does not include every live plugin, so run here).read-counts.test.ts+migrations.test.ts: pass, unchanged.wait_divergence_staterow in these tests; the store-level test seeds the writer's ownrecordWaitDivergence, which is the code path the reconcile calls.