Skip to content

P254: own PR integration states and finish record-plane checks - #1935

Merged
trissim merged 24 commits into
mainfrom
feat/cn-phase3-record
Oct 20, 2026
Merged

trissim merged 24 commits into
mainfrom
feat/cn-phase3-record

Conversation

@trissim

@trissim trissim commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Current rebase task 3332

Pushed a3b79fa303f576d75360405ddc27ce14180100f0, based on main 2de6931ce9c74fb12667597796ae4c4ba8963c2b. The first rebase push was made at 22:40:49 UTC, within the requested ten minutes. Main then advanced and included #2004 through batch #2021; this branch was rebased again and preserves its full merge SHA and installed-ancestry check.

  • Fixed the new import cycle todos -> work_branches -> commander.config -> comms by moving the existing Repo declaration into agent_comms.repo and migrating its consumers. No second class, compatibility definition or local-import workaround. AST comparison against main proves the complete Repo declaration, including contains(), is unchanged.
  • Source-first census: 382 production modules, 40 tools modules and 491 test modules; no parse omissions. Direct imports/consumers were enumerated. Dynamically constructed import targets are not inferred.
  • 51 focused tests passed, including the newly combined installed-merge and typed-PR path. Main's required transcript timestamps and this branch's merged-PR fixture type are explicit in the fixtures. Actual source CLI startup/help passed. These are source checks, not installed live acceptance.
  • Unchanged source ratchet exit 1: only SourceLines 116 -> 326 (+210).
  • Unchanged tools ratchet exit 1: only SourceLines 1 -> 342 (+341).
  • No other key increased; introduced_lines is empty for both roots. Checks used immutable base/head references to avoid the shared origin/main moving during a run. They ran on 9680bea; the final fixture-only commit has identical src and tools trees, verified with git diff. No budget, baseline or suppression was changed.

#2004's branch was reconciled to main 2de6931ce; it has no remaining diff, and both ratchets return 0. Its original feature is in #2021, but GitHub #2004 is closed without a mergeCommit. The integration owner was given the missing original order reference needed on #2021 for automatic closure. Repo relocation is delivered only here, not as duplicate unmerged work on that closed branch.

This task does not restore withdrawn P254 ownership or claim installation. Detailed commands/results: /home/ts/.cache/agent-scratch/pi-cn-phase3/rebase-3332/.


Historical P254 report: finish the record-plane ownership and ratchet repair

Unfinished. This updates #1935 in place after rebasing its owned branch onto current origin/main.

  • PullRequest now owns merged and unmerged states as distinct family members. A MergedPullRequest requires its merge commit and time; unmerged requests carry neither. The forge boundary decodes those states through FieldCodec; merge readers no longer reconstruct state from nullable fields.
  • CheckedProblemOrder supplies its checked capability through the existing ProblemOrder family; new delivery/progress readers take that type without casts or field probes.
  • TranscriptRecord has a typed native-entry projection contract. ExternalTranscript keeps its own SQL turn identities and typed snapshot reader.
  • Both proof entrypoints bind actions and module names through references, not spelling comparisons. Their runtime output belongs under the assigned persistent scratch directory.
  • Unfinished automatic-firing changes are preserved separately on checkpoint/cn-phase3-fire-1495; they are not part of P254 acceptance.

Before/after AST ownership evidence uses the existing debt-ratchet collectors across all 443 tracked production modules, with zero parse omissions. Attribute-receiver identities remain syntactically ambiguous; the owner methods and consumers were read semantically. Dynamic GraphQL JSON is decoded once at the external boundary.

Verification on pushed head e914126, rebased onto origin/main 5c4e7e3:

  • 54 focused tests passed; both new proof modules format and lint cleanly.
  • Actual unmodified external events copied from the read-only live claude-code source were read through the Core CLI. Core then recorded a real non-merge commit delivery already integrated to main, and the record-plane CLI read returned its canonical CheckedCommitDelivery/MainDeliveryMerge. No provider input was sent. An earlier merge-tip delivery was correctly refused and left the order pending at revision 1 before the distinct non-merge delivery.
  • The real GitHub response for this PR decoded as UnmergedPullRequest. The read-only live P254 board showed PR P254: own PR integration states and finish record-plane checks #1935 open at e914126, with unknown check distance and no check command execution.
  • Unchanged src/agent_comms ratchet: exit 1. Only head > base: SourceLines 84 -> 289 (net +205).
  • Unchanged tools ratchet: exit 1. Only head > base: SourceLines 0 -> 341.
  • No other key increased; introduced_lines is empty for both roots. The tools checker now completes rather than failing on duplicate module names. No source budget was self-granted, no baseline changed, and no suppression, cast or Any was added.

P254 remains unfinished pending the commander's source-budget or scope decision. This PR is not claimed ready, merged or installed.

Owned source/results: /home/ts/.cache/agent-scratch/pi-cn-phase3/p254/. The previous clean P1 checkout was retired; active checkout is /home/ts/wt/pi-cn-phase3--P254. StorageRule denied git worktree move, so its required add/remove path was used instead. The required commander PR command refused because #1935 already exists; its body was updated in place using Core's own pull_request_body method and canonical P254 order identity, not a handwritten identity.

Assumed:

  • Rebase and force-with-lease apply only to this owned branch.
  • Delivered, merged, installed and working remain separate states.
  • Both checks use the permitted existing shared agent-comms .venv interpreter; no environment or baseline is created or changed.

Agent-Comms-Order: d66e7258ff1b

@trissim

trissim commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

ExternalRecord owner repair pushed at ec8c883, requested by claude-code.

No CheckRoot, WheelSpin or transcript-opening reader was patched. TranscriptRecord declares that external records have no decoded native entry to project. NativeRecord owns its existing native-entry projection; both record types inherit the contract. ExternalTranscript.turns uses its existing StoreRead SQL grouping, preserving actual external turn answers instead of applying native-entry boundaries to CLI records.

Refactor-audit Package.load parsed 381 tracked Core modules before/after, zero omissions. Declarations, imports, inheritance, projection calls and turn readers examined; dynamic receiver identity is not resolved by AST. CheckRoot._session, TranscriptSource projection/traversal, TranscriptRead.native and External StoreRead.turns were read semantically. Source outputs: owned .proof-record-plane/external-record-{before,after}.txt. No durable format changed.

Actual read-only live source, using Comms with publisher=Publisher:

READ ONLY live source: claude-code turns: 1
READ ONLY live transcript opens: claude-code; events: 8
CheckRoot.open selects claude-code: OPEN; session exists; no executing owner
Copied root retired; original source read only; no input sent
EXTERNAL_RECORD_LIVE_EXIT=0

Bounded single-worker tests/test_check_root.py plus tests/test_external_transcript.py, with agent-scratch basetemp: 14 passed in 20.43s. New coverage checks absent native projection, retained external turns and selected CheckRoot opening. The first broader run used the wrong basetemp, causing eight storage refusals; it also exposed three separate test_turn_digests failures (two missing required position arguments and one CLI subprocess failure). That broader module is not claimed passing.

No provider input, installation or merge. Assumed: external events are not native entry imports; their original turn IDs remain authoritative.

@trissim
trissim force-pushed the feat/cn-phase3-record branch from ec8c883 to 98fe290 Compare October 19, 2026 20:25
@trissim trissim changed the title Commander record plane: canonical delivery integration P254: own PR integration states and finish record-plane checks Oct 19, 2026
@trissim
trissim force-pushed the feat/cn-phase3-record branch from e914126 to 70e6a40 Compare October 19, 2026 20:54
@trissim

trissim commented Oct 19, 2026

Copy link
Copy Markdown
Contributor Author

P254 takeover checkpoint: 778fc01, pushed to this PR. Integrated main b793c73 by normal merge, preserving published history.

Progress reads consume only OrderCheck.recorded; absent receipts yield no reading. Deleted the competing ProgressSource.reading/check.at path. PresentCheckout owns recorded distance reads; DistanceReading retains the original command for missing-integer diagnostics. Standing-rule checks explicitly record their results before observation.

Verification:

  • 152 passed, six focused modules, serial shared interpreter.
  • Actual Core CLI on a private bus copied from the retained P254 order: unknown before an explicit check; one reading afterward; repeated reads left the execution marker at exactly one. A recorded noninteger result diagnosed its original command without fabricating zero.
  • No provider turn, live-order mutation, install or merge.
  • AST: 381 production modules before/after, zero parse omissions. Existing refactor-audit parser enumerated owner declarations and related consumers; dynamic dispatch is not statically proved.
  • Both unchanged ratchets ran against b793c73: src rc=1, SourceLines +193 (83 → 276); tools rc=1, SourceLines +341 (0 → 341). SourceLines is the only positive key in either report. No new type/lint/structural keys; no budget added. These size failures are not passes.

Logs, source census and actual CLI responses: /home/ts/.cache/agent-scratch/pi-toad-flash/P254-*.

@trissim
trissim force-pushed the feat/cn-phase3-record branch from 778fc01 to f15e630 Compare October 19, 2026 22:40
@trissim
trissim force-pushed the feat/cn-phase3-record branch from cd346fe to 58fe980 Compare October 19, 2026 22:57
trissim and others added 2 commits October 19, 2026 19:48
…s pushes

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@trissim
trissim marked this pull request as ready for review October 19, 2026 23:52
Copilot AI balanced review requested due to automatic review settings October 19, 2026 23:52

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 and others added 2 commits October 19, 2026 20:00
@trissim trissim mentioned this pull request Oct 20, 2026
trissim added a commit that referenced this pull request Oct 20, 2026
@trissim
trissim merged commit feb5fa8 into main Oct 20, 2026
0 of 4 checks passed
@trissim
trissim deleted the feat/cn-phase3-record branch October 20, 2026 01:58
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