diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index 09136eb00a..40a4e10b70 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -1,3 +1,5 @@ +{"_type":"issue","id":"polylogue-eqq02","title":"devtools: guard required reindex proof edges","description":"Add an executable graph guard for the reindex proof-edge matrix. The policy must reject removal of any required live-proof blocking edge and must bind the edge matrix to the phase graph used by preflight and terminal proof.","design":"Define the required edge matrix as structured policy data or a typed fixture consumed by devtools lab policy bead-graph. Add a negative mutation test that removes one edge and fails, plus a positive check for the current graph. Keep this guard separate from the live production proof receipts.","acceptance_criteria":"1. The twelve required live-proof blocking edges are represented by structured policy data. 2. The positive graph check passes on the current Beads snapshot. 3. Removing any required edge fails the policy or fixture check. 4. The guard is consumed by reindex preflight and terminal proof readiness. 5. Focused tests and devtools verify --quick pass.","notes":"Created from Codex P1 review finding 3734483475 on PR #3872. Existing phase edges remain present, but their required-edge guard was not executable.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-07T08:44:35Z","created_by":"Sinity","updated_at":"2026-08-07T08:44:35Z","labels":["area:devtools","lane:reindex"],"dependencies":[{"issue_id":"polylogue-eqq02","depends_on_id":"polylogue-reindex-proof-edge-correction","type":"discovered-from","created_at":"2026-08-07T10:44:34Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":0,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"polylogue-s8gcr","title":"maintenance: harden cursor reconciliation proof gates","description":"Close the implementation residuals identified by Codex review of the cursor-authority reconciliation route. The implementation must preserve the typed incomparable population while producing a deterministic not_applicable plan when the selected cursor-ahead row has disappeared, and apply must revalidate the current full-evidence blob inventory rather than trusting stale receipt booleans.","design":"Add a real-route regression for the zero-ahead plus preserved incomparable population. Extend backup validation to inspect the current blob inventory and compare every required blob path and digest before apply. Preserve the existing single-path authorization and no-direct-repair rules.","acceptance_criteria":"1. A disappeared selected row with the known incomparable population emits typed not_applicable without mutation. 2. Apply rejects a deleted, added, or changed backup blob after receipt creation. 3. The exact current blob inventory is compared before mutation and recorded in the reconciliation receipt. 4. Existing focused cursor reconciliation tests and devtools verify --quick pass. 5. The live cursor-authority receipt remains separate and open until a production apply is independently executed.","notes":"Created from Codex P1 review findings 3734483480 and 3734483485 on PR #3872. This is implementation hardening, not a production receipt.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-07T08:44:35Z","created_by":"Sinity","updated_at":"2026-08-07T08:44:35Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-s8gcr","depends_on_id":"polylogue-cursor-authority-reconcile-implementation","type":"discovered-from","created_at":"2026-08-07T10:44:34Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"polylogue-1szpj","title":"reindex: enforce source-freeze and candidate-proof ordering","description":"Track the phase-graph correction that makes source-mutating receipts prerequisites of the frozen source snapshot and makes candidate-semantic receipts prerequisites of candidate acceptance. Acceptance criteria: source remediation directly depends on byte-duplicate supersession proof; candidate acceptance directly depends on active-leaf, ChatGPT content, Claude streaming, Claude vintage, Codex 804, hook-authority conflict, and topology proofs; the live-operation aggregate remains terminal evidence rather than a proxy prerequisite; the dependency graph has no cycles; the known missing-AC census remains unchanged and is carried by polylogue-n2dmn. This task covers graph metadata only. It does not authorize source mutation, candidate generation, promotion, restart, or postflight.","acceptance_criteria":"1. Source remediation directly depends on polylogue-byte-supersession-live-proof. 2. Candidate acceptance directly depends on polylogue-active-leaf-live-proof, polylogue-chatgpt-content-live-proof, polylogue-claude-streaming-live-proof, polylogue-claude-vintage-live-proof, polylogue-codex-804-live-proof, polylogue-hook-authority-conflict-proof, and polylogue-topology-live-proof. 3. polylogue-live-operation-receipts remains terminal evidence and is not used as a proxy prerequisite for source freeze or candidate acceptance. 4. bd dep cycles --json returns an empty list. 5. The deterministic missing-AC census remains unchanged at 220 items carried by polylogue-n2dmn.","notes":"Review follow-up 2026-08-07: populated the structured acceptance_criteria field after automated review. The local devtools verify --quick run completed with all 24 steps successful. The known missing-AC census remains 220.","status":"closed","priority":0,"issue_type":"task","assignee":"Sinity","owner":"ezo.dev@gmail.com","created_at":"2026-08-07T06:20:37Z","created_by":"Sinity","updated_at":"2026-08-07T07:14:57Z","started_at":"2026-08-07T07:14:57Z","closed_at":"2026-08-07T07:14:57Z","close_reason":"Merged PR #3869 at dc88ecee89d8. This post-merge bookkeeping closure records the ownership lifecycle after automated review identified that the original implementation PR omitted the closure. No production mutation or candidate generation was performed.","dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"polylogue-6k0na","title":"fix(storage): attest authorized source mutations across durable train continuity","description":"The durable source train continuity gate records exact content evidence at schema release. A backup-gated source liveness operation can legitimately mutate source.db after that release, but the next migration or daemon startup rejects the archive because source-028.json still carries the pre-mutation content hash. This blocks the production source-remediation phase after a valid apply and creates pressure to bypass the durable change-train gate. The fix must preserve fail-closed behavior while giving named source mutation routes a receipt-bound way to refresh continuity evidence.","design":"Add a typed, receipt-backed continuity refresh for authorized source-tier maintenance. It must require the released source train, stopped daemon, the archive ownership lease, a verified backup covering the pre-apply state, the exact mutation receipt and operation identity, unchanged archive identity and schema version, quick_check, and a post-mutation source evidence capture. Persist the refresh in the durable train manifest as an auditable successor to the released content evidence. Reject arbitrary file or SQL changes, stale receipts, wrong archive identity, version changes, missing backup attestation, and refreshes for non-source or non-released trains. Wire the blob-reference-liveness apply route through this seam and add real file-backed red tests for an unreceipted mutation and a successful authorized refresh. Do not weaken source identity, schema, or backup checks.","acceptance_criteria":"1. A valid backup-gated source liveness apply emits a typed mutation receipt that can refresh the released source train continuity evidence. 2. Startup and the next durable migration accept the refreshed train only when archive identity, schema version, quick_check, backup binding, operation identity, and post-mutation evidence match. 3. Missing, stale, malformed, wrong-archive, wrong-tier, or unreceipted mutations remain fail-closed. 4. No direct train-manifest editing or generic bypass flag is added. 5. Real file-backed tests cover successful refresh and each safety rejection. 6. Focused durable-train and blob-liveness tests plus devtools verify --quick pass. 7. Production source mutation remains under the phase-2 source-remediation receipt and is not closed by synthetic tests.","status":"open","priority":0,"issue_type":"bug","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T23:49:12Z","created_by":"Sinity","updated_at":"2026-08-06T23:49:12Z","dependency_count":0,"dependent_count":1,"comment_count":0} {"_type":"issue","id":"polylogue-i3i5k","title":"reindex: prove post-promotion convergence and public query tour","description":"Phase 6 postflight aggregation for the production reindex. Consume the accepted promotion and restart receipt, then prove the real daemon converges against the promoted generation, health remains within the declared envelope, the canonical public CLI/API/MCP query tour preserves provenance and lineage state, and the retained rollback generation remains available. This is an evidence-only phase and does not authorize a second promotion or synthesize a terminal proof.","design":"Require the exact promotion/restart receipt, deployed package identity, active generation identity, and post-restart daemon ownership. Run the named convergence and health checks against the promoted archive, then the canonical public query tour through CLI, API, and MCP read paths. Bind every result to current source, semantics, generation, and process fingerprints. Record typed residuals for health debt, convergence debt, query-contract degradation, or rollback-retention loss. The terminal proof must depend on this phase, not infer postflight from the promotion receipt.","acceptance_criteria":"1. Promotion/restart receipt is valid and names the active generation and deployed package. 2. Real daemon restart is followed by bounded convergence with no unexplained debt or typed residuals accepted by the campaign ledger. 3. Health and ownership receipts bind the live process, archive tiers, schemas, and generation. 4. Canonical CLI, API, and MCP query tour passes against the promoted generation and preserves provenance, authority, uncertainty, lineage, and action/result state. 5. Previous generation remains rollback-available and its retention receipt is current. 6. A self-hashed postflight receipt is consumed directly by polylogue-reindex-final-proof; no terminal proof is emitted here.","status":"open","priority":0,"issue_type":"epic","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T16:52:48Z","created_by":"Sinity","updated_at":"2026-08-06T16:52:48Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-i3i5k","depends_on_id":"polylogue-reindex-promotion-restart","type":"blocks","created_at":"2026-08-06T18:53:03Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0} @@ -13,13 +15,13 @@ {"_type":"issue","id":"polylogue-q8tpq","title":"maintenance: install typed live-proof receipt protocol","description":"Implement one static, typed live-proof receipt protocol for the reindex campaign. It must collect read-only, candidate, and already-produced apply receipts without becoming a task scheduler or mutation surface. Every receipt binds the proof and Bead IDs, exact code SHA, archive identity, source snapshot, schema versions, candidate identity when applicable, parser and lowering fingerprints, registry version, structured result, typed residues, input receipt digests, and private-path digests. This is the shared evidence protocol required before live-proof children can contribute to the terminal reindex proof.\n","design":"Add a versioned LiveProofSpec registry and receipt collector. Register the fixed proof modes read_only, candidate, and existing_apply_receipt. Expose polylogue ops maintenance live-proof with a fixed proof ID and receipt input/output contract. Read-only and candidate producers may execute only registered callables; existing-apply mode validates an immutable receipt. The command must never apply a mutation, stop or start the daemon, migrate a tier, promote a generation, accept arbitrary commands, or infer proof from Beads status. Private paths are represented by SHA-256 digest plus basename. Wire the collector into the live-operation aggregate and the candidate/final proof consumers. Reuse the existing archive-verification registry and canonical fingerprint helpers.\n","acceptance_criteria":"1. The three fixed proof modes and typed residue vocabulary are represented by one registry.\n2. The maintenance command accepts only registered proof IDs and the mode-specific input shape.\n3. Receipts are immutable, self-hashed, and bind code, archive, source snapshot, schema, semantic fingerprints, result, residues, and input receipts.\n4. Candidate receipts bind the exact inactive candidate generation; existing-apply receipts bind the validated input receipt.\n5. Private paths never appear in durable receipt payloads except as digest plus basename.\n6. The command has no mutation, daemon lifecycle, migration, promotion, or arbitrary-command path.\n7. Missing, stale, or malformed bindings fail closed, and a controlled mutation of any required binding makes validation fail.\n8. Focused tests cover registry completeness, receipt determinism, mode isolation, binding failures, and the real CLI dispatch path.\n9. The protocol is a prerequisite of polylogue-live-operation-receipts and remains open until its implementation and focused verification merge.","notes":"Compiled packet intake 2026-08-06. Source packet tar SHA-256: cae45456e8f25c491085c2035afc8fbf36545e4ac59c55bd53c114e6d4179189. Execution-spec SHA-256: 64fa47bd7d42e0d4e81b3e77db2216a88300dd81b08141dd6e79a54319607303. The packet graph basis is 685f2ca8, so current phase names and dependencies must be checked against current Beads before dispatch.","status":"closed","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T13:52:37Z","created_by":"Sinity","updated_at":"2026-08-06T16:53:35Z","closed_at":"2026-08-06T16:53:35Z","close_reason":"Closed as a duplicate of canonical open protocol Bead polylogue-x97cf; implementation ownership and downstream proof edges remain on x97cf.","labels":["area:maintenance","lane:reindex"],"dependency_count":0,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"polylogue-x97cf","title":"maintenance: install typed live-proof receipt protocol","description":"Implement one static, typed live-proof receipt protocol for the reindex campaign. It must collect read-only, candidate, and already-produced apply receipts without becoming a task scheduler or mutation surface. Every receipt binds the proof and Bead IDs, exact code SHA, archive identity, source snapshot, schema versions, candidate identity when applicable, parser and lowering fingerprints, registry version, structured result, typed residues, input receipt digests, and private-path digests. This is the shared evidence protocol required before live-proof children can contribute to the terminal reindex proof.\n","design":"Add a versioned LiveProofSpec registry and receipt collector. Register the fixed proof modes read_only, candidate, and existing_apply_receipt. Expose polylogue ops maintenance live-proof with a fixed proof ID and receipt input/output contract. Read-only and candidate producers may execute only registered callables; existing-apply mode validates an immutable receipt. The command must never apply a mutation, stop or start the daemon, migrate a tier, promote a generation, accept arbitrary commands, or infer proof from Beads status. Private paths are represented by SHA-256 digest plus basename. Wire the collector into the live-operation aggregate and the candidate/final proof consumers. Reuse the existing archive-verification registry and canonical fingerprint helpers.\n","acceptance_criteria":"1. The three fixed proof modes and typed residue vocabulary are represented by one registry.\n2. The maintenance command accepts only registered proof IDs and the mode-specific input shape.\n3. Receipts are immutable, self-hashed, and bind code, archive, source snapshot, schema, semantic fingerprints, result, residues, and input receipts.\n4. Candidate receipts bind the exact inactive candidate generation; existing-apply receipts bind the validated input receipt.\n5. Private paths never appear in durable receipt payloads except as digest plus basename.\n6. The command has no mutation, daemon lifecycle, migration, promotion, or arbitrary-command path.\n7. Missing, stale, or malformed bindings fail closed, and a controlled mutation of any required binding makes validation fail.\n8. Focused tests cover registry completeness, receipt determinism, mode isolation, binding failures, and the real CLI dispatch path.\n9. The protocol is a prerequisite of polylogue-live-operation-receipts and remains open until its implementation and focused verification merge.","notes":"Compiled packet intake 2026-08-06. Source packet tar SHA-256: cae45456e8f25c491085c2035afc8fbf36545e4ac59c55bd53c114e6d4179189. Execution-spec SHA-256: 64fa47bd7d42e0d4e81b3e77db2216a88300dd81b08141dd6e79a54319607303. The packet graph basis is 685f2ca8, so current phase names and dependencies must be checked against current Beads before dispatch.\nGraph correction from Codex review on PR #3861 (comment 5205727476): closed duplicate polylogue-q8tpq no longer claims to supersede this canonical Bead. The supersedes relationship is now x97cf -\u003e q8tpq; x97cf remains the open implementation owner consumed by live-operation and candidate proof.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T13:50:01Z","created_by":"Sinity","updated_at":"2026-08-06T15:55:02Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-x97cf","depends_on_id":"polylogue-q8tpq","type":"supersedes","created_at":"2026-08-06T17:54:48Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":0,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"polylogue-cursor-authority-live-proof","title":"acceptance: reconcile and attest production cursor authority before source freeze","description":"Execute the scoped cursor-authority reconciliation after its implementation is merged, under operator-controlled freeze and backup boundaries, and bind the live result into the reindex operation receipts. This is the residual live effect of polylogue-xeck9; it is not satisfied by the fail-closed mechanism or synthetic tests.","design":"The coordinator supplies a protected private path file for the exact known cursor-ahead row, a fresh verified full_evidence backup manifest, the selected deployed package SHA, and the immutable dry-run plan. Require the daemon stopped and writer ownership. Apply only the plan's one-use authorization through the normal full-ingest/replay route. Revalidate path digest, cursor offset, accepted frontier, accepted raw digest, source-prefix digest, database fingerprints, schema versions, package/code SHA, and plan digest after ownership. Accept only reconciled or typed_deferred, with no unrelated authority regression, quick_check on touched tiers, and a self-hashed receipt bound to before/after projections, ingest attempt, backup, and final verdict. Consume this receipt through polylogue-live-operation-receipts.","acceptance_criteria":"1. Historical diagnosis from polylogue-xeck9 and implementation polylogue-cursor-authority-reconcile-implementation are complete. 2. Dry-run plan is immutable and its exact source path is represented only by digest in durable receipts. 3. Fresh full-evidence backup is verified before apply. 4. The selected one-path route produces either reconciled or typed_deferred with no direct cursor/head/source-row repair. 5. Normal unscoped ingestion remains fail-closed throughout. 6. Before/after raw_frontier_integrity_projection, source/index/ops/blob fingerprints, plan digest, backup identity, code/package SHA, ingest attempt ID, quick_check results, and final verdict are present in polylogue.cursor-authority-reconciliation-receipt.v1. 7. The receipt is consumed by polylogue-live-operation-receipts and remains a blocker for final proof until present. 8. No Bead is closed from a synthetic receipt alone.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T11:51:49Z","created_by":"Sinity","updated_at":"2026-08-06T11:51:49Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-cursor-authority-live-proof","depends_on_id":"polylogue-cursor-authority-reconcile-implementation","type":"blocks","created_at":"2026-08-06T13:54:13Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":1,"dependent_count":2,"comment_count":0} -{"_type":"issue","id":"polylogue-cursor-authority-reconcile-implementation","title":"maintenance: add scoped cursor-authority reconciliation through normal ingest","description":"Implement the one missing maintenance surface needed to repair the known cursor-authority violation without disabling the global fail-closed gate. The existing fail-closed mechanism and census are recorded by polylogue-xeck9 and PR #3823; the remaining implementation is a scoped, backup-gated, single-path reconciliation command.","design":"Add `polylogue ops maintenance cursor-authority-reconcile` with dry-run default and explicit `--apply`. Dry-run takes `--source-path-file` (0600 file containing one private absolute path) and `--output-plan`; resolve `/realm/db/polylogue` explicitly, require the daemon stopped, inspect source/index/ops/audit schemas and versions, run raw_frontier_integrity_projection, require exactly one true cursor-ahead relation for the selected path, verify byte-authoritative accepted head, hash current source bytes through accepted_frontier with two stat observations, and emit self-hashed polylogue.cursor-authority-reconciliation-plan.v1. Apply takes `--plan`, `--backup-manifest`, `--receipt`, and `--apply`; require stopped daemon and verified full-evidence backup, acquire writer lease, revalidate every binding, create a one-use authorization carrying path digest, cursor offset, accepted frontier, and plan digest, invoke only the existing full-ingest/replay route, allow the gate bypass only for the exact planned violation, never directly update ingest_cursor or accepted heads, enforce reconciled or typed_deferred postconditions, reject worsening unrelated rows, quick_check touched tiers, and emit polylogue.cursor-authority-reconciliation-receipt.v1. Add the exact named tests in the acceptance criteria. Do not change frontier comparison semantics or typed reason codes.","acceptance_criteria":"1. Dry-run is deterministic and changes no SQLite pages, cursor rows, source rows, or files except the requested plan. 2. Apply refuses without a verified full-evidence backup or while daemon ownership is active. 3. The exact planned ahead path uses the existing full-ingest/replay route. 4. Normal unscoped ingestion remains blocked. 5. One-use authorization cannot be reused for another path or after cursor, head, source-prefix, schema, database, or code SHA changes. 6. Source mutation during hashing refuses. 7. Zero ahead rows produces typed not_applicable with no mutation. 8. More than one true ahead row refuses without guessing. 9. Existing 725/2 incomparable classes stay explicitly typed and do not become falsely healthy. 10. No direct cursor reset, accepted-head rewrite, or global force switch exists. 11. Crash before commit leaves pre-state unchanged; crash after ingest commit before receipt is recoverable and cannot run twice. 12. Removing path restriction or replacing scoped authorization with global bypass fails a controlled mutation test. 13. Exact-frontier ordinary ingestion remains allowed. 14. Tests exist in tests/unit/maintenance/test_cursor_authority_reconcile.py, tests/unit/sources/test_live_watcher.py, tests/unit/storage/test_raw_retention.py, and tests/unit/cli/test_archive_maintenance_cli.py. 15. devtools verify --quick passes. 16. PR scope is implementation-complete and live-proof-pending; no production receipt or Beads mutation is delivered by the worker.","notes":"Compiled Luna execution packet 2026-08-06 from the settled #3823 authority design. Required base commit: 5ed7a50a12b5ae6fe7dad00213b4a1ac160860b3. Allowed files: polylogue/maintenance/cursor_authority_reconcile.py; polylogue/cli/commands/maintenance/_cursor_authority.py; polylogue/cli/commands/maintenance/__init__.py; polylogue/sources/live/batch.py; tests/unit/maintenance/test_cursor_authority_reconcile.py; tests/unit/sources/test_live_watcher.py; tests/unit/storage/test_raw_retention.py; tests/unit/cli/test_archive_maintenance_cli.py; docs/devtools.md. Forbidden: production access, direct SQL cursor/head/source-row writes, global bypass, generic force flag, raw-frontier semantic changes, typed reason-code changes, Beads writes, subagents. Stop if base commit or an existing one-path normal-ingest API is absent, a required change leaves allowed files, or any ambiguity remains. Verification commands are the four named focused devtools tests plus devtools verify --quick.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T11:51:32Z","created_by":"Sinity","updated_at":"2026-08-06T11:51:32Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-cursor-authority-reconcile-implementation","depends_on_id":"polylogue-xeck9","type":"blocks","created_at":"2026-08-06T13:54:26Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":1,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"polylogue-cursor-authority-reconcile-implementation","title":"maintenance: add scoped cursor-authority reconciliation through normal ingest","description":"Implement the one missing maintenance surface needed to repair the known cursor-authority violation without disabling the global fail-closed gate. The existing fail-closed mechanism and census are recorded by polylogue-xeck9 and PR #3823; the remaining implementation is a scoped, backup-gated, single-path reconciliation command.","design":"Add `polylogue ops maintenance cursor-authority-reconcile` with dry-run default and explicit `--apply`. Dry-run takes `--source-path-file` (0600 file containing one private absolute path) and `--output-plan`; resolve `/realm/db/polylogue` explicitly, require the daemon stopped, inspect source/index/ops/audit schemas and versions, run raw_frontier_integrity_projection, require exactly one true cursor-ahead relation for the selected path, verify byte-authoritative accepted head, hash current source bytes through accepted_frontier with two stat observations, and emit self-hashed polylogue.cursor-authority-reconciliation-plan.v1. Apply takes `--plan`, `--backup-manifest`, `--receipt`, and `--apply`; require stopped daemon and verified full-evidence backup, acquire writer lease, revalidate every binding, create a one-use authorization carrying path digest, cursor offset, accepted frontier, and plan digest, invoke only the existing full-ingest/replay route, allow the gate bypass only for the exact planned violation, never directly update ingest_cursor or accepted heads, enforce reconciled or typed_deferred postconditions, reject worsening unrelated rows, quick_check touched tiers, and emit polylogue.cursor-authority-reconciliation-receipt.v1. Add the exact named tests in the acceptance criteria. Do not change frontier comparison semantics or typed reason codes.","acceptance_criteria":"1. Dry-run is deterministic and changes no SQLite pages, cursor rows, source rows, or files except the requested plan. 2. Apply refuses without a verified full-evidence backup or while daemon ownership is active. 3. The exact planned ahead path uses the existing full-ingest/replay route. 4. Normal unscoped ingestion remains blocked. 5. One-use authorization cannot be reused for another path or after cursor, head, source-prefix, schema, database, or code SHA changes. 6. Source mutation during hashing refuses. 7. Zero ahead rows produces typed not_applicable with no mutation. 8. More than one true ahead row refuses without guessing. 9. Existing 725/2 incomparable classes stay explicitly typed and do not become falsely healthy. 10. No direct cursor reset, accepted-head rewrite, or global force switch exists. 11. Crash before commit leaves pre-state unchanged; crash after ingest commit before receipt is recoverable and cannot run twice. 12. Removing path restriction or replacing scoped authorization with global bypass fails a controlled mutation test. 13. Exact-frontier ordinary ingestion remains allowed. 14. Tests exist in tests/unit/maintenance/test_cursor_authority_reconcile.py, tests/unit/sources/test_live_watcher.py, tests/unit/storage/test_raw_retention.py, and tests/unit/cli/test_archive_maintenance_cli.py. 15. devtools verify --quick passes. 16. PR scope is implementation-complete and live-proof-pending; no production receipt or Beads mutation is delivered by the worker.","notes":"Compiled Luna execution packet 2026-08-06 from the settled #3823 authority design. Required base commit: 5ed7a50a12b5ae6fe7dad00213b4a1ac160860b3. Allowed files: polylogue/maintenance/cursor_authority_reconcile.py; polylogue/cli/commands/maintenance/_cursor_authority.py; polylogue/cli/commands/maintenance/__init__.py; polylogue/sources/live/batch.py; tests/unit/maintenance/test_cursor_authority_reconcile.py; tests/unit/sources/test_live_watcher.py; tests/unit/storage/test_raw_retention.py; tests/unit/cli/test_archive_maintenance_cli.py; docs/devtools.md. Forbidden: production access, direct SQL cursor/head/source-row writes, global bypass, generic force flag, raw-frontier semantic changes, typed reason-code changes, Beads writes, subagents. Stop if base commit or an existing one-path normal-ingest API is absent, a required change leaves allowed files, or any ambiguity remains. Verification commands are the four named focused devtools tests plus devtools verify --quick.\nClosure preparation 2026-08-07: implementation scope is satisfied by merged PR #3860 at dec1eab35cfb. The live production reconciliation receipt remains polylogue-cursor-authority-live-proof and is intentionally open.\nPost-closure review correction 2026-08-07: Codex P1 findings 3734483480 and 3734483485 show that the implementation AC is not fully satisfied. Keep this Bead open while polylogue-cursor-authority-reconcile-hardening adds the typed no-op regression and revalidates current blob inventory contents at apply time. The live production receipt remains open.","status":"open","priority":0,"issue_type":"task","assignee":"Sinity","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T11:51:32Z","created_by":"Sinity","updated_at":"2026-08-07T08:44:34Z","started_at":"2026-08-07T08:19:47Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-cursor-authority-reconcile-implementation","depends_on_id":"polylogue-xeck9","type":"blocks","created_at":"2026-08-06T13:54:26Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":1,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"polylogue-reindex-promotion-restart","title":"reindex: promote the accepted candidate and prove restart","description":"Phase 5 of the production reindex. Promote only the candidate named by a valid acceptance receipt, retain the rollback generation, restart the real daemon, and emit the ownership and pointer-transition receipt consumed by live-operation receipts and the terminal proof.","design":"Acquire the ordinary writer lease, revalidate source, candidate, semantics, acceptance receipt, and rollback identities, then perform one atomic pointer transition. Restart the daemon using the deployed package selected during preflight. Do not treat restart health or postflight convergence as already proven; downstream live-operation and final-proof beads consume this phase receipt and add those observations.","acceptance_criteria":"1. Candidate acceptance receipt is valid and fresh. 2. Pointer flip is atomic and binds old/new generation identities. 3. Previous generation remains available for rollback and its retention is recorded. 4. Real daemon restart receipt binds package, pointer, process, and initial health state. 5. No postflight receipt is synthesized; downstream proofs remain open until independently executed.","notes":"Compiled packet mapping 2026-08-06: this current phase name is authoritative for the stale packet alias reindex-promote-restart. It starts only after candidate acceptance and emits pointer, rollback-retention, ownership, and restart receipts; terminal postflight remains downstream.\nCompiled packet mapping 2026-08-06: this current phase name is authoritative for the stale packet alias reindex-promote-restart. It starts only after candidate acceptance and emits pointer, rollback-retention, ownership, and restart receipts; terminal postflight remains downstream.","status":"open","priority":0,"issue_type":"epic","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T11:50:18Z","created_by":"Sinity","updated_at":"2026-08-06T13:53:38Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-reindex-promotion-restart","depends_on_id":"polylogue-embeddings-retention","type":"blocks","created_at":"2026-08-06T13:53:24Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-promotion-restart","depends_on_id":"polylogue-reindex-candidate-acceptance","type":"blocks","created_at":"2026-08-06T13:53:21Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":2,"dependent_count":5,"comment_count":0} {"_type":"issue","id":"polylogue-reindex-candidate-acceptance","title":"reindex: accept an inactive candidate against all proof gates","description":"Phase 4 of the production reindex. After the inactive candidate is built by polylogue-818fy, run the candidate-targeted canary, incident ledger, registry, corpus fidelity, complexity, origin capability, and promotion-guard checks. This phase owns candidate acceptance, not candidate construction or promotion.","design":"Every check must target the exact inactive candidate generation and frozen source snapshot named by the phase receipts. Consume the dynamic forcing-set equality, canonical snapshot comparator, incident coverage ledger, inferred-origin matrix, and dlfcx candidate-fidelity guard. A missing receipt, stale semantics fingerprint, candidate/active target confusion, unexplained difference, or incomplete forcing row blocks acceptance. Emit one self-hashed candidate acceptance receipt.","acceptance_criteria":"1. polylogue-818fy and polylogue-0x7nh are prerequisites. 2. dlfcx is a direct prerequisite and cannot remain disconnected. 3. All registry checks, incident rows, red twins, corpus members, complexity laws, and expected deltas target the same candidate. 4. Candidate acceptance produces an immutable receipt consumed by promotion/restart. 5. No pointer flip or daemon restart occurs here.","notes":"Compiled packet mapping 2026-08-06: candidate acceptance consumes the shared live-proof protocol, canonical snapshot, dynamic incident forcing-set equality, origin matrix, inferred corpus, fidelity, complexity, and no-promote canary receipts. It never flips the active pointer or restarts the daemon.\nCompiled packet mapping 2026-08-06: candidate acceptance consumes the shared live-proof protocol, canonical snapshot, dynamic incident forcing-set equality, origin matrix, inferred corpus, fidelity, complexity, and no-promote canary receipts. It never flips the active pointer or restarts the daemon.\nPhase-order correction follow-up 2026-08-07: candidate semantic live proofs are now direct prerequisites of candidate acceptance. The aggregate polylogue-live-operation-receipts remains terminal evidence and is not used as a proxy for either source freeze or candidate acceptance.","status":"open","priority":0,"issue_type":"epic","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T11:50:14Z","created_by":"Sinity","updated_at":"2026-08-07T06:15:20Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-0v4tn","type":"blocks","created_at":"2026-08-06T17:28:19Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-0x7nh","type":"blocks","created_at":"2026-08-06T13:53:13Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-818fy","type":"blocks","created_at":"2026-08-06T13:53:09Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-active-leaf-live-proof","type":"blocks","created_at":"2026-08-07T08:14:39Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-canonical-snapshot","type":"blocks","created_at":"2026-08-06T15:51:23Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-chatgpt-content-live-proof","type":"blocks","created_at":"2026-08-07T08:14:43Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-claude-streaming-live-proof","type":"blocks","created_at":"2026-08-07T08:14:47Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-claude-vintage-live-proof","type":"blocks","created_at":"2026-08-07T08:14:51Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-codex-804-live-proof","type":"blocks","created_at":"2026-08-07T08:14:55Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-csx21","type":"blocks","created_at":"2026-08-06T15:51:24Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-cw8l0","type":"blocks","created_at":"2026-08-06T17:00:37Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-dcrmm","type":"blocks","created_at":"2026-08-06T17:27:49Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-dlfcx","type":"blocks","created_at":"2026-08-06T13:53:17Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-f1vg","type":"blocks","created_at":"2026-08-06T15:51:24Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-hook-authority-conflict-proof","type":"blocks","created_at":"2026-08-07T08:14:59Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-incident-coverage-ledger","type":"blocks","created_at":"2026-08-06T14:07:12Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-kmt1c","type":"blocks","created_at":"2026-08-06T17:13:55Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-mn0si","type":"blocks","created_at":"2026-08-06T17:34:18Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-o5smo","type":"blocks","created_at":"2026-08-06T17:14:03Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-origin-capability-matrix","type":"blocks","created_at":"2026-08-06T15:51:23Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-q4qpl","type":"blocks","created_at":"2026-08-06T17:27:45Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-reindex-registry-two-plane-subset","type":"blocks","created_at":"2026-08-06T15:51:23Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-reindex-source-remediation","type":"blocks","created_at":"2026-08-06T14:07:08Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-rrxe4","type":"blocks","created_at":"2026-08-06T15:51:23Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-rrxe4.1","type":"blocks","created_at":"2026-08-06T15:51:24Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-tiozw","type":"blocks","created_at":"2026-08-06T17:14:06Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-topology-live-proof","type":"blocks","created_at":"2026-08-07T08:15:03Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-candidate-acceptance","depends_on_id":"polylogue-x97cf","type":"blocks","created_at":"2026-08-06T15:51:23Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":28,"dependent_count":1,"comment_count":0} {"_type":"issue","id":"polylogue-reindex-source-remediation","title":"reindex: freeze, deploy, migrate, and remediate source state","description":"Phase 2 of the production reindex. Starting from an accepted preflight authorization, perform the freeze/deploy/migrate boundary and the backup-gated source remediation required to make the durable source archive eligible for candidate construction. This carrier owns live application receipts split from raw-failure, cursor-authority, and redeploy residuals; it does not build or promote an index candidate.","design":"Require a fresh verified full-evidence backup, stopped-daemon ownership, the selected deployed package, durable schema currency, and immutable dry-run plans before any apply. Execute only named scoped maintenance routes, including the cursor-authority reconciliation route once its implementation exists. Recompute every plan binding after ownership acquisition, run quick_check on touched tiers, and emit immutable receipts consumed by candidate build and postflight proof. Never repair by direct cursor/head/source-row SQL edits.","acceptance_criteria":"1. The deployed runtime and durable tiers match the preflight contract. 2. Fresh backup and migration receipts bind exact source, index, ops, blob, and package identities. 3. dyica, xeck9, and msia source-side residuals have typed dry-run/apply outcomes or remain explicit blockers. 4. No candidate generation is built or promoted here. 5. The phase exposes exact source snapshot and receipts for the inactive candidate build.","notes":"Compiled packet mapping 2026-08-06: this current phase carrier subsumes the stale packet name reindex-freeze-deploy-migrate. It is phase 2 after preflight and before candidate construction. All live writes remain operator-authorized, dry-run-first, backup-gated, and receipt-bound.\nCompiled packet mapping 2026-08-06: this current phase carrier subsumes the stale packet name reindex-freeze-deploy-migrate. It is phase 2 after preflight and before candidate construction. All live writes remain operator-authorized, dry-run-first, backup-gated, and receipt-bound.\nPhase-order correction 2026-08-07: source remediation now consumes the source-mutating live receipts directly before it can emit the frozen source snapshot. This includes cursor-authority reconciliation, hook-payload reconciliation, raw dedupe, stalled-cursor disposition, and excluded-cursor revival. The live-operation aggregate remains a terminal evidence bundle and is not a substitute for these phase-2 prerequisites. Candidate construction must not begin from a snapshot that predates any of these applies or typed non-applicability outcomes.\nNew blocker polylogue-6k0na (2026-08-07): source-tier mutation receipts must refresh durable change-train continuity through an audited typed seam before the phase can proceed. The earlier blob liveness apply was backup-verified but exposed that current train state rejects legitimate source content changes on the next migration/startup. No train manifest bypass is permitted.\nPhase-order correction follow-up 2026-08-07: byte-duplicate supersession is source-mutating because it changes quarantined raw authority to a terminal superseded state. Its live-proof receipt is now a direct prerequisite of this source phase, alongside the existing source mutation receipts. Candidate construction must consume the resulting frozen snapshot.","status":"open","priority":0,"issue_type":"epic","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T11:50:11Z","created_by":"Sinity","updated_at":"2026-08-07T06:15:17Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-6k0na","type":"blocks","created_at":"2026-08-07T01:49:25Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-a7gmk","type":"blocks","created_at":"2026-08-06T13:52:51Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-byte-supersession-live-proof","type":"blocks","created_at":"2026-08-07T08:14:35Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-cursor-authority-live-proof","type":"blocks","created_at":"2026-08-07T01:37:50Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-cursor-authority-reconcile-implementation","type":"blocks","created_at":"2026-08-06T13:54:06Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-dyica","type":"blocks","created_at":"2026-08-06T13:52:55Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-excluded-cursor-live-proof","type":"blocks","created_at":"2026-08-07T01:37:50Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-hook-reconciliation-apply-proof","type":"blocks","created_at":"2026-08-07T01:37:50Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-raw-dedupe-apply-proof","type":"blocks","created_at":"2026-08-07T01:37:50Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-reindex-preflight-authorization","type":"blocks","created_at":"2026-08-06T13:52:47Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-s8s54","type":"blocks","created_at":"2026-08-06T18:53:04Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-stalled-cursor-live-proof","type":"blocks","created_at":"2026-08-07T01:37:50Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-uecir","type":"blocks","created_at":"2026-08-06T17:35:00Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-source-remediation","depends_on_id":"polylogue-xeck9","type":"blocks","created_at":"2026-08-06T13:52:58Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":14,"dependent_count":4,"comment_count":0} -{"_type":"issue","id":"polylogue-reindex-preflight-authorization","title":"reindex: authorize a frozen production transition","description":"Phase 1 of the production reindex. Establish one immutable authorization binding the selected code and deployed package, source snapshot, raw-authority census, schema fingerprints, explicit waivers, and the exact preflight receipt before any freeze, migration, candidate build, or live mutation. The current graph has postconditions blocking the operation that produces them; this phase carrier provides the ordered precondition.","design":"The coordinator records a structured preflight contract and receipt. It consumes the structured PR scope contract and the current incident-forcing set, and it does not perform database mutation. It must reject stale code, stale Beads scope, unresolved disconnected P0 delivery defects, untyped raw failures, or a source/index authority census without an explicit typed disposition. Runtime values are produced only by named commands and stored in the receipt consumed by the next phase.","acceptance_criteria":"1. Exact code SHA, deployed package SHA, Beads digest, source/index/ops fingerprints, schema versions, raw-authority census, and waiver set are bound in a self-hashed preflight receipt. 2. polylogue-pr-scope-contract is a direct prerequisite. 3. The receipt is immutable and names the next source-remediation and candidate-build phase inputs. 4. No production write or promotion occurs in this phase. 5. A stale binding or disconnected P0 defect fails closed.","status":"open","priority":0,"issue_type":"epic","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T11:50:07Z","created_by":"Sinity","updated_at":"2026-08-06T11:50:07Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-reindex-preflight-authorization","depends_on_id":"polylogue-incident-coverage-ledger","type":"blocks","created_at":"2026-08-06T15:51:23Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-preflight-authorization","depends_on_id":"polylogue-pr-scope-contract","type":"blocks","created_at":"2026-08-06T13:52:44Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-preflight-authorization","depends_on_id":"polylogue-reindex-proof-edge-correction","type":"blocks","created_at":"2026-08-06T15:51:23Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":3,"dependent_count":1,"comment_count":0} +{"_type":"issue","id":"polylogue-reindex-preflight-authorization","title":"reindex: authorize a frozen production transition","description":"Phase 1 of the production reindex. Establish one immutable authorization binding the selected code and deployed package, source snapshot, raw-authority census, schema fingerprints, explicit waivers, and the exact preflight receipt before any freeze, migration, candidate build, or live mutation. The current graph has postconditions blocking the operation that produces them; this phase carrier provides the ordered precondition.","design":"The coordinator records a structured preflight contract and receipt. It consumes the structured PR scope contract and the current incident-forcing set, and it does not perform database mutation. It must reject stale code, stale Beads scope, unresolved disconnected P0 delivery defects, untyped raw failures, or a source/index authority census without an explicit typed disposition. Runtime values are produced only by named commands and stored in the receipt consumed by the next phase.","acceptance_criteria":"1. Exact code SHA, deployed package SHA, Beads digest, source/index/ops fingerprints, schema versions, raw-authority census, and waiver set are bound in a self-hashed preflight receipt. 2. polylogue-pr-scope-contract is a direct prerequisite. 3. The receipt is immutable and names the next source-remediation and candidate-build phase inputs. 4. No production write or promotion occurs in this phase. 5. A stale binding or disconnected P0 defect fails closed.","status":"open","priority":0,"issue_type":"epic","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T11:50:07Z","created_by":"Sinity","updated_at":"2026-08-06T11:50:07Z","labels":["area:maintenance","lane:reindex"],"dependencies":[{"issue_id":"polylogue-reindex-preflight-authorization","depends_on_id":"polylogue-eqq02","type":"blocks","created_at":"2026-08-07T10:44:34Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-preflight-authorization","depends_on_id":"polylogue-incident-coverage-ledger","type":"blocks","created_at":"2026-08-06T15:51:23Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-preflight-authorization","depends_on_id":"polylogue-pr-scope-contract","type":"blocks","created_at":"2026-08-06T13:52:44Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-preflight-authorization","depends_on_id":"polylogue-reindex-proof-edge-correction","type":"blocks","created_at":"2026-08-06T15:51:23Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":4,"dependent_count":1,"comment_count":0} {"_type":"issue","id":"polylogue-dudtn","title":"Implement durable schema-currency gate hardening","description":"Implementation slice extracted from polylogue-9qnzy after review found the original gate incomplete. This Bead owns the code and regression tests; polylogue-9qnzy remains the live deployment and migration operation.\n\nProblem: rebuild-index could bypass durable schema currency through audit drift, ownership races, daemon bulk setup, the empty-source CLI path, and an unstructured daemon error.\n\nScope: guard every canonical durable migration tier, recheck after ownership acquisition, guard daemon bulk bookkeeping, remove empty-source bypass, reject daemon preflight, preserve a structured conflict diagnostic, and document migration of audit.db.\n\nNo production mutation is performed by this implementation Bead.","design":"Use one canonical durable-tier set from the migration runner. Keep derived index mismatch outside this gate because rebuild-index owns replacement of the derived tier. Bind the implementation to a PR scope carrier and leave live operation as a separate receipt.","acceptance_criteria":"1. The predicate derives from DURABLE_MIGRATION_TIERS and covers source, user, and audit.\n2. Local rebuild checks before receipt/ownership/candidate creation and again after ownership acquisition.\n3. Daemon bulk entry checks before transaction bookkeeping.\n4. CLI empty-source execution and --preflight --daemon cannot bypass the guard.\n5. Daemon HTTP returns a structured 409 rebuild-schema-currency diagnostic.\n6. File-backed regression tests exercise every guard and the quick gate passes.\n7. Live migrations and deployment remain open under polylogue-9qnzy and polylogue-a7gmk.","notes":"Created 2026-08-06 to provide truthful implementation authority for PR #3856 after Terra/Sol review of polylogue-9qnzy noted that its AC5 explicitly excluded code changes.\nPublication carrier corrected 2026-08-06: PR #3857 now binds the full head c9d12abcf60941e9925ae22c475dc9a4230b3a8d. Implementation evidence remains PR #3856 at 1ac4749772bb9207c356ab9a32e6fa14c9db194a; live migration remains polylogue-9qnzy/a7gmk.\nCarrier publication commit is now a2ec4d8fbff5b19bed843df15f269f58b6881580; the PR body carrier is regenerated against that exact head and the committed branch snapshot.\nCI publication sequencing correction 2026-08-06: prepare the next exact-head carrier before pushing its commit, because Circle validates the PR body at push-trigger time.\nFinal carrier sequencing receipt 2026-08-06: the next PR head will be pushed only after its exact carrier has been published in the PR body; this prevents a stale push-triggered validation.\nAudit correction 2026-08-06: the merged tracker commit for PR #3857 had serialized literal backslash-n sequences in this Bead description and acceptance fields. Replaced them with actual paragraph/newline structure. The PR also carried unrelated tracker mutations for polylogue-z7sv3 and polylogue-csx21; those graph states are retained only where independently justified, while the attribution/process defect is tracked under polylogue-pr-scope-contract.","status":"closed","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T09:50:03Z","created_by":"Sinity","updated_at":"2026-08-06T19:24:35Z","closed_at":"2026-08-06T19:24:35Z","close_reason":"Closed after current-master audit: the durable schema-currency implementation and regression coverage landed in PR #3858. Live deploy and migration receipts remain under polylogue-9qnzy and polylogue-a7gmk.","dependency_count":0,"dependent_count":2,"comment_count":0} -{"_type":"issue","id":"polylogue-reindex-proof-edge-correction","title":"Correct blocking edges for reindex live proof graph","description":"The proof graph merged in PR 3836 attached live-proof children to historical implementation Beads only with parent-child membership edges. The twelve live-proof children must also have explicit blocking dependencies on their implementation mechanism or acceptance owner, and the terminal reindex proof must consume the corrected graph.","design":"Beads rejects a blocks edge from a child to its ancestor, so the twelve live-proof records are standalone acceptance nodes rather than children of the historical implementation records. Each has an explicit blocks edge to the implementation owner. The edge-correction item itself blocks polylogue-reindex-final-proof. This preserves hard ordering without introducing an impossible ancestor dependency.","acceptance_criteria":"1. All twelve live-operation proof children have explicit blocks edges to their implementation or acceptance owner where the audit identified one. 2. The terminal reindex proof depends on the edge-correction item and therefore cannot be ready while those proof obligations are unbound. 3. Beads graph validation reports no cycles or dangling dependencies. 4. A graph fixture test or executable policy check fails when one required blocking edge is removed. 5. The change is delivered as one batched Beads export commit with the exact edge matrix in the PR body.","notes":"Graph constraint correction 2026-08-06: Beads rejects a blocks edge from a child to its ancestor. The twelve live-proof records were therefore detached from historical implementation parents and retain explicit blocks edges to those implementation records. This preserves hard ordering without creating an impossible ancestor dependency; the exact matrix is in the PR.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:35:24Z","created_by":"Sinity","updated_at":"2026-08-06T05:48:17Z","dependency_count":0,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"polylogue-reindex-proof-edge-correction","title":"Correct blocking edges for reindex live proof graph","description":"The proof graph merged in PR 3836 attached live-proof children to historical implementation Beads only with parent-child membership edges. The twelve live-proof children must also have explicit blocking dependencies on their implementation mechanism or acceptance owner, and the terminal reindex proof must consume the corrected graph.","design":"Beads rejects a blocks edge from a child to its ancestor, so the twelve live-proof records are standalone acceptance nodes rather than children of the historical implementation records. Each has an explicit blocks edge to the implementation owner. The edge-correction item itself blocks polylogue-reindex-final-proof. This preserves hard ordering without introducing an impossible ancestor dependency.","acceptance_criteria":"1. All twelve live-operation proof children have explicit blocks edges to their implementation or acceptance owner where the audit identified one. 2. The terminal reindex proof depends on the edge-correction item and therefore cannot be ready while those proof obligations are unbound. 3. Beads graph validation reports no cycles or dangling dependencies. 4. A graph fixture test or executable policy check fails when one required blocking edge is removed. 5. The change is delivered as one batched Beads export commit with the exact edge matrix in the PR body.","notes":"Graph constraint correction 2026-08-06: Beads rejects a blocks edge from a child to its ancestor. The twelve live-proof records were therefore detached from historical implementation parents and retain explicit blocks edges to those implementation records. This preserves hard ordering without creating an impossible ancestor dependency; the exact matrix is in the PR.\nClosure preparation 2026-08-07: required phase-ordering edges are present in the current Beads graph after merged PR #3869 at dc88ecee89d8. The phase graph remains live-proof-gated downstream.\nPost-closure review correction 2026-08-07: Codex P1 finding 3734483475 shows the required-edge mutation guard is absent. Keep this Bead open while polylogue-reindex-proof-edge-guard adds the executable edge matrix and negative mutation check. Existing phase ordering remains present; no production mutation occurred.","status":"open","priority":0,"issue_type":"task","assignee":"Sinity","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:35:24Z","created_by":"Sinity","updated_at":"2026-08-07T08:44:35Z","started_at":"2026-08-07T08:19:47Z","dependency_count":0,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"polylogue-pr-scope-contract","title":"PR scope carrier and executable merge contract","description":"Replace prose-only PR process assumptions with a structured carrier that tells automated review and merge gates the exact Beads scope, disposition, evidence, and residual successor state. The carrier must be bound to the PR head and canonical Beads snapshot and must be consumed by the existing CircleCI and merge-boundary machinery.","design":"Use a versioned JSON carrier embedded in the PR body. Keep Bead acceptance criteria human-readable and do not parse prose. Validate whole-Bead dispositions, assigned IDs, head SHA, Beads snapshot digest, evidence references, and successor IDs for partial work. Make render and check commands part of devtools workspace and bind the carrier digest into merge-gate receipts.","acceptance_criteria":"1. A versioned PR scope carrier schema and renderer/checker exist under devtools and are reachable through the existing workspace command surface. 2. The checker rejects missing or malformed carriers, wrong head SHA, missing assigned Beads, stale Beads digest, unknown or closed successor IDs, and partial dispositions without named successors. 3. CircleCI quick-gate and the actual merge boundary validate the carrier and record its digest in the existing merge-gate receipt. 4. The PR template and lane definitions instruct fresh lanes to emit a non-draft carrier-backed PR with Summary, Problem, Solution, Verification, and per-Bead disposition matrix. 5. Focused tests exercise production command paths and anti-vacuity mutations. 6. No machine gate parses PR prose or Bead acceptance prose.","notes":"Compiled packet 04 intake 2026-08-06: retain stable intent in the PR body and move mutable head/Beads/evidence binding into a merge attestation. Implement devtools workspace pr-scope sync --pr N so the carrier is recomputed deterministically after scope changes. The carrier must include execution-contract digest and named successors without any natural-language parsing. Packet source SHA-256: 64fa47bd7d42e0d4e81b3e77db2216a88300dd81b08141dd6e79a54319607303.\nCompiled packet 04 intake 2026-08-06: retain stable intent in the PR body and move mutable head/Beads/evidence binding into a merge attestation. Implement devtools workspace pr-scope sync --pr N so the carrier is recomputed deterministically after scope changes. The carrier must include execution-contract digest and named successors without any natural-language parsing. Packet source SHA-256: 64fa47bd7d42e0d4e81b3e77db2216a88300dd81b08141dd6e79a54319607303.\nCodex audit of merged PR #3848 found the merged carrier is not yet a complete CI trust boundary. P1 comments 3726551752 and 3726551758 require PR-body edits and resolver-keyword protection to remain load-bearing. Comment 3726551763 requires the CI launcher itself to be trusted from the base revision, not dispatchable from the PR checkout. Comments 3726990948 and 3726990964 require missing PR discovery to fail closed and fork branches named master to remain validated. Merged PR #3845 also left P1 3726328441: the carrier must support an explicit self-contained no-Bead disposition without inventing tracker scope. Implement structured metadata invalidation or a base-revision launcher; do not parse prose as a substitute. Keep this Bead open.\nMerged-PR audit 2026-08-06: PR #3857 carried unrelated Bead mutations for polylogue-z7sv3 and polylogue-csx21, and its new polylogue-dudtn fields were serialized with literal backslash-n text. The current graph keeps z7sv3 closed because #3848 independently satisfied it, and keeps csx21 as a proof dependency because the campaign graph independently requires complexity-law evidence. The process defect is that a tracker-only PR did not carry a complete, truthful mutation scope. Future carrier validation must bind the full Bead mutation set, not only assigned implementation Beads, and reject unassigned tracker changes.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:35:16Z","created_by":"Sinity","updated_at":"2026-08-06T15:39:03Z","dependencies":[{"issue_id":"polylogue-pr-scope-contract","depends_on_id":"polylogue-inygw","type":"blocks","created_at":"2026-08-06T17:27:53Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0} {"_type":"issue","id":"polylogue-canonical-snapshot","title":"test harness: compare canonical archive snapshots across all reindex routes","description":"Provide one comparator for rrxe4, 0x7nh, incident fixtures, and promotion, covering canonical rows, provenance, authority, links, attachments, derived views, and representative public projections.","design":"Do not create a second archive semantics engine. Normalize through an explicit allowlist and preserve semantic timestamps and provider identity.","acceptance_criteria":"Only explicit run-local fields are normalized. Mutating material origin, link status, provenance, or action-result state fails. The same comparator is used by route equivalence, crash recovery, and promotion proof tests.","notes":"Codex audit 2026-08-06: merged PR #3844 left six P1 comparator gaps without a disposition. Required before this bead can satisfy candidate acceptance: normalize path-derived raw IDs or exclude only run-local IDs; compare representative FTS postings by default when search_queries is omitted; include durable user.db semantic relations; include index.web_content_constructs; include source.excised_content tombstones; read raw_revision_heads from index.db rather than source.db. Evidence comments: 3726316190, 3726316197, 3726316201, 3726316204, 3726316209, 3726316210. These are implementation residuals, not live receipts.\nCodex closed-PR audit 2026-08-06: PR #3844 residuals remain on master. The comparator must normalize path-derived raw IDs, compare FTS postings, include user.db and web content constructs, preserve excision tombstones, and read raw revision heads from index. Candidate fix commit 4b48e2920 is not merged and is not closure evidence.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:00:15Z","created_by":"Sinity","updated_at":"2026-08-06T19:24:18Z","dependency_count":0,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"polylogue-embeddings-retention","title":"storage: retain and garbage-collect embeddings generations automatically","description":"Make rollback retention automatic and receipt-backed before blue-green promotion. Superseded generations must have an owner, retention state, and safe GC path.","design":"Follow automagic-invariants: no routine manual cleanup surface is the ownership mechanism.","acceptance_criteria":"1. Generation lifecycle tests prove active, retained, eligible, and reclaimed states.\n2. A promotion receipt proves the previous generation remains rollback-capable until the declared retention boundary.\n3. Malformed or unreadable predecessor metadata fails closed rather than being skipped.\n4. Receipt file contents and retention directories are fsynced before reclamation; interrupted active-promotion receipt creation is retried on startup.\n5. Legacy receipts without nanosecond chronology are normalized or rejected without guessing rollback order.\n6. Controlled crash and metadata-corruption tests fail before the durability/recovery fixes and pass after them.\n7. Focused retention/fast-forward tests and devtools verify --quick pass.","notes":"Codex closed-PR audit 2026-08-06: PR #3837 residuals 3726214690, 3726214693, 3726214697, 3726214699, 3726314636, and 3726314639. The original lifecycle acceptance was too narrow: malformed predecessor state, file and directory fsync ordering, missing active receipts after interruption, and legacy chronology must be explicit.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:00:15Z","created_by":"Sinity","updated_at":"2026-08-06T19:24:18Z","dependency_count":0,"dependent_count":1,"comment_count":0} @@ -38,7 +40,7 @@ {"_type":"issue","id":"polylogue-codex-804-live-proof","title":"acceptance: prove incident-scale Codex materialization and recovery","description":"Residual live or proof scope of polylogue-5iz4. The implementation mechanism may remain closed, but the reindex cannot claim convergence until this evidence exists.","design":"Run through the real production seam against a frozen source or candidate generation. Bind the result to an immutable receipt and state explicitly what was not exercised.","acceptance_criteria":"A real or faithfully sanitized 804-revision, approximately 90 MiB wire shape exercises recovery-copy ordering, crash/restart, source-authority terminal state, and candidate materialization with resource receipts.","notes":"Parent implementation bead: polylogue-5iz4. This child exists because the audit found the implementation closure did not prove the live effect.\nCodex audit of merged PR #3855 found residual proof gaps not covered by the earlier replies. Comment 3728404649 shows every revision regenerates timestamps for existing provider IDs, so the growth chain can pass through conflict fallback instead of containment. Comment 3728830133 shows the kill waits until the transaction is already paused, missing the pre-checkpoint crash window. Comment 3728830142 shows the final postcondition accepts zero memberships or quarantined authority, allowing unresolved historical revisions. Keep this Bead open. The implementation successor must preserve original timestamps for existing messages, inject a kill before the durable pause/checkpoint boundary, and require every raw revision to have a resolved or explicitly completed non-ambiguous authority decision. No live receipt is implied.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:00:11Z","created_by":"Sinity","updated_at":"2026-08-06T15:14:44Z","dependencies":[{"issue_id":"polylogue-codex-804-live-proof","depends_on_id":"polylogue-27522","type":"blocks","created_at":"2026-08-06T17:25:04Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-codex-804-live-proof","depends_on_id":"polylogue-5iz4","type":"blocks","created_at":"2026-08-06T07:39:33Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"polylogue-topology-live-proof","title":"acceptance: prove live topology status and safe public composition","description":"Residual live or proof scope of polylogue-4ts.10. The implementation mechanism may remain closed, but the reindex cannot claim convergence until this evidence exists.","design":"Run through the real production seam against a frozen source or candidate generation. Bind the result to an immutable receipt and state explicitly what was not exercised.","acceptance_criteria":"Candidate and live census show zero empty link status or method values, typed unresolved or cycle-broken edges, and visibly safe reader behavior for unresolved parents.","notes":"Parent implementation bead: polylogue-4ts.10. This child exists because the audit found the implementation closure did not prove the live effect.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:00:11Z","created_by":"Sinity","updated_at":"2026-08-06T05:00:11Z","dependencies":[{"issue_id":"polylogue-topology-live-proof","depends_on_id":"polylogue-4ts.10","type":"blocks","created_at":"2026-08-06T07:39:23Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":1,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"polylogue-live-operation-receipts","title":"acceptance: collect live operation receipts for reindex readiness","description":"Aggregate the named operational and live-proof children that convert implementation mechanisms into evidence about the actual archive. This remains open until each applicable child has an immutable receipt or an explicit typed non-applicability decision.","design":"Keep mechanism beads historically honest. Each child proves one live effect or operation and is independently rerunnable and idempotent.","acceptance_criteria":"Every required live-proof child has a receipt bound to the exact source snapshot, candidate or active generation, and semantic fingerprint. Residues are typed rather than silently omitted. The aggregate report is consumed by the terminal reindex proof.","notes":"Compiled packet intake 2026-08-06: all aggregate members must produce a validated polylogue.live-proof-receipt.v1 or an exact typed non-applicability decision. The aggregate consumes the typed live-proof protocol, current source/candidate bindings, and scoped apply receipts; it does not infer completion from Bead status or PR merge state. Promotion/restart is a downstream phase and is not itself a live-operation child.\nCompiled packet intake 2026-08-06: all aggregate members must produce a validated polylogue.live-proof-receipt.v1 or an exact typed non-applicability decision. The aggregate consumes the typed live-proof protocol, current source/candidate bindings, and scoped apply receipts; it does not infer completion from Bead status or PR merge state. Promotion/restart is a downstream phase and is not itself a live-operation child.\nPhase-order correction 2026-08-07: this aggregate remains the complete live-operation evidence bundle, but source-mutating children are also direct prerequisites of polylogue-reindex-source-remediation. Candidate/postflight children remain downstream and must not be pulled into source freeze merely because they share this aggregate.","status":"open","priority":0,"issue_type":"epic","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:00:10Z","created_by":"Sinity","updated_at":"2026-08-06T23:37:51Z","dependencies":[{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-active-leaf-live-proof","type":"blocks","created_at":"2026-08-06T07:02:58Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-byte-supersession-live-proof","type":"blocks","created_at":"2026-08-06T07:02:58Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-chatgpt-content-live-proof","type":"blocks","created_at":"2026-08-06T07:02:58Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-claude-streaming-live-proof","type":"blocks","created_at":"2026-08-06T07:02:58Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-claude-vintage-live-proof","type":"blocks","created_at":"2026-08-06T07:02:57Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-codex-804-live-proof","type":"blocks","created_at":"2026-08-06T07:02:57Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-cursor-authority-live-proof","type":"blocks","created_at":"2026-08-06T13:54:17Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-excluded-cursor-live-proof","type":"blocks","created_at":"2026-08-06T07:02:58Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-hook-authority-conflict-proof","type":"blocks","created_at":"2026-08-06T07:02:58Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-hook-reconciliation-apply-proof","type":"blocks","created_at":"2026-08-06T07:02:58Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-raw-dedupe-apply-proof","type":"blocks","created_at":"2026-08-06T07:02:58Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-stalled-cursor-live-proof","type":"blocks","created_at":"2026-08-06T07:02:57Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-topology-live-proof","type":"blocks","created_at":"2026-08-06T07:02:57Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-uecir","type":"blocks","created_at":"2026-08-06T17:39:10Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-live-operation-receipts","depends_on_id":"polylogue-x97cf","type":"blocks","created_at":"2026-08-06T15:51:23Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":15,"dependent_count":1,"comment_count":0} -{"_type":"issue","id":"polylogue-reindex-final-proof","title":"acceptance: emit a proof-carrying production reindex receipt","description":"Terminal receipt-only aggregation gate for the production reindex. It authorizes neither code closure nor promotion by itself. It becomes satisfiable only when every incident, candidate, live-operation, fidelity, provenance, scale, and public-contract obligation has a current hash-bound receipt.","design":"Consume one self-describing invariant registry, one canonical comparator, one structured incident ledger, and immutable live receipts. Do not infer completion from a merged PR or a green synthetic test.","acceptance_criteria":"Every blocking incident-ledger row is green or has explicit operator acceptance. The candidate receipt binds the source snapshot, semantic fingerprints, registry version, canonical snapshot, and exact candidate generation. Promotion, daemon restart, convergence, public query tour, and rollback-retention receipts are present and current.","notes":"Evidence required: candidate acceptance receipt; promotion receipt; post-promotion daemon health receipt; canonical query-tour receipt; retained-generation rollback receipt.\nCompiled packet mapping 2026-08-06: this is phase 6 postflight proof, not a start gate. It consumes candidate acceptance, promotion/restart, live-operation, public query-tour, convergence, health, and rollback-retention receipts. Historical direct implementation edges must not be used as a second control surface.\nCompiled packet mapping 2026-08-06: this is phase 6 postflight proof, not a start gate. It consumes candidate acceptance, promotion/restart, live-operation, public query-tour, convergence, health, and rollback-retention receipts. Historical direct implementation edges must not be used as a second control surface.","status":"open","priority":0,"issue_type":"epic","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:00:10Z","created_by":"Sinity","updated_at":"2026-08-06T13:53:42Z","dependencies":[{"issue_id":"polylogue-reindex-final-proof","depends_on_id":"polylogue-i3i5k","type":"blocks","created_at":"2026-08-06T18:53:04Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-final-proof","depends_on_id":"polylogue-live-operation-receipts","type":"blocks","created_at":"2026-08-06T07:02:24Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-final-proof","depends_on_id":"polylogue-reindex-promotion-restart","type":"blocks","created_at":"2026-08-06T13:53:47Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-final-proof","depends_on_id":"polylogue-reindex-proof-edge-correction","type":"blocks","created_at":"2026-08-06T21:51:36Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":4,"dependent_count":0,"comment_count":0} +{"_type":"issue","id":"polylogue-reindex-final-proof","title":"acceptance: emit a proof-carrying production reindex receipt","description":"Terminal receipt-only aggregation gate for the production reindex. It authorizes neither code closure nor promotion by itself. It becomes satisfiable only when every incident, candidate, live-operation, fidelity, provenance, scale, and public-contract obligation has a current hash-bound receipt.","design":"Consume one self-describing invariant registry, one canonical comparator, one structured incident ledger, and immutable live receipts. Do not infer completion from a merged PR or a green synthetic test.","acceptance_criteria":"Every blocking incident-ledger row is green or has explicit operator acceptance. The candidate receipt binds the source snapshot, semantic fingerprints, registry version, canonical snapshot, and exact candidate generation. Promotion, daemon restart, convergence, public query tour, and rollback-retention receipts are present and current.","notes":"Evidence required: candidate acceptance receipt; promotion receipt; post-promotion daemon health receipt; canonical query-tour receipt; retained-generation rollback receipt.\nCompiled packet mapping 2026-08-06: this is phase 6 postflight proof, not a start gate. It consumes candidate acceptance, promotion/restart, live-operation, public query-tour, convergence, health, and rollback-retention receipts. Historical direct implementation edges must not be used as a second control surface.\nCompiled packet mapping 2026-08-06: this is phase 6 postflight proof, not a start gate. It consumes candidate acceptance, promotion/restart, live-operation, public query-tour, convergence, health, and rollback-retention receipts. Historical direct implementation edges must not be used as a second control surface.","status":"open","priority":0,"issue_type":"epic","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:00:10Z","created_by":"Sinity","updated_at":"2026-08-06T13:53:42Z","dependencies":[{"issue_id":"polylogue-reindex-final-proof","depends_on_id":"polylogue-eqq02","type":"blocks","created_at":"2026-08-07T10:44:34Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-final-proof","depends_on_id":"polylogue-i3i5k","type":"blocks","created_at":"2026-08-06T18:53:04Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-final-proof","depends_on_id":"polylogue-live-operation-receipts","type":"blocks","created_at":"2026-08-06T07:02:24Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-final-proof","depends_on_id":"polylogue-reindex-promotion-restart","type":"blocks","created_at":"2026-08-06T13:53:47Z","created_by":"Sinity","metadata":"{}"},{"issue_id":"polylogue-reindex-final-proof","depends_on_id":"polylogue-reindex-proof-edge-correction","type":"blocks","created_at":"2026-08-06T21:51:36Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":5,"dependent_count":0,"comment_count":0} {"_type":"issue","id":"polylogue-stalled-cursor-live-proof","title":"acceptance: drain and disposition all stalled append cursors","description":"Residual live or proof scope of polylogue-2qrx. The implementation mechanism may remain closed, but the reindex cannot claim convergence until this evidence exists.","design":"Run through the real production seam against a frozen source or candidate generation. Bind the result to an immutable receipt and state explicitly what was not exercised.","acceptance_criteria":"Ordinary daemon catch-up leaves zero unexplained stalled cursors and every residue has a typed disposition bound to the source snapshot.","notes":"Parent implementation bead: polylogue-2qrx. This child exists because the audit found the implementation closure did not prove the live effect.","status":"open","priority":0,"issue_type":"task","owner":"ezo.dev@gmail.com","created_at":"2026-08-06T05:00:10Z","created_by":"Sinity","updated_at":"2026-08-06T05:00:10Z","dependencies":[{"issue_id":"polylogue-stalled-cursor-live-proof","depends_on_id":"polylogue-2qrx","type":"blocks","created_at":"2026-08-06T07:39:14Z","created_by":"Sinity","metadata":"{}"}],"dependency_count":1,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"polylogue-dlfcx","title":"fix: gate fast-forward promotions on candidate corpus fidelity","description":"Independent review after #3748 found devtools/index_v37_fast_forward.py promotes or recovers activating candidates without the corpus fidelity candidate gate. Absence/revision tests also pass if runners accidentally resolve the active index. Every production promotion path must gate candidate index plus durable source evidence before activation or recovery.","design":"Route fast-forward and activating-recovery through the same candidate acceptance helper used by managed rebuild, retaining durable source root plus explicit candidate index path. Strengthen absence/revision fixtures so active index passes and only candidate fails. Do not duplicate the rebuild gate or mutate production.","acceptance_criteria":"1. Fast-forward normal and restart-recovery promotion refuse an invalid candidate before activation. 2. Candidate-only absence and revision drift tests fail only with index_path_override; active verification remains clear. 3. Focused real-route tests and quick gate pass. 4. No live archive mutation.","status":"closed","priority":0,"issue_type":"bug","assignee":"Sinity","owner":"ezo.dev@gmail.com","created_at":"2026-08-04T07:44:31Z","created_by":"Sinity","updated_at":"2026-08-06T15:34:11Z","started_at":"2026-08-04T07:44:47Z","closed_at":"2026-08-06T15:34:11Z","close_reason":"Implementation scope satisfied by merged PR #3754 (088df9fabddd96c30149c1b7800eba6aaed9084f): normal and activating-recovery fast-forward paths use candidate corpus fidelity before promotion, with candidate-only regressions and quick verification. No live promotion receipt is implied; candidate acceptance and production promotion remain downstream gates.","dependency_count":0,"dependent_count":1,"comment_count":0} {"_type":"issue","id":"polylogue-dyica","title":"classify and resolve stopped-daemon raw parse failures before reindex","description":"Read-only live preflight on 2026-08-04 found 112 raw failures while the daemon is stopped: 111 parse failures and one maintenance failure. Known examples are interrupted Claude Code JSONL captures ending before a complete record and unknown-export raws whose parser produces no sessions. Neither exact failure signature had a matching existing Bead. These states currently count as failed archive evidence and make a converged-archive claim false.","design":"First census every failure by origin, raw artifact kind, source mutability, terminal-state semantics, and retry eligibility. Treat still-appending captures as deferred only with structural hot-file evidence; treat unsupported or empty payloads as typed terminal classifications; repair parser or validation defects through the real ingest route. Add a convergence check that fails when a stopped daemon leaves retryable parse failures without a typed planned/deferred/terminal explanation. Do not mutate production data in implementation lanes. Live reprocessing occurs only after deployment, fresh backup, and a reviewed dry-run.","acceptance_criteria":"1. Every current raw failure is classified by root cause and terminal/retry state with an immutable preflight report. 2. Parser or lifecycle defects have production-route regression tests that fail when the original failure is reintroduced. 3. Stopped-daemon status distinguishes retryable deferred work from terminal rejected evidence and surfaces unexplained failures as critical. 4. Post-deploy reprocessing has a backup-gated dry-run/apply receipt and reduces known defect failures without hiding legitimate truncated hot files.","status":"in_progress","priority":0,"issue_type":"bug","assignee":"Sinity","owner":"ezo.dev@gmail.com","created_at":"2026-08-04T06:16:10Z","created_by":"Sinity","updated_at":"2026-08-05T18:22:53Z","started_at":"2026-08-05T18:22:53Z","lease_expires_at":"2026-08-05T18:27:53Z","heartbeat_at":"2026-08-05T18:22:53Z","labels":["area:reindex","area:sources","delivery:reindex"],"dependency_count":0,"dependent_count":1,"comment_count":0}