Skip to content

P216: gate commander cutover on declared native parity - #1928

Merged
trissim merged 12 commits into
mainfrom
feat/shared-plan-claims
Oct 20, 2026
Merged

trissim merged 12 commits into
mainfrom
feat/shared-plan-claims

Conversation

@trissim

@trissim trissim commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

P216 / A2: current checkpoint — not ready to merge

Story waits on RecordPlanePhase; CommanderPage waits on RecordPlanePhase and ControlPlanePhase. No phase waits on either view. Full-phase completion uses its explicitly accepted task, not whichever subtasks happen to be closed. The real retained P149 was preserved; its closure does not complete Story.

Core now declares all 33 parity rows, with class identities and native owning phases. Eleven actual native-codec/current-script wording cases agree; they are explicitly partial coverage of rows 9, 10 and 25, not three accepted matrix rows. The other 30 comparisons remain unimplemented. All 33 rows remain unverified; the report exits 1. Checked-task acceptance and complete comparison coverage are both required by the computed row gate. No parity_done boolean or handwritten plan state exists.

Exact remaining blocker

The ordinary edit tool still denies plan_phases.py with Resource already claimed by 'pi-plan-claims'. No shell bypass was used.

parity-gate.patch contains the requested computed ParityPhase and exact dependency:

after = (RecordPlanePhase, ReviewQueuePhase, ControlPlanePhase, ParityPhase)

The patch passes git apply --check but is not applied. The actual source grep ratchet returns 0, so this PR must not merge yet. The current source still has record_plane, review_queue, control_plane only. Core declares 33 unique row numbers; computed parity done is False; view prerequisite count is 0.

The peer-authored Record/Control task factories and atomic consumer/fixture changes are staged as separate patches pending the same claim repair and #1932 integration. No production task was enabled by these patches.

Actual application observations and local checks

  • Real saved native pi-plan-claims history opened through the source CLI check-root command; 177 conversation events preserved original source times, exit 0. Disposable copy retired.
  • Existing CheckRoot incorrectly called NativeRecord.project on ExternalRecord after normalization. The writer now consumes normalized events directly; old import_record and its duplicate ImportBuffer path are deleted.
  • Saved external claude-code startup now refuses missing original timestamps rather than inventing time. Its latest 200 source records include 164 undated tool-start and 164 undated tool-end events. Full saved-external startup is not accepted.
  • Thirteen focused tests pass serially, including after integrating the user's remote main merge normally. Existing pytest timeout-config warning remains.
  • Source-first AST and precise outcomes: docs/refactor/commander-parity-progress.md and docs/refactor/shared-plan-claims-A.md.

No original record, session or UNKNOWN input was changed. No PR/main merge, runtime installation, script deletion or provider request was performed. B shared GitHub claims remains after A2 and is unstarted.

Saved Claude clock follow-up (not startup acceptance)

Read-only bridge Binding selected original Claude session 696126c1-8112-4b77-8879-c1f14ea961ce. At source-file boundary 121730529, a bounded 4194304-byte read using the existing Claude decoder recovered all 266 missing clocks in the then-current 200-record retained window: 133 tool starts and 133 tool ends. Zero decode omissions or conflicting timestamps. Raw original clocks are recoverable; the normalized stored rows lost them. Counts differ from the earlier 164-pair observation because the live window advanced. No source or retained event was changed or backfilled.

The source family is already being replaced in P706 / #1940: ToolUse/ClaudeSession and the shared ToolDraft accumulator. ToolResult drops the result timestamp; generic DraftAccumulator.finish overwrites every completion event with start time; OpenCode EndedTool stamps both events with start despite retaining end; Claude FinishedItem bypasses accumulation on completion. A two-caller timestamp patch would not repair this family. Shared-file coordination went to claude-code for the existing P706 owner; pi-plan-claims retains saved-commander startup acceptance and has not started a competing implementation.

Saved external startup remains NOT accepted. No new production changes or tests in this follow-up. The earlier 13 tests are not this acceptance. Correcting the local source note was denied by the stale self-claim; no shell bypass was used. The PR is currently open/non-draft; this worker did not mark it ready or merge it. This follow-up does not approve a merge.

P216 repair 1220a91 — unfinished

Merged origin/main 5c4e7e3 normally to preserve #1932 and other authors' commits; no rebase/force push. PhaseTask/UnspecifiedPhaseTask moved to dependency-light phase_tasks.py. plan_phases no longer imports work_dispatch, removing its cycle through goal_actions -> todos -> standing_rules. All WorkDispatch runtime imports are module-level, with no compatibility re-exports. Default reissued refusal moved from CheckedProblemOrder to its ProblemOrder owner; PendingProblemOrder behavior is unchanged.

Before: mypy work_dispatch.py:101 reported ProblemOrder has no attribute reissued; local imports=7. After: focused mypy exit0; local imports=0.

Exact merged/pushed head versus origin/main: src ratchet exit1, only positive key SourceLines15->211 (net+196); tools ratchet exit0. No source budget, suppression or baseline change. P216 remains unfinished; this is not a merge-ready claim.

Real Core read256 retained commander orders without mutation: Cutover.ready=False, ready phase=record_plane, task owner=agent_comms.phase_tasks. This verifies phase reading, not parity completion. Serial checks: 100 passed,4 failed. All four failures are existing BoardDisagrees progress fixtures attempting git in nonexistent /home/ts/wt/worker--P109; pi-cn-phase6 owns their correction with reproducer. No test weakened or silently deselected; existing pytest timeout-config warning remains.

Assumed: dependency repair is not native dispatch/provider acceptance. No runtime install or original-state mutation. Parity is still P244. The current replacement P216 order identity supersedes the earlier body's identity.

Agent-Comms-Order: 66e8bcc56332

@trissim
trissim marked this pull request as ready for review October 19, 2026 18:29
Copilot AI balanced review requested due to automatic review settings October 19, 2026 18:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@trissim trissim changed the title Commander cutover precedes presentation phases; shared claims follow P216: gate commander cutover on declared native parity Oct 19, 2026
trissim added a commit that referenced this pull request Oct 19, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 19, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 19, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 19, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 19, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 19, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 19, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 19, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 19, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 19, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trissim
trissim force-pushed the feat/shared-plan-claims branch from 1220a91 to e3dc64f Compare October 19, 2026 23:00
trissim added a commit that referenced this pull request Oct 19, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trissim
trissim force-pushed the feat/shared-plan-claims branch from e3dc64f to ba9a323 Compare October 19, 2026 23:04
trissim added a commit that referenced this pull request Oct 19, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trissim

trissim commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

Today's direct rebase order — pushed cd41244

Rebased #1928 onto current maina6799790fad7726adc222bf16260a78c159f8769. First push e3dc64f was inside the requested ten minutes; main advanced during checking, so rebased again, resolved plan_phases.py and pushedba9a32374, then pushed the concrete retained-phase repair ascd41244136f895d6958f36e6e82c97ec1e4a4d5c. Exact force-with-lease protected both rebase pushes. Existing dependent branch ancestry remains published in #1992/#1932. No new branch or goal-resume call.

The old clock-copy commit, already removed from this PR's final scope, was dropped during replay; its historical reverse left an obsolete itertools.chain import conflict, resolved in favor of current main. No clock/copier code reintroduced. Final diff has only phase/task/dispatch owners and their plan/tests.

Actual defect fixed after rebasing

The real269-order read crashed on new MergedProblemOrder because the generic phase reader reached for a checked order's serves field. Shared fix is now on this parent PR, not only #1992:

  • Generic read: ProblemOrder.phase. Findings answer UnplannedPhase; checked orders answer their declared serves; Merged/Folded orders derive original.phase without copying state.
  • Exactly one stored declaration: CheckedProblemOrder.serves at todos.py1223. ServeTodo owns only its separate command input and calls order.for_phase; findings/retaining wrappers cannot invent a checked declaration.
  • PlanPhase.serving uses the generic behavior. No type/attribute switch, compatibility alias or copied phase column. No accepted/completion marker changed; that remains P256's owner.
  • Existing refactor-audit Package inventory after:383 production/492 test/39 tool modules, zero omissions. Enumerated fields, inheritance, reads/writes and all consumers before the shared change; dynamic codec dispatch is confirmed through actual-store round trips rather than claimed statically proved.

Final-head checks

  • 14 tests passed: plan phases, independent task imports and actual local Git→installed merge→stored-wrapper journeys. Existing pytest timeout-setting warning remains.
  • Actual retained application read: 269 orders, including12 MergedProblemOrder, now no traceback. PlanIdle reports record_plane; Cutover.ready=false. Read only; no enforcement/provider start.
  • Both full checks pinned to the exact current-main revision above: src exit1; tools exit0.
  • Sole positive key: SourceLines18→236 (+218). No introduced strict findings. No allowance/baseline edit, suppression or disguised absence value added. Work-dispatch function-local imports remain0.
  • GitHub reports MERGEABLE; worktree clean. Final checks borrow the existing exact pinned canonical audit package read-only and run serially with persistent owned TMPDIR. No clone/install.

Assumed: P216 is still unfinished because the source-growth ratchet fails. P244's explicit all-row gate/comparison work is separate and remains unfinished; this read does not establish parity. Nothing merged or installed, and no UNKNOWN/provider input replayed. Goal remains blocked, unchanged, as corrected in direct source3439.

Receipts: /home/ts/.cache/agent-scratch/pi-plan-claims/p216-rebased/. Owned generated test fixtures retired after checking actual borrowers; original sessions, wire and uncertainty records untouched.

trissim added a commit that referenced this pull request Oct 20, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 20, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 20, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 20, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 20, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 20, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 20, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 20, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 20, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 20, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trissim
trissim force-pushed the feat/shared-plan-claims branch from e2bbf37 to 6c52963 Compare October 20, 2026 01:24
trissim added a commit that referenced this pull request Oct 20, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trissim
trissim force-pushed the feat/shared-plan-claims branch from 6c52963 to 63ed6ca Compare October 20, 2026 01:30
trissim added a commit that referenced this pull request Oct 20, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trissim

trissim commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

P216 source checkpoint: 63ed6ca, rebased onto main 04469e6 and pushed. Earlier recovery checkpoint 6c52963 was pushed at 21:24.

Ownership reconciliation:

  • phase_tasks.py owns the shared PhaseTask/UnspecifiedPhaseTask capability. plan_phases no longer imports work_dispatch; dispatch imports the shared declaration. The former runtime import cycle is removed, not hidden behind local imports.
  • Only CheckedProblemOrder stores serves. ProblemOrder.phase is unplanned; checked subclasses derive phase from their stored declaration. ServeTodo and phase selection use those methods. Unchecked/folded provenance cannot acquire an active checked phase.
  • Main's P270 inheritance and carry remain authoritative: MergedProblemOrder(CheckedProblemOrder) inherits its phase; no restored original/id/phase forwarding or prototype carry. The superseded e2bbf37 checkpoint was skipped after checking that its inheritance/carry replacement was already on main.
  • Reissue passes the registry thread's actual commander.incarnation as OrderGoalAction.assigner, fixing the missing-argument error at its cause.
  • Merged-order tests now use the canonical todo reconciliation owner and current context methods, not removed CONFIG/COMMANDER globals.

Checks on the published head:

  • 18 focused tests passed (test_plan_phases, test_phase_task_dependencies, test_installed_merge).
  • Separate tools/debt_ratchet.py --root tools --base origin/main --head HEAD: 0.
  • Separate tools/debt_ratchet.py --root src --base origin/main --head HEAD: 1, solely SourceLines +211; no introduced findings, lint or typing increases. Growth alone is permitted by the current ruling.
  • Both ratchets record exactly the head/base above.
  • Canonical refactor-audit Package parsed 388 production, 43 tool and 499 test modules, zero parse omissions. WorkDispatch function-local imports: 7 at a9ef3ea, 0 now. Declarations, imports, writes/keywords and lexical consumer sites retained in the existing owned scratch receipt. Runtime rebinding/reflection is not resolved by this AST evidence. Standalone NRA could not import because this shared Python lacks tree_sitter; no dependency installation or substitute scanner was added.

Actual retained-history read is blocked, not accepted: candidate and installed main both reject old saved checkout checks in goals.py:264-270 during construction. P290 commit 8ee0ee3 introduced it. The existing owner has published #2069; pi-connector owns configured-path verification and merger handoff. No historical commands were rewritten and no provider inputs were replayed. P216 has not been installed or live-accepted.

Assumed: merger installs/verifies #2069, then performs P216's rehearsal and installed retained-plan check. P244's separate parity implementation remains unfinished; this checkpoint does not authorize switching off scripts.

Receipts: /home/ts/.cache/agent-scratch/pi-plan-claims/p216-completion/ (src.json, tools.json, tests.log, ast.json, retained-read.log, main-retained-read.log).

trissim and others added 12 commits October 19, 2026 21:44
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trissim
trissim force-pushed the feat/shared-plan-claims branch from 63ed6ca to 21f5780 Compare October 20, 2026 01:44
@trissim

trissim commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

P216 blocker cleared by installed #2069. Supersedes the retained-read blocker in the preceding comment.

Current published head: 21f5780, rebased onto 15ba6ed.

Actual saved-state read using the candidate on the configured bus now succeeds: 295 orders, including every recorded phase. PlanIdle.violations reports record_plane ready with no open order; CutoverPhase.ready returns False. No historical commands rewritten or provider inputs replayed. This is a working candidate retained-plan read, not an installed P216 claim.

Final-head verification: 18 focused tests pass; separate tools ratchet 0; separate src ratchet 1 solely SourceLines +211, with no introduced findings or other positive deltas. Both outputs record the exact head/base above. Receipts: hotfix-tests.log, hotfix-tools.json, hotfix-src.json, hotfix-retained-read.log under /home/ts/.cache/agent-scratch/pi-plan-claims/p216-completion/.

P256 coordination: phase_tasks.py and plan_phases.py are byte-identical between previous P216 head63ed6ca97 and published P256 d33f8ca. P256's dispatch and installed-evidence changes stay with pi-toad-viewport. Integrate P216 first, then rebase P256 preserving current main; do not replay its UNKNOWN validation launch. P244/P278 were not resumed.

Assumed: merger owns P216 rehearsal, installation and affected installed-plan acceptance. P244 parity remains unfinished; this does not authorize switching off scripts.

trissim added a commit that referenced this pull request Oct 20, 2026
The parity rows restate the Markdown matrix's row numbers and capability
text in each class, and five .patch files were committed at the repo root.
They return in a follow-up PR with the rows as the single source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
trissim added a commit that referenced this pull request Oct 20, 2026
The check-history clock copy goes with the parity work in its own PR; its
missing source clocks are the desktop's #1940. Reword two comments that used
banned vocabulary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trissim
trissim merged commit dbce65b into main Oct 20, 2026
0 of 4 checks passed
trissim added a commit that referenced this pull request Oct 20, 2026
@trissim

trissim commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Installed backend read verified independently after batch41: isolated installed Python imports /home/ts/code/projects/agent-comms/src/agent_comms/plan_phases.py at16ecfb5c6;295 retained orders decode, PlanIdle reports record_plane ready/no open order, and CutoverPhase.ready isFalse. Receipt: /home/ts/.cache/agent-scratch/pi-plan-claims/p216-completion/installed-read.log. This verifies the installed saved-state plan read; it does not claim a new unit/provider dispatch or the separate P244 parity workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants