Repository navigation
Conversation
…d, and its type changes are read whole (#551) issue-facts/1 gains each linked pull request's link_events and the issue's type_events, each read whole or deferring. Row 1 reads two links by hand before the first merge's second as held, merged_while_held; one in that second or with no time reads as before, so decision 0132's same second stands for it. The grounding waits on trial P-61, which the Maintainer runs in the canary. Record NNNN replaces 0141 and amends 0132's row "What stays". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…art; its Decision says what waits Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
Codex Review Summary: ❌ FailedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…inking since releases it, a pull request listed twice defers The Claude read of 19ef9fb found an admission after the merge moving a done issue to held, and no person's act ending the hold. An outsider's pull request now counts only where a person had admitted it by the merge; one a person unlinked since lets the merge read on. A pull request listed twice defers, and a type change that changes nothing is refused. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…as linked again after it Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, as it excuses a Hold (the Muse read) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…or good, as a Hold's removal does The Claude read of round 1 found a link made again after an unlinking moving a done issue back to held, with no bound. Any unlinking at or after the merge now ends the hold for good. The record and design say plainly that link events carry no actor, so who unlinked is not read until trial P-61 shows who can: an open gap, tracked by the trial. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…its Status named (the Argon read) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e 672; one more mutant at the merge's second The last round's reads: Claude found a rival's close read as it stands now, and Argon a boundary of the unlinking with no mutant. The first is issue 672's, named in the record; the second has its mutant, killed. The design row says the hold stands until fewer than two links do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e issue's facts now hold Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|



Part of #551, "Trial P-61: an issue's type changes and a pull request linked by hand, each timed on the issue's timeline". Part of the slice-1 epic #182.
What changes
schemas/issue-facts.schema.jsonlink_events:[{action: connected|disconnected, at}], its links to the issue by hand in the Development box. The issue gainstype_events:[{from, to, at}], its type set, changed and removed. Both are required and additive, asdraft_eventswas (#553). Every example is updatedkernel/issue.pyreadable_link_events: links alternate, the first is a link, none comes before the pull request opened, and they are in order. Two in one second are read. A closing keyword's link raises no event, and is read as carrying no time.readable_type_events: each change follows from the last, and the last leaves the type as it is now. Either one unreadable defers, aslinked_unreadableortype_unreadableheld,merged_while_held, naming the two. This holds whichever was linked first, and when two queue merges land in one second. A rival linked in the merge's second, with no time (a keyword's), after the merge, unlinked before it, or closed before it, leaves the mergedone. The merge's own link made in its second does too. That is decision 0132's same second, narrowed as the Factory Builder ruled on 2026-11-09tests/test_transitions.pyheldby two hand links. The exploration reachesheldby two links, and no change of State by the platform leavesheldsim/issues.py,sim/grounding.pylink_eventsandtype_events, marked with two new rules that wait on P-61:a_link_by_hand_is_timedanda_type_change_is_timedThe boundary cases, each with its mutant, are what the Factory Builder asked for:
0132's own fixture, the Factory's merge beside an admitted outsider's in its second, still passes. There are 31 new mutants under "Issue 551", and 6 existing ones repointed to changed lines, all killed.
Record NNNN, number to be given at enqueue, after 0173. It replaces 0141, and keeps all of it but what 0141 said carries no time of a link by hand and a type. It amends decision 0132's row "What stays". 0141's Status now names it. Its Boundaries list only its own new rows; 0141's stay as 0141 lists them.
Protected paths:
sim/issues.py,sim/grounding.pyandtests/test_issue_simulator.py. Pre-approved by the Maintainer 2026-11-08, ruled by the Factory Builder. These edits only add the empty facts, their grounding marks, and the two pending rules.Verify
Numbered
make verifyon an export of 98db6e1, with 0172 standing in: 1718 tests, with two failures, both from a boundary row namingtrials/P-61.jsonas a wait, which is no planned part. 19ef9fb drops that row; the Decision says what waits. A full verify runs again at enqueue, after main is merged.Reviews
donetoheld, plus no release, duplicates and a no-op type change. All fixed in round 1 (0d646aa). Round 1's read: one blocking finding, linking again after an unlinking cyclingdone. Fixed in round 2 (ec28e25), and the unlinker named as not read until P-61. Round 2's read: no regression; a rival's reopening, read as it stands now, is #672's and named in the record🤖 Generated with Claude Code