Repository navigation
feat(batch): batch status box on both dashboards + rolling science review (#341) - #342
Merged
Merged
Conversation
…view (#341) Both dashboards open with one box: the open slot, every member on one line as in progress / awaiting review / ruled, and the button to the Pages packet once there is something to review. The reading lives in one stdlib-only module (`agents/conductors/batch/_status.py`) so the Cortex's bare Pages job and the Mind's dashboard render it byte-consistently; nothing in the box is time-derived, so `--check` stays deterministic. Mind (dev) rule unchanged: dispatched at once, reviewed at once, the button appears when `collected:` is stamped. Cortex (science) rule is rolling: the button appears as soon as one member is awaiting-ruling; submitted/running members show as in progress with the record's own wall/budget/refresh note and hold no review control. A slot stays open across partial reviews — later sittings land as `batches/reviews/<slot>-r<N>.md`, `collect --kind cortex` merges them (ruled sticky), keeps refreshing the packet while anything is on the board, never re-splices a ruled member, and closes the slot only when nothing is left in a board state (carried members excluded). The dev refusal on an existing review file stays. - `_status.py`: the vocabulary (`RULING_WORDS`, `PENDING_RE`, `CORTEX_BOARD_STATES`, `RECORD_KEY`), the lossless `read_record`, `dev_status` / `cortex_status`, `pick_slot` (latest `dispatched:`, never lexical), `render_html` / `render_md`, fixture "No batch in flight." - `_batch.py`: imports the vocabulary back; partial-review merge, next-free review path in `organ_for`, `record_update_cortex` closes on the board and repeats `- review:` per sitting; `_apply_packet` refuses only for dev. - `_cortex.py` / `_intake.py`: the census `batch` reading and the box above "awaiting" / "Start here" in both twins; `_theme.py` gains `a.go`. - Doctrine in `agents/conductors/batch/AGENTS.md`. - Tests: new `test_batch_status.py`; rolling-slot cases in `test_batch_kinds.py`; box tests in `test_cortex_conductor.py` and `test_intake_dashboard.py`. 861 pass. Pairs with PyAutoLabs/PyAutoCortex#7 (merge first) and the PyAutoMind `batches/**` trigger PR (merge last). Cites PyAutoBrain#341. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SgtS7NhqeziqgxKfSiMzRL
Contributor
Author
|
CI red is the merge-order dependency, not a regression. The one failing test, Merge PyAutoLabs/PyAutoCortex#7 first, then re-run this PR's checks. |
The three box tests carried the live org's Pages host and a PyAutoFit PR number as fixture text; the firewall gate reads those as instance facts in an unlisted file. Neither is load-bearing — `exampleorg.github.io` and `Widgets#1554`, the convention `test_intake_dashboard.py` already uses. `repos_sync.py --check --only "tenant firewall (organ code)" --root <wt>` now reports OK; the 181 box tests pass. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SgtS7NhqeziqgxKfSiMzRL
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.
Summary
Closes #341 (batch phase 6, epic
two-slot-batching).Both dashboards now open with a batch status box: the open slot, every member on one line as in progress / awaiting review / ruled, and a Review this batch → button to the Pages packet once there is something to review. One stdlib-only module,
agents/conductors/batch/_status.py, computes and renders it for both organs, so the Cortex's bare Pages job (no pip install) and the Mind's dashboard stay byte-consistent, and nothing in the box is time-derived (the--checkruns stay deterministic).collected:is stamped; the slot closes on review.awaiting-ruling;submitted/runningmembers show as in progress with the record's own wall/budget/last-refresh note and hold no review control. A slot stays open across partial reviews: later sittings land asbatches/reviews/<slot>-r<N>.md,batch collect --kind cortexmerges them (ruled sticky), keeps refreshing the packet while anything is on the board, never re-splices a ruled member, and closes the slot only when nothing is left in a board state (members named on a- carried:line excluded). The dev refusal on an existing review file stays.What changed
agents/conductors/batch/_status.py(new): vocabulary, losslessread_record,dev_status/cortex_status,pick_slotby latestdispatched:(never lexical —-nightsorts before-pm),render_html/render_md, fixture "No batch in flight."agents/conductors/batch/_batch.py: imports the vocabulary back (one definition);_review_paths/_next_review_path/_merge_reviews;organ_foroffers the next free review path (packet.jsunchanged — it readsREVIEW_PATH);record_update_cortexcloses on the board and repeats- review:per sitting;_apply_packetrefuses only for dev.agents/conductors/cortex/_cortex.py: censusbatchreading joins each record's members to the phase files' liveState:; box rendered above "awaiting" in both twins; localread_recordreplaced by the shared one.agents/conductors/intake/_intake.py:_batch_status(mind); box rendered above "Start here" in both twins.board/_theme.py:a.gobutton rule.agents/conductors/batch/AGENTS.md: the partial-review rule,-r<N>naming, board-based close; dev rule restated as unchanged.Companion PRs — merge order
cortex.py checkaccepts-r<N>(must land before this).dashboard_refresh.ymltriggers onbatches/**+ one doctrine sentence (opened alongside; link in the issue).Both organs' committed
dashboard.mdpredate the box; theirdashboard_refresh.ymlself-heal will regenerate them after merge.Test plan
python -m pytest tests -qin PyAutoBrain — 861 passed (newtest_batch_status.py; rolling-slot cases intest_batch_kinds.py; box tests intest_cortex_conductor.py,test_intake_dashboard.py)🤖 Generated with Claude Code
https://claude.ai/code/session_01SgtS7NhqeziqgxKfSiMzRL