Repository navigation
Stamp derived projections and index answer eligibility at append - #2636
Conversation
|
debt-tools at 33c8759, every finding: |
|
debt-src at 4f57f38, every finding: |
trissim
left a comment
There was a problem hiding this comment.
SOURCE REVIEW: CHANGES REQUIRED at cc6d00e. GitHub refuses REQUEST_CHANGES because the fleet shares the PR author's account, so this COMMENT records the verdict.
The required dependency sync is missing. Claude/Tristan directed merging current main and #2630's bus_tables changes before further implementation. Actual ancestry is cc6d00e -> cc44278 -> 271b813 -> main69c5; merge-base with #2630 final3f6ae92e2 is only da502. bus_tables.py still declares DirectReplySource (:93), MessageIdentitySource.response_policy (:102) and eligible_sql (:124), all deleted by #2630's source-accepted family migration. The replay still uses the retired policy column. It is useful old-source evidence, not proof of the requested combined source after deletion.
Preserve the checkpoint/results, merge the coherent #2630 dependency (including consumers and one-shot retirement, not a standalone file copy that breaks imports), resolve producer declarations against surviving projections, then exercise equal-DDL changed-code planning/rebuild/rollback on a surviving projection. Inspect affected held/composed consumers and publish the corrected head. Route #2633/install is independent. This identifies the missing integration requirement, not a failed empirical replay or installed-runtime verdict. #2629 is closed in favor of this replacement.
trissim
left a comment
There was a problem hiding this comment.
Readiness withdrawn by the implementation owner after a real loaded-code/source-file mismatch replay. At this checkpoint, _producer_module_identity hashes the declaring file, which can change after ConversationRole is imported but before the first rebuild. The owner reproduced old DirectPolicy rows receiving a witness matching the changed InformationalPolicy source; a fresh interpreter then incorrectly treats those stale rows as current. Saved failure: /home/ts/.cache/agent-scratch/projection-producers-loaded-code-before.json. The previous same-DDL/fresh-process and rollback checks remain their bounded results; they did not cover this state. #2636 remains draft, unaccepted and outside installation. The owner is replacing file-as-producer identity with actual loaded implementations/declared immutable values and removing the fingerprint caches. Retain the failing replay and confirm repaired behavior after the required #2630 integration; route #2633/install is independent.
…cer-identity # Conflicts: # tests/test_carry_bus_history.py
There was a problem hiding this comment.
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.
Old derived bus rows could survive a Core change when their SQL schema stayed equal.
ProjectionProducernow records the existing installed Core authority,package_stamp.STAMP.commit(), andDerivedTablescompares and records it through the existing reconciliation transaction.ProducedRowis a method-free capability inherited once by the bus projection family. Producer rosters, source/bytecode hashing, homemade value serialization, and source-swapping tests are deleted.All four send-back items are included in accepted head
fcc1062ceafd895d00269515df75b53a48041407, merged atb2b03584bf939b4050ad8c8eba2145e8224d4495:bus_publication.py:45evaluates the existing Python reply-scope owner at append for each frozen recipient.bus_tables.py:98stores oneAwaitingAnswerSourcerelation, including channel questions and informational DMs.DirectReplySourceat line 121 is its non-stored direct-turn subset; it selects the same table through an indexed predicate.bus.py:334applies the requested SQL limit before loading selected deliveries. The retired direct-only table is renamed through its declaration and rebuilt through existing derived-schema ownership. The obsolete retirement tool and its tests are deleted.AnsweredSource.unansweredatbus_tables.py:183and_answer_rowsat line 220 query that projection. Unanswered and latest-answer selections use SQL limits; timestamp selection uses SQLite's maximum. These readers never decode historical candidates to callscope.includes. The SQL copies of response policy remain deleted.HeartbeatSilentatcommander/standing.py:340concatenates its registry members.MissedHeartbeatandHeartbeatNotStartedown their distinct scans; the hard-coded scan owner and own-type dispatch are deleted.plans/commander-native-plan.md:214and:230retain the design. Copied benchmark and delivery status paragraphs were removed; the historical heartbeat receipt is retained below.The complete #2630 work is included and superseded here. GitHub already marks it merged through this ancestry; its follow-up comment points here. Closed #2629's equal-DDL skip was not imported. Current main also preserves #2638's independent
Bus.received_aftermetadata-only contract; this change does not decode replies in that lock-held path.Validation at the accepted head:
2cb721d98e09612c5df6fd38910ceb5fbbdae407: no positive deltas and no introduced violations. Logs:/home/ts/.cache/agent-scratch/projection-stamp-debt-src-fcc.txtandprojection-stamp-debt-tools-fcc.txt./home/ts/.cache/agent-scratch/projection-stamp-awaiting-rebuild.json. The live bus was not touched.Source evidence: the original NRA census covered 1,241 Core/test/tool and paired Toad modules, 6,910 source declarations and 6,711 projected classes, with no parse omissions. The final census covers 1,243 modules and 6,720 projected classes, with no parse omissions. Owner declarations, inheritance and consumer sites are retained in
/home/ts/.cache/agent-scratch/projection-stamp-ast-final.json. This resolves source names and inheritance, not arbitrary dynamic rebinding.Assumed: production Core has no uncommitted runtime-source edits. The live environment resolves Core to editable main, whose tracked runtime source was clean when inspected; a checkout stamp cannot see uncommitted edits. Awaiting-answer work follows the captured frozen delivery recipients; display-only history supplies no frozen delivery obligation. Installed application qualification stays with the installation owner; none is claimed here.
Historical heartbeat checkpoint receipt moved out of the design plan:
Draft #2624 is stacked on the published owner-request port #2621. Eighteen
focused copied-bus/request/page/channel/source checks pass (7.54 seconds),
including the newest beat across both participants' renames and later reverse
replies. On the retained 19,189-record bus copy, an absent service with aliases
takes 76 SQLite instructions after index reconciliation versus 45,088 before;
both return no message. All exact-pair queries use the declared covering index.
Reconciliation preserves every bus sequence and both bus/address row counts;
integrity and foreign-key checks pass, and a repeated reconciliation is a no-op.
Its current unconditional projection rebuild costs 39.83 seconds even for this
index-only change; that installer/schema defect remains open with the commander.
Installed full-session/parity acceptance and the complete control-plane phase
remain open. The source census has zero parse omissions; unprojected declarations
remain visible.