Repository navigation
Age ready Commands out of Ready for review like ended Needs you rows - #1180
Merged
Merged
Conversation
A ready Command now stays in Ready for review only while no later Command on its issue has started on this machine and it ended within inbox.days; otherwise it falls through to Done, Resolved or History by age. Ready dispatched Runs follow the same rule, keep their own row in whichever group they reach, and are still shown once in the Console. The Console now wakes when a ready row crosses its cutoff.
The manual's inbox.days paragraph still said Ready for review stays while the outcome is ready; it now says inbox.days bounds it too. Reword the GLOSSARY Inbox exit sentence, name the shared hold check, and cover a ready dispatched Run older than inbox.days in the Console test.
This was referenced Oct 23, 2026
Merged
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
Ready for review now uses the same exit rule as ended Needs you rows. A ready Command stays only while no later Command on its issue has started on this machine and it ended within
inbox.days. Otherwise it drops to Done, Resolved or History depending on its age. Ready dispatched Runs follow the same rule.GLOSSARY.md(Inbox),docs/guide.md(Machine status,inbox.days) and the User config template say when a Command leaves Ready for review.site/docs/index.htmlis regenerated from the guide.Seams tested:
thirdshift status --json/--allgrouping, and the Console Inbox over HTTP, including its elapsed-time wakeup.Evidence
ready_commands_leave_ready_for_review_on_a_later_local_start_or_the_configured_age(tests/status.rs) failed. All three ready records (pull/10, pull/8 replaced by a later Command, and pull/7 from 8 days ago) were listed inready for review. Inready_dispatches_leave_ready_for_review_and_are_shown_at_most_once(tests/console.rs), a replaced ready dispatched Run appeared twice in the Console (left: 2, right: 1). With the oldnext_change, the new("ready for review", 1, false)case inelapsed_time_updates_inbox_groups_and_retention_without_a_file_changetimed out waiting for the row to leave.After: all three pass. Reverting only
ready && heldback toreadymakes the Console test fail again (tests/console.rs:697).status_reads_activity_history_and_command_logs_without_stagesrelied on the bug: its 2026-10-02 fixture is now older than 7 days. The test now setsinbox.days = 36500so it still covers ready detection from the Activity log.scripts/affected-tests origin/mainexited 0 in 1239 s, including compilation.npm test --prefix sitepassed 49/49, and everycargo testtarget passed.cargo clippy --all-targets -- -D warningsandcargo fmt --checkare clean. Locally,GIT_CONFIG_*settag.gpgsign=falsebecause this machine's globaltag.gpgsign truebreaks threeworktree::synchronization_teststhat run lightweightgit tag. That failure is unrelated to this change.main(0239924, Read labelled issues without GitHub search #1176) landed after the push. It touches none of these files andgit merge-treereports a clean merge; CI covers it.Merge Danger
Door: two-way
Only the Inbox grouping read from local records changes. No record format or GitHub call changes.
Blast Radius: Inbox
Rows that used to stay in Ready for review forever now show in Done, Resolved or only with
status --all. Group names instatus --jsonare unchanged. A pull request merged by hand still shows until its Command ages out or is replaced, as the issue scopes.Review
Both axes reviewed a03f8fa against
origin/main. Neither reviewer left any changed file unread.site/docs/index.htmlwas confirmed as generated output (npm run docs:check --prefix siteexit 0), and its hunks were also inspected. Commit 07210d1 holds the review fixes: Spec A1 (staleinbox.daysparagraph; itsgrepcommand exited 1 before the fix and 0 after), Spec A2 (an old ready dispatched Run case), the GLOSSARY wording, theheldrename and the test comment. The reviewers did not see 07210d1 itself. The merge commit 02ac0a5 brings in onlymain's changes.Unaddressed findings
Standards
next_changeandlist(src/logs/reading/inbox.rs,next_change'sended.or_else(...)andlist'sheld): declined. The duplication was already there before this change. The issue asks Ready for review to reuse the Needs you exit rule within the grouping, andhelddoes that (problem.filter(|_| held)andfacts.ready && held).groups(status)test helper: declined. The existing tests in tests/status.rs (around lines 452–461 and 645–656) map rows inline, and the new tests do the same..agents/skills/domain-modeling/GLOSSARY-FORMAT.md:28): declined. The reviewer marked it soft. The added sentence matches the existing Needs you entry, and the issue asks for the exit rule "in the same terms as Needs you".inbox.daysis the configured age, and the elapsed-time Console case setsinbox.days = 1explicitly.Spec
None. A1 and A2 were addressed in 07210d1.
Security
None. The change only regroups local run records that the Console and
statusalready showed to the same viewer. It adds no input, endpoint, path handling or authorization decision. A Security finding waiting on a decision still goes to Needs you before the ready check.Closes #1083
Built with claude · claude-opus-5-5 · high
Security review outcome
No unaddressed introduced findings.