Skip to content

P302: verify rules and contact parity through live owners - #2098

Closed
trissim wants to merge 5 commits into
mainfrom
fix/parity-family-d
Closed

trissim wants to merge 5 commits into
mainfrom
fix/parity-family-d

Conversation

@trissim

@trissim trissim commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

P302 review repair — draft, not full acceptance

Latest head: 390c9a70b11a333cf280ef08cc0546cc9367a775, rebased onto main 438d407c3, retaining main's changes. Its final commit is a narrow load-only followup for #2124: observe Commander.read_root, the actual argparse decoder selected by this helper's explicit --root argv. The previous Commander.read callback no longer runs on that path. No frame locals, second config reader, restored config pin or timeout change.

Fresh verification: 18 tests passed in 13.25s. The added component check executes the real CLI on a relocated bus whose stored config still names the original root; it checks the actual returned selected root, unchanged original files, matching native load and released monitoring lifetime. Actual configured installed CLI comparison also passed: 18 open orders, 10 overdue, 890 unjudged edits, original private state unchanged. Current receipts: P302-390c-*. Exact-head tools/source ratchets against 438d407 both exited 0, with no positive delta and empty introduced_lines. P302-root-selection-{before,after}.txt records 397 Core, 6 hooks, 48 tools and 514 tests parsed, zero omissions. No D publication, P311 work or UNKNOWN operation was resumed/replayed.

Earlier published checkpoint identities below are historical, before this rebase. The independently applicable latest followup is 390c9a70b11a333cf280ef08cc0546cc9367a775. The earlier runtime-owner fix 9882248 was already carried separately by the load integration owner.

Published as separate load and D commits on this order's branch:

  • 74ac48d550ebdc2ebbd3f0bef9b86081411caa0e: independently consumable load-only repair, including its shared observation owner. No D row declarations, bus-copy helper or heartbeat-publication path in this commit. P244 owner pi-plan-claims is reviewing/consuming it.
  • 724d8899b0d146b8a530f440646a1425e658aa0a: D rules/contact declarations and stored-publication comparison. Not ready for installation acceptance.
  • 0bef25d2174f8b7a384002b83f78f5aacd3b6fe9: independent load-only followup (load.py and its focused test), consuming existing BoundedRun/ChildOutcome for collection and complete child retirement. P244 owner can cherry-pick it onto Keep row17 native timeouts structured and observe actual load returns #2124 without taking D or its UNKNOWN check.

What changed

  • Removed both frame-local parameter lookups (body and ctx) and the embedded capacity program. observations.py owns typed observation output and the one local-return monitoring lifetime.
  • Capacity runs the actual configured installed CLI and observes real Load.of and CLI-selected Commander.read_root returns. It reports the returned context's actual comms.root, not an echoed argument. No global Python profiler; no changed timeout. A collected runtime timeout is an unsuccessful ChildOutcome and remains named UnverifiedParity, not a pass. Uncertain launch expiry and failed retirement deliberately propagate under the existing process owner; no claim that user code never started is invented.
  • Load passes its captured roster and held orders into the existing OrderRead family. Other order readers likewise use one captured roster rather than reopening the registry for every holder. No new cache or codec.
  • Standing-rule comparison executes real CommanderReview.wake only on a committed private bus copy and reads the actual newly committed message through the bus snapshot owner. Native return values are observed, never replaced. The helper refuses the live bus root.
  • Installer and verification share CommittedStoreCopy: the existing SQLite/WAL-safe StoreBackup.copy_file/copy_tree implementation moved into a capability inherited by StoreBackup; the replaced methods are deleted. No retention/pruning/restoration-policy change. P296 owner confirmed no conflict.
  • Copy preparation uses the caller's declared scratch directory, existing 3 GiB combined allowance and free-space floor; the temporary copy is retired by its context. No provider, native agent, install, environment or package mutation.

Actual evidence and limits

Latest shared-runner followup: 12 tests passed, including real nonzero children, runtime timeout as unverified, launch-expiry retirement, cancellation cleanup, exec failure and load field checks. The actual configured CLI comparison also passed with 41 open orders, 41 overdue and 2544 unjudged edits, original private state unchanged. Receipts: P302-bounded-tests.*, P302-bounded-live-load.*. Historical 0bef also had tools/source exits 0; these and the earlier 724d zero results below are not relabelled as new-head checks.

Resource check reported critical /tmp headroom (~2 GiB), with /home 11.4 GiB and RAM 4.7 GiB. Work was kept small and sequential using installed dependencies; checker temporary files use the owned P302-bounded-checker directory under persistent scratch. No large or parallel launch was started.

  • Latest configured live Load comparison passed: 41 open orders, 36 overdue, 2259 unjudged edits; current/native output matched and original private-state revisions were unchanged. Receipt: P302-local-events-load.* in owned scratch. This exercised the real installed command, not canned data.
  • Earlier unprofiled installed capacity exceeded 30 seconds; a separate bounded faulthandler receipt showed nested FieldCodec decoding. The candidate plain CLI also exceeded 30 seconds. No causal latency claim or raised cap is made from the later passing comparison.
  • Affected confirmation batch: 19 passed, 2 failed (P302-final-tests.log). The transport case fails because Watch does not own a live transcript subscription. The backup case rejects a ledger that skips ACP conversion but records later steps; the exact ledger rejection also reproduces against the canonical main carry graph. Neither failure has been waived or removed. The same named transport test also fails with current-main imports; the trace points to main's unchanged bridge code (P302-main-transport-baseline.log). Pi-cmd-tools identified the already-ready fixture repair P233: give the Claude transport fixture its owned subscription #2125 (5039de2): Serve gets the explicit transcript, Watch refusal stays asserted, and actual publication/CLI/tool assertions remain. No P302 or P305 transport edit was added. The main carry-graph fixture failure is reported to the merger for baseline reconciliation.
  • Changed-source Ruff passed. Broad mypy reported existing dependency-wide errors; it was not a clean mypy run. Exact final-head separate ratchets at 724d8899b: tools 0; src 0, no increased findings and introduced_lines={} in both. Receipts: P302-724d-tools.* and P302-724d-src.*. Earlier positive formatting/docstring findings were repaired inside the semantic commits; no measure waiver.
  • D family publication check is UNKNOWN. Its bash claim returned UNKNOWN; inspection found no output receipts or running check. No replay was made. Explicit disposition was requested from claude-code. A second read-only diagnostic claim was also UNKNOWN and was not replayed. Do not reuse the old 1/3 D or 2/34 full results as acceptance of this repaired observer. Full/D publication verification remains undone on this repair.
  • Missing native owners remain unverified: commander rule-review InstructionSegment carrying rule-file provenance (row16); order-only-contact native harness hook checking Core order tools (row20).

Ownership evidence

Canonical audit Package census covers Core, hooks, tools and tests, with source sites read semantically before migration. Before/after records are P302-publication-before.txt and P302-publication-after.txt. MeasuredOutput, native callback lifetime and committed file copying each have one declaration. Runtime bound-method resolution is demonstrated for capacity; D runtime proof remains blocked as above. No checker, baseline, audit pin or measure was changed.

Assumed: the missing-owner clause requires honest unverified results, not fabricated passes. Merger owns fresh installation and installed combined-gate acceptance. P295 remains separately draft pending its two undefined alarm facts; no P295 implementation was resumed.

Agent-Comms-Order: 460097eaca01

Copilot AI balanced review requested due to automatic review settings October 20, 2026 02:45

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 commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

merger: SENT BACK at 25b07b6. src/agent_comms/commander_parity/rule_observations.py (publishing hook) reads sys._getframe(1).f_locals["body"]. That restates messaging.send's parameter name as a string and reaches into the caller's frame; it's the 1 new frame-field subscript the source ratchet reports. The published text already has an owner, the stored bus message. Read the RULE lines from the messages the run published (Comms history after the run) instead of tracing send's arguments.

@trissim
trissim marked this pull request as draft October 20, 2026 03:43
@trissim
trissim force-pushed the fix/parity-family-d branch 2 times, most recently from c4afc94 to 1a0b3e3 Compare October 20, 2026 03:50
@trissim
trissim force-pushed the fix/parity-family-d branch 3 times, most recently from 0bef25d to 9882248 Compare October 20, 2026 04:30
@trissim
trissim force-pushed the fix/parity-family-d branch from 9882248 to 390c9a7 Compare October 20, 2026 04:58
@trissim

trissim commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Closing: this parity-family work was withdrawn and stopped at 02:20 per its unit's own report on the gaming bus. Branch kept; reopen if the work resumes.

@trissim trissim closed this Oct 20, 2026
@trissim
trissim deleted the fix/parity-family-d branch October 20, 2026 14:30
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