Repository navigation
feat: dispatch-modes compares planner dispatch with a dispatcher thread (#44) - #47
Conversation
Independent review findings (7758821)
Cleared: job/mode derivation from the thread tree, requested summary metrics with per-metric sample sizes, |
Review update: live evidence verifiedI verified the current Issue #44 report. It records both Chromeria #96 jobs, the exact reviewed SHA, the command and output, 81/86 responses with no unknown-token or unpriced responses in that snapshot, and that it used the freshly synced The accounting finding remains blocking: the changed totals path is |
…ad (#44) A job thread without a ledger session (a Grok child, an unsynced thread) makes that job's tokens and cost unknown instead of an undercount. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
7758821 to
dce7624
Compare
Independent review findings for
|
Independent review update: exact-head live report verifiedThe exact-head limitation is cleared by the refreshed Issue #44 report. It records head The #47 usage remains incomplete until the scratch ledger is synced again and the command rerun, as the report says. That is an honest unknown under #44's acceptance criterion, rather than a blocker: the report includes the live #96 jobs and does not present an undercount as a known total. Re-review verdict: no blocking findings remain. The code and fixtures cover the unmapped child and planner cases, both modes, required metrics and sample sizes, unknown propagation, and planner coordination usage. Base |
What:
agent-observer dispatch-modescompares planner dispatch with a dispatcher thread per job: jobs, succeeded, success rate, median time to first worker and to an approving review, and tokens and cost per job, each with its sample size.Why: The comparison was to come from the runner ledger that retires with toolboxmd/chromeria#92; T3 thread trees plus the Observer ledger answer it without that ledger.
So what: Rebased onto main after #46 and re-bumped to 0.11.0, with the review finding fixed. It needs an independent re-review of head
dce7624; then the planner merges it.Closes #44
How it works
--jobaccepts either. A job's threads are the planner's direct children whose subtree links it.dispatcher-child makes it a dispatcher job;worker-,reviewer-,retry-andescalation-children make it a planner job. Older children without a role name leave the modeunknown.review/independentsuccess status or GitHub approving review on any PR commit (gh). A job succeeds when that approval exists or the PR merged. If GitHub is unreachable, success isunknown.unknown, and the job leaves the mode's mean and sample size (unmapped_threadsin--json). This fixes the review finding on 7758821.state.sqliteis read at report time withmode=ro. Only ids and timestamps are kept; the reporter id is parsed from the first line of a report message. No message text is stored or printed. Usage comes from the ledger, which is opened read-only.Proof
dce7624(rebased on86a503a):python3 -m unittest discover -s testsgives 495 tests OK, including 20 intests/test_dispatch.py. The new unmapped-thread tests failed before the fix (AssertionError: 4100 is not None,2500 is not None) and pass after it. The Grok case goes through the realt3._import_threads, which maps no Grok cursor. The fixture tree covers both modes plus an unknown-mode job. The expected figures were worked out by hand: shared spawn turn split, report-started turns, nested dispatcher worker, unknown tokens printed asunknown (n=0), GitHub offline giving unknown success,--jobby Issue, window and planner filters, and the CLI end to end.python3 -m compileall -q agent_observer tests scripts: OK.bin/agent-observer --version:0.11.0.versionctl release-check: release candidate OK, v0.11.0 at dce7624.unknownbecause its reviewer's Codex session started during the scratch sync and is missing from the ledger; the first run on 7758821 undercounted them: Compare planner dispatch with a dispatcher thread on Chromeria jobs #44Limits
cli.py, README and SKILL.md keep both commands, and the version moves from 0.10.0 to 0.11.0.adapters/t3.pyis untouched.Elon record
unknownfor missing data, and planner coordination turns included in cost.adapters/t3.py(also changed by Report deep spawn chains and cross-thread messages in Chromeria #42) stays untouched.compare_dispatch.py's dependence on the runner ledger is gone.[Subagent … (thread <id>) finished a turn], children are namedsub.<parent>.<role>-<id>, and PR snapshots carry no review time, which is why approval comes from GitHub. I ran the command against the #96 planner thread.🤖 Generated with Claude Code