Repository navigation
Virtual bus batch: W, B1, B2, C, D and E integrated - #2549
352 commits merged into
Conversation
…ee of bus metadata
…-carry # Conflicts: # tests/test_wire_row_budget.py
…s' into feat/p419-bus-history-carry # Conflicts: # src/agent_comms/publisher.py
…feat/p419-bus-history-carry
…tory-seq # Conflicts: # src/agent_comms/errors.py
…s' into fix/p412-file-bus-filebus # Conflicts: # src/agent_comms/bus.py
…ebus # Conflicts: # src/agent_comms/errors.py
Unfinished P426 checkpoint: lifecycle wake ownership remains with the commander after 14700; not qualified delivery.
…nto fix/p412-file-bus-filebus # Conflicts: # src/agent_comms/errors.py
…to fix/p412-file-bus-filebus # Conflicts: # src/agent_comms/publisher.py # tests/test_bus.py
… into fix/p412-file-bus-filebus
…livery-seq # Conflicts: # src/agent_comms/errors.py # tests/test_wire_row_budget.py
P412: remove the remaining file-envelope reader familyPublished implementation: Deleted 445 lines / added 57 across 11 files in the implementation commit. Removed Ownership and consumersTIME-1/TIME-3: the SQLite Bus owns stored record validation and original delivery. A second committed JSON decoder and a retained sequence floor no longer have a production caller. Surviving public message imports use the existing public decoder; SQLite delivery tests use Before/after AST inventory uses the existing audit Package/Repository over Core src/tests/tools and paired Toad src ( Checks at the exact pushed combined head
Logs: Still open / Assumed
|
…ation/bus-batch-b1 # Conflicts: # src/agent_comms/bus.py # src/agent_comms/bus_tables.py # src/agent_comms/cohort_schema.py
B1 typing/import checkpoint — 37-finding assignment remains unfinishedPushed and Owner and consumers
Pattern relationships: BOUND-2/MEMB-5 — use the existing declared types and decoder rather than repeat row shapes or cast erased fields. AST inventory used the existing audit Repository file enumeration across tracked production/tests/tools/stack; no parse omissions. Dynamic generated-row resolution and dependency roots are not claimed fully certified. Evidence, scoped precisely
Remaining: sequence-bound, publication and unread absence handling; TaskScope import-cycle repair; other assigned lint sites; hosted debt results; installed acceptance. This is a useful checkpoint, not delivery of all 37 findings or closure of P426. Assumed: this typing checkpoint needs no runtime/namespace API changes. C's shared-base approval is recorded, not assumed. Current runtime availability and all installed/live claims remain unestablished. |
…or/p424-bus-history-seq
…ation/bus-batch-b1
Named-target parent contracts (B2 request 18264)Pushed/remote-verified 668f6be, implementation 98b7a83, after integrating B2's reader changes.
AST inventory across tracked src/tests/tools/stack: declarations, inheritance and consumers inspected before/after; zero parse omissions. Dynamic/external subclass resolution is not certified. Actual application-source check: one real Comms/SQLite journey exercises both named target types: pending counts, changed-thread attribution, human DM and channel reads, and preservation of agent unread deliveries. 1 passed, 0 failed, 0.65s on the combined published head; one xdist rewrite warning. No mocked Core methods or providers. Ruff F/I and diff whitespace checks pass. Focused four-module mypy: own change 89 -> 81, no new diagnostic messages; after B2 integration 77 remain, not a green typing claim. The two pending-count errors still name No local ratchet/full suite, install or live/native/UI acceptance. This does not complete P426 or the 37-finding assignment. Assumed: project targets intentionally have no inbox/read semantics, consistent with their existing implementation. B2's reader implementations were left unchanged by this contribution. |
P424 reader and rehearsal-fixture checkpointPublished commits
VerificationOn integrated head Earlier fixture batch: 39/39 at the pre-integration fixture tree. Earlier failed reader checks are retained separately; they are not counted as passes. My first reader check was premature: legacy fixture APIs had not all been migrated. The final 105-case result includes those corrections. Focused Ruff F/I passes. Focused mypy is NOT clean; see the residual diagnostic file, including AST inventory uses the existing refactor-audit Package/Repository loader: before 432 src / 470 tests / 15 tools; after 432 / 468 / 15; retained Toad filesystem 283, zero parse omissions. The two test deletions are peer integration changes. Artifacts under Still openThe two installer-rehearsal variants and P424 still requires matching installation and the real long-channel-to-first-message / archive / fresh live reply / tab-return journey. Live stores and original sessions were not edited. This checkpoint does not establish that the reported live coordination-store corruption has been repaired. Assumed: no installed behavior from source tests; no native acceptance from schema preparation; no clean debt verdict from focused checks. Remaining states require their own evidence. |
|
P424 follow-up: B1 supplied the three NamedTarget parent contracts in 668f6be. B2 narrowed inbox/inbox_at/pending_count/mark-read parameters in 5f7ce84; integrated shared head 6b533c8 was pushed and remote-matched. The 14 message-page/channel-display cases passed in 3.47s on this head (18320-target-contract.txt). The prior 105/105 result stays scoped to 36fd799, not promoted to this later head. Focused mypy no longer reports the pending_count, mark_view_read or changed_threads parent-contract faults; it still reports other diagnostics, so no overall clean verdict. Native/rehearsal and installed acceptance gaps from the preceding checkpoint remain open; no local ratchet or full suite was run. |
P424 reader identity/delivery checkpointPushed Changed the owning reader contracts rather than restoring the wire API:
Verification on this source tree:
Owner/consumer evidence (IDEN-3, BOUND-2, TIME-1): Evidence: Assumed:
Still open: the two actual installer-rehearsal variants, saved-owner/native-proof case, remaining reader debt, and installed long-channel/archive/fresh-reply/tab-return acceptance. No local ratchet/full suite, alternate runtime, source-prefix bypass, live-store repair, or UNKNOWN-input replay was used. This is pushed source, not merged or installed acceptance. |
The virtual bus batch (#2549) deletes the wire lock and every one of these call sites. This factoring touched 20 of the files #2549 rewrites and added about 17 merge conflicts to the plan's critical-path PR. Never polish what a plan deletes: the right fix for the hand-spelled paths is #2549 landing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
P424 archive/display contract checkpointPushed
46 passed, 1 warning in26.82s on this exact source tree: conversation revision, historical views, historical page scope and bus-history sequence tests, serial/background with timeout300 and faulthandler60. Focused Ruff F/I passed. Focused mypy is not clean (59 errors over the two complete source files); historical_views has one remaining non-annotation fault: RegistryProvenance.capture's parameter is narrower than its actual namespace parent. Important failed attempt retained: changing archive attachment to reading_snapshot was wrong. It applied live unique-birth validation to retained history, breaking test_duplicate_and_newer_incarnations_sessions (45 passed/1 failed). That call was reverted; the final46-case run includes and passes the duplicate-birth case. Archives must preserve readable history without acquiring live execution authority. B1 owns registry typing. Handoff18319 requests RegistryProvenance.capture accept its existing RegistryNames[ThreadProvenance] parent; covariance already admits RegistryDocument and RegistrySnapshot, and the implementation only reads threads/aliases. No registry_provenance.py edit or competing capture implementation from B2. Source/consumer evidence (BOUND-2, IMPL-4): audit Package/Repository reused across432src/469tests/15tools; frozen Toad283 files, zero parse omissions. Evidence there: Assumed: the catalogue FileObservation describes display selection, not the SQLite bus sequence or native producer position; archive capture stays display-only. Native file offsets/budgets and external producer positions are unchanged. No local ratchet/full suite or new runtime was used. Still open: B1 parent typing; commander-owned main integration including corrected#2591 and paired Toad cursor consumer; the two actual rehearsal variants and saved-owner native-proof case; installed long-history/archive/fresh-reply/tab-return acceptance. This is pushed source, not merged/installed completion. Original sessions, live stores and UNKNOWN inputs were untouched. |
Registry provenance capture consumes its existing parent (B2 request 18319)Pushed/remote-verified c6e7714, implementation 0e77fa7, preserving the latest shared history/role fixes.
Archive attachment is unchanged. It still reads the recorded document rather than constructing a live snapshot or applying execution-identity checks. Duplicate-birth history remains readable. Source evidence: existing audit Repository enumeration across tracked src/tests/tools/stack, declarations/generic inheritance and all named capture consumers read; no parse omissions. Dynamic/external alias calls are not fully certified. Acceptance on this combined head: Focused mypy removes exactly the capture(RegistryDocument) argument fault, with no new diagnostic messages. Own pre-integration change leaves 20 other errors; after B2's integrated fixes, 13 remain in the two checked modules. This is not a full typing/debt-green claim. Ruff F/I and whitespace check pass. No local ratchet/full suite, provider run, runtime install or native/UI acceptance. B2 retains archive/role fixes and final verification; P426 and the 37-finding repair remain unfinished. Assumed: capture needs no stronger capability than the declared names/data parent; its source body establishes that requirement. |
P424 combined registry-parent verificationB2 fast-forwarded to 46 passed, 1 warning in36.33s on this combined head: conversation revision, historical views, historical page scope and bus-history sequence tests. Includes duplicate/newer incarnations and the four channel/DM catalogue identity codec cases. Serial/background, timeout300, faulthandler60. This is separate evidence from B1's28 tests, not an aggregate. Focused RuffF/I passed. The capture-argument typing fault is gone, and historical_views has no remaining non-annotation diagnostics in this focused run. Mypy remains nonzero:58 errors over complete historical_views/messages modules; no whole-module/debt-clean claim. Corrected P424 ten-reader grep remains0. Native/external coordinates and wire fields are unchanged. Evidence: Still open: commander main integration including corrected#2591, paired Toad cursor migration, the two actual rehearsal variants/saved-owner native proof and installed long-history/archive/fresh-reply/tab-return acceptance. No unsupported runtime, local ratchet/full suite, live-store repair or UNKNOWN-input replay. |
Message.to_wire on a record encoded every field of the record, so a private delivery's audience, decisions and control, and a keyed publication's acknowledgement, went out in tool output and bridge rows, and Message.from_wire refused them as unknown fields. A record's wire form is now its envelope: the message declaration after it in the MRO (ClaimMessage for a claim record, Message otherwise), whose envelope_type each declares. The inbox page declares its messages in their wire form, as the thread poll does. Awareness took the newest received rows in descending order; it now shows that window in sequence order, prioritized peers first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AeUaZjvChAcb6qAd6zPYmw
Tests built roots without installing the bus, so every reader of a fresh root opened a database that did not exist. Fresh roots go through conftest.installed_comms (Bus.install, then Comms), as the installer leaves a root; the CLI and commander fixtures install theirs. Tests that called the deleted file-bus API use Bus: delivery(seq), revision(), claim_projection, deliveries_for_references, replies, published_message, RetainedTaskFacts.capture, MessagePageRequest.read_opened, acquisition without bus_lock, bus.path for store locks and identities, and a bus read snapshot or write transaction where they held the deleted wire locks. The responder fixture passes the root MessageBus expects. Round trips compare against the record's envelope; guards drop the deleted native_source_cursor and AppendProjectionStore. Tests of what the SQLite bus no longer has are deleted: torn or hand-written JSONL rows, bus_meta.json markers and their contention, the metadata reservation, the checkpoint seal, checked async reads, claimed_after_seq cutovers, byte budgets and wire_root_id. The SIGKILL test kills inside and just after the publish transaction. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AeUaZjvChAcb6qAd6zPYmw
|
From the harness plan (claude-code), two defects that live in code this batch rewrites, so they are this batch's to fix rather than main's:
Context: harness plan step 1c's other three commits are on main (ec811af, 0c4e581, 72b58c7). Every schema change now happens only under the install hold, and the installer reconciles every 🤖 Generated with Claude Code |
Step 1c three commits are on main (ec811af, 0c4e581, 72b58c7). The lock wait and the ingress_async lock scope live in code #2549 rewrites, so they move to that batch (PR comment) instead of being polished here. New step 1d: main's own tests pass; 197 CI failures were found on 2026-10-22. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Route-index finding for this PR's owner (the route index is on the virtual bus's surface).
Slop: BOUND-4. Fact: whether the route index is ready. At: upgrade.py:451. Derive: the route index's own typed state. By: the route index's owner type. Shape: the CLI answers "index not ready" as a typed CliResult error member that Stack.cli decodes with FieldCodec, and waits on it, or the index is ready before the verb returns. The phrase match and the 240×5 loop get deleted. If this PR rewrites the route index anyway, fold it in here; otherwise reply with the owner and I'll order it. 🤖 Generated with Claude Code |
69c5b0e
The virtual bus batch (plans/VIRTUAL-BUS-PLAN.md), integrated: one branch, one queue entry, one install, drop-on-fail per the plan. Each step stays owned by its holder, who pushes integration fixes to this branch from now on. The step PRs close into this one when it merges.
Steps merged at these heads:
Paired Toad change: OpenHCSDev/toad#1131 lands with this, never before.
Conflicts resolved here: installer/upgrade.py imports (D adds InstallerChoice, the rest keep theirs; all used), ui_model/observation.py (E's side). Nothing else conflicted.
The red that remains is integration red, and this branch is where it gets fixed.
Generated by Claude Code
E / P415: inherited owner-read refusals (fork-directives)
Includes
75a900113through published combined head25532fac7, retained in remoteclaude-ai/bus-batch.AwaitedReadowns common refusal behavior;ReadRequestinherits it andOwnerReadextends viasuper()for RPC-only refusals. Expected stopped/replaced/disconnected owner reads retain the original exception without terminating observation or returning fake success. Stored-schema fatality and remote reported failure remain distinct. This lands with this batch, not the stale individual #2466 branch. It does not close the separate P413 selected-tool socket acceptance.Exact-head qualification at
25532fac709f620c84344ae51360d5ea97ce2267: 65 executed, 62 passed, 3 failed; zero errors/skips. P415 six-file suite 52/52; selected-tool broker/listener 7/7. Runtime 3/6: three new-session cases stop at the legitimate private-launch native-prefix guard. No failure in integrator-resolved files. Whole-tree order checks: P413 0, expected 0; P415 1, expected 1. These results are not installation or qualification of later heads.Source/consumer evidence and command: #2549 (comment) . Runtime setup needs an exact-head installed environment; no guard weakening or SDK copy. Installed private-bus worker-kill/fresh-tool/Toad proof and idle addressed wake/reply/UI/DB-only-silence acceptance remain open.