Repository navigation
fix(code-index): fence stale progress boundaries - #4800
ScriptedAlchemy wants to merge 81 commits into
Conversation
|
Refs #4508 Reject foreign daemon, producer and sealed-source identity reports, even after a verified SQLite staging restart clears committed counters. Add a nonzero regression for the production progress authority.
|
Taking the #4508 producer implementation on this existing branch, starting from exact head 29c1258. File ownership for this pass: pre-seal capture/parse observation and its separately typed attempt authority, native graph writer progress, and the corresponding freshness/status consumers and regressions. Maintenance/sweep owners: please do not duplicate or rewrite this work; preserve all commits and use expected-head nonforce fast forwards. #4616 owns sealed-store reader/receipt/retention changes; I will keep graph writer changes separate and reconcile any overlap against the exact current heads. Existing boundary tests are not completion evidence. Refs #4508; no closure/merge claim, and #4776/Kev stays draft and #4763 stays read-only. |
|
Published commit Source changes
Verification performedThe original source was reconstructed byte-exactly and matched GitHub blob Still required: run Backend capture/parse and direct-seal/fallback graph producers remain owned by the active implementation pass above; this commit does not touch those files or claim to complete them. Refs #4508 only. Keep the issue/PR open pending full acceptance; #4776/Kev and #4763 remain untouched. |
Keep active polling for in-flight rebuilds and lexical artifact restores, even when the serving envelope or previous generation is already ready. Do not render an in-flight build without a report as an idle pipeline. Add polling regressions and DOM transition coverage for unreported work, committed progress, completion, and bounded artifact restoration. Refs #4508
Carry daemon/producer epochs, generation, last-progress time, committed text counters and blocked reason into MCP search and graph-read summaries. Distinguish absent progress from reported zero work without inventing pre-seal authority. Add nonzero rendering regressions for repeated reads, blocked recovery and restart/remount epoch scope. Refs #4508. Producer instrumentation and cold/restart end-to-end acceptance remain incomplete; no Bazel execution is claimed.
|
Published 0fc10fe as a non-force fast-forward with expected head 9f3bfe0, preserving the concurrent dashboard commit and all earlier commits. This is a narrow production MCP propagation fix, NOT completion of #4508. Search and graph-read summaries previously dropped the daemon's progress authority, epoch, last-work timestamp, committed counters and blocked reason. They now carry generation + daemon/producer incarnation, progress epoch, the original last_progress_micros, committed TEXT artifact counts/bytes and the typed blocked reason. Text counters are explicitly labelled as text, not native graph writes. An in-flight rebuild without a producer report renders progress=unreported rather than inventing a pre-seal generation/count/clock. Four new tests exercise the actual search_freshness/freshness_lines renderers with nonzero counters: cold_unreported_work_has_no_fabricated_progress_authority; repeated_reads_do_not_turn_elapsed_time_into_progress; blocked_and_recovered_reports_preserve_work_and_name_the_real_phase; restart_and_remount_keep_epoch_scope_visible. Existing coverage and restore/park tests are retained. These are renderer regressions, not cold-build/restart end-to-end proofs. Validation: diff inspected against exact parent; no Rust build/test/check/codegen has been run locally. This session has no Bazel/Bazelisk executable or checkout-capable network path (git fails proxy DNS), and the public download path also failed. No Cargo, alternate Rust toolchain invocation, generated-contract hand edits, infrastructure changes, or test bypasses were used. Exact-head native CI run 42439812291 is queued; no pass is claimed. Independent PR-maintenance review requested for 0fc10fe, especially text-vs-graph attribution, owner-scoped epochs, absence of read-time clock fabrication, and the renderer assertions. Keep this PR unmerged: separately typed pre-seal capture/parse production instrumentation, direct native graph durable-write instrumentation, and cold/interrupted/restarted end-to-end acceptance are still unfinished. The earlier unreferenced producer-draft commit 95aac68 is incomplete and must not be adopted; no producer draft was pushed onto this branch. Refs #4508. #4776/Kev remains draft; #4763 untouched. |
Refs #4508. Keep pre-seal work under separately typed attempt authority, not a fictional sealed generation. Capture on clean-HEAD and dirty paths; instrument actual staged parser-backed file work; reject stale, duplicate and delayed callbacks. Durable native-graph work, codegen/wire and restart e2e remain open.
|
Published
Not claimed: no local Rust/Bazel execution (this environment lacks Bazel/Bazelisk and checkout-capable network); exact-head CI run 42447419869 was queued at last check. The attempt slot is not yet surfaced through the freshness wire, CLI/MCP or dashboard. Native durable graph writer/page progress and end-to-end restart/resume, stalled and blocked/recovered transitions are still required, as are hosted Bazel tests and independent review. Do not treat these three tests as #4508 completion. #4776 remains draft; #4763 was untouched. |
Refs #4508. Distinguish real WAL-settled page transactions from adopted receipts; direct seal is one compact artifact, not invented durable pages. Add nonzero persistent write/replay/close-reopen regression. Status wiring and restart E2E remain open.
|
Follow-up producer commit This targets the actual native graph writers, not
This is real producer instrumentation, not yet the progress-status pipeline. Neither the native events nor the new separately typed pre-seal attempt slot are wired to freshness/CLI/MCP/dashboard yet. No local Bazel/Rust test has been executed; wait for an actual exact-head hosted run, not queued/skipped jobs. Full cold + restart/resume, stalled, blocked/recovered end-to-end evidence remains required. Refs #4508, not Fixes; keep PR and issue open, and do not touch #4776 or release #4763. |
Refs #4508. A concurrent verified segment may be adopted after a losing staging install; only the writer that actually installed a new directory emits the native durable-segment event. Add real sealed-container collision, cleanup, and verified-reopen regression. Status wiring and interrupted-restart acceptance remain open.
|
Published follow-up b329b67 on this same PR with a checked non-force fast-forward from exact parent Native writer correctness: the compact sealed-store path previously emitted Scope coordination: this touches only the native compact writer-install/reporting block of Not acceptance: no local Bazel/Bazelisk or checkout-capable path; no Rust compile/format/test result claimed. Exact-head CI 42450800548 was queued when last sampled. Pre-seal typed attempt and native durable events still require daemon → CLI/MCP/dashboard status wiring and real cold/interrupted-restart/stall/blocked/recovered end-to-end tests. Keep #4508 and this PR open. #4776/Kev remains draft; #4763 untouched. |
Newly confirmed CI blocker — exact #4800 head
|
Refs #4508 Carry the real capture and parse attempt across the mounted scheduler, canonical status wire, CLI wait display and MCP search. Preserve attempt owner, epoch and work timestamp independently of sealed generation data. Add nonzero wire and renderer regressions. No generated-contract edits.
|
Published I also checked master, current root AGENTS.md (repository tree contains no nested AGENTS.md), paginated issue comments, PR discussion, reviews (none), the exact earlier CI jobs, and competing #4508 PRs. The preexisting immutable 88-character Independent review requested on the public wire change, whether pre-seal attempt expiration correctly fences old owners, correct graph-vs-text attribution, and all fully mounted paths. #4616/#4804 reader-retention ownership is untouched; #4776/Kev remains draft and #4763 release remains read-only. Do not merge or close on this partial evidence. |
|
Continuing #4508 on exact head 2dc0150. Taking the CLI first-generation wait implementation and its behavioral tests: the live wait currently resets its stall timer merely because rebuild_in_flight/Restoring/Verifying stays true, even when all producer counters are frozen. I am replacing that activity-as-progress inference with observed work tracking, retaining typed refusals and leaving daemon work running when the client stops waiting. Maintenance/sweep owners: preserve these edits and all existing commits; no duplicate/rewrite/force update. Native graph callback/status integration and Bazel-generated dashboard contracts remain separate unfinished acceptance, not made complete by this slice. #4804 owns sealed receipt/retention hunks, #4796 owns graph source reader work; neither is changed by this CLI slice. Refs #4508 only; #4776 remains held draft and #4763 read-only. |
|
Refs #4508 — published additive production/test fix Verified defect / source-owned correction: The latest inline review correctly identified that an inactive preseal snapshot survived after its reconcile completed, so a later source wake could set Falsifiable source regressions: (1) real capture→parse→resolution observations remain visible after Independently read PR+branch at Please independently review the real guard lifetime and late-drop identity test, plus exact-head hosted Bazel Rust/JS jobs. Tests were not executed locally; new-head CI and Plugin Validation are queued, not acceptance. Physical cold/SIGKILL/native WAL page interruption+restart daemon→CLI/MCP/dashboard, stalled/blocked/recovered E2E, exact-head nonzero Bazel/DOM, native macOS where available, independent approval, and master acceptance remain required. Keep issue #4508 and PR #4800 OPEN/UNMERGED; |
|
Refs #4508 — exact-head hosted CI failure repaired on sole open PR #4800. On prior Published New exact-head CI and Plugin Validation are queued: no new-head nonzero Bazel Rust, DOM, Clippy or generated-contract acceptance is claimed. The new head still diverges from original personally published |
|
Refs #4508 — new exact-head Bazel dashboard failure repaired on sole open PR #4800. On prior Published New exact-head CI and Plugin Validation are pending; no new-head nonzero Bazel Rust or DOM pass is yet claimed. Please independently review the fake-timer/wait behavior and the lifecycle/physical acceptance; no person assigned or messaged. HOLD MERGE: original personally published |
|
Refs #4508 — new additive producer-aware CLI fix published as Concrete production defect: Source fix: keep the committed-text marker for its own durable receipts but also inspect the separately identity-fenced live preseal marker in the same status read. The progress window advances only when either producer's actual completed units advance; duplicate epochs, phase-only updates, frozen counters and old-daemon replay cannot renew it. The global cross-writer fence now rejects older daemon incarnations, while each producer kind still enforces its own owner/epoch/counter fence. No synthetic generation, timestamp, digest, heartbeat, phase projection or durable page. Falsifiable native regressions: (1) text counters frozen → actual capture→parse work → text receipts resume, including concurrent different producer incarnations; wait must reach readiness, not falsely stall; (2) duplicate reports from both concurrent producers still cause an actual timeout before a later Ready response. This changes only On superseded |
|
Refs #4508 — published additive production and regression fix 8635be2 on the existing #4800 branch, verified expected-head Reviewed failure mode: Production change: while a native graph marker is the primary work authority, also record the separately identity-fenced active pre-seal marker. Each marker is independently validated for real counter advancement. Neither stale epochs nor status polling supply work. Two falsifiable Rust cases: a real serialized status wait loop with a silent native writer and advancing capture→parse must continue to a Ready receipt (the old implementation refuses); repeated native and pre-seal observations with no new work must still refuse before a later Ready receipt. All existing tests/assertions retained. Request independent review of graph/pre-seal concurrency and restart/identity fencing. No local Bazel execution is possible here; new-head native Rust/Clippy CI is not claimed passing. The preceding head's ordinary Linux jobs remained queued; no historical lineage reconciliation, approval, merge, or issue closure is claimed. Original |
|
Refs #4508 — published additive real source/test repair Verified exact-head hosted failures on predecessor Real Linux Rust regression: Linux fleet, archived Bazel artifact Other Linux failures in the same exact-head artifact: Request independent review of the production single-/dual-marker dispatch and real in-guard physical observation/restart assertions, plus exact-head hosted Bazel Rust and JS. New CI and Plugin Validation are queued/pending: no current-head passing claims. Still need actual SIGKILL before seal, native durable-page interruption+resume, no-work/blocked→recovered end-to-end via daemon→CLI/MCP→generated dashboard/DOM, independent APPROVED review, authorized history disposition and MASTER acceptance. Keep #4508 and #4800 OPEN UNMERGED, |
|
Refs #4508 — new additive production/test correction published as Verified source issue: Correction: where the old sealed generation is retained and a real preseal guard is active, treat its blocked post-source-scan text reading (including Falsifiable native CLI regressions: a real status wait sequence with retained blocked text and actual successor capture→parse advances must reach Ready; duplicate blocked text + frozen capture must still produce a no-work refusal before any later Ready. Both would fail appropriately without the fix; no timeouts, existing assertions, generated contracts or CI policy weakened. GitHub independently verified pre-update PR+Git ref |
Exercise real task abort and panic unwinding of the preseal guard, including inactive publication handoff, late callbacks and same-producer retry isolation. Keep imports explicit and retain all existing tests. Refs #4508
Do not let a prior completed native row stream or verified segment hide a separate live preseal attempt. Preserve unknown final-container timing without treating elapsed status reads as production work. Refs #4508
|
Refs #4508 — published production correctness fix Actual production defect: Three falsifiable Rust regressions: (1) complete entity+relation windows and verified graph segment do not conceal the active successor's exact capture owner/count/epoch, but retiring the attempt restores the unknown final native write; (2) serialized Verification still required: These new tests have not been executed locally; exact-head hosted CI and Plugin Validation are queued. Please independently review the graph-final/preseal authority distinction and require nonzero Bazel Rust/JS/rustfmt/Clippy execution, physical cold/SIGKILL and native durable-stage-page restart/recovery, blocked↔recovered/stalled daemon→CLI/MCP→generated-dashboard DOM journeys, and approval before acceptance. All 11 published inline review threads are currently resolved; no independent approving review. Keep #4508 and #4800 OPEN, UNMERGED, Refs only. No reviewer assigned. |
Record genuine retained lexical page receipts alongside native graph encoding and successor preseal work. Frozen clocks and epoch-only updates remain stall-observable; leave final compact verification uninstrumented. Refs #4508
|
Refs #4508 — published the production wait-progress correction Concrete producer-observation bug: Three falsifiable native CLI regressions: (1) frozen partial native encoding + advancing independent text receipts reaches Ready; (2) completed native row windows + quiet active successor preseal + advancing text receipts reaches Ready without timing the final write; (3) all three writers publishing only new epochs/timestamps but no counts refuse before a scripted later Ready. Existing budget, tests, real durable attribution, and assertions are unchanged. Verification: exact new-head Bazel workflow and Plugin Validation are queued; no new-head nonzero Rust/JS/rustfmt/Clippy or macOS pass is claimed, and no local Bazel/pnpm checkout was available. No artifacts yet. Please independently review the simultaneous text/native/preseal authority selection, all three regressions, and current-head CI. Physical cold/SIGKILL/native WAL-page interruption and restart/resume through daemon → CLI/MCP → Bazel-generated dashboard/React DOM, blocked/recovered/no-work E2E, human approval, historical disposition, and MASTER acceptance remain outstanding. Keep #4508 and #4800 OPEN, UNMERGED, |
|
Refs #4508 — published Concrete CLI correctness: Three falsifiable regressions: (1) serialized Verified independent PR+Git branch Please independently review the terminal parked-vs-live-successor precedence, actual typed status deserialization/refusal, and the new tests. No person assigned or messaged. The change has not been Bazel-compiled/tested locally (no checkout/Bazel). Exact-head CI is queued, not a pass. Full live 6,136-file cold/SIGKILL, durable WAL stage interruption+recovery, stalled and blocked→recovered daemon→CLI/MCP→generated dashboard DOM, nonzero exact-head Rust/JS/Clippy/codegen, independent approval, owner-authorized history disposition and master acceptance remain required. Keep #4508 and #4800 OPEN UNMERGED, |
|
Refs #4508 — published a new production correctness and regression fix as Real defect: during final native graph publication, Source fix: at completed native encoding and CompactSegmentVerified, select an authentic active preseal observer if present, otherwise the independently owned lexical BulkCommit receipt marker. If neither writer has an eligible observed marker, the final Grafeo write remains unknown, not a synthetic stall. The existing owner/epoch/counter fences still reject metadata-only clock changes. No fake graph page, timestamp, digest, generation, heartbeat or durable claim. Falsifiable regressions: (1) across both fully encoded native rows and digest-verified native segment phases, real serialized status-loop responses with actual advancing lexical committed pages/bytes must reach Ready, and removing the text writer restores the deliberately unknown final write; (2) when only native/text epochs and text timestamps change without completed counters, the loop must refuse before a later scripted Ready. Both fail against the prior early-return branch. Existing assertions, timeouts, generated contracts, CI and other ownership lanes are unchanged. Before EACH Git object mutation and the branch CAS, independent PR and raw branch refs matched exact old head Please independently review this physical-observation priority and both new CLI test cases. Exact-head hosted CI is queued at publication, with no current-head nonzero Bazel Rust/JS validation or native macOS proof. Full live cold/SIGKILL, durable fallback stage-page resume, stalled and blocked/recovered daemon→CLI/MCP→generated-dashboard DOM acceptance, independent APPROVED review, history disposition and master acceptance remain missing. Keep PR #4800 and issue #4508 OPEN/UNMERGED, Refs only; no reviewer assignments. |
Keep independent lexical watermarks without treating a retained BulkCommit snapshot as silence evidence for the uninstrumented final graph write. Preserve active preseal stall detection and require frozen text to refuse once the native writer retires. Repair the reported Rust formatting. Refs #4508
Apply exact formatting required by the current-head repository gate without changing the CLI wait semantics or weakening the regressions. Refs #4508
|
Refs #4508 — published 7218ed2638b0 on the existing branch to repair the exact-head Bazel I read the failing job log and applied its four exact formatting hunks in Please independently review the final-native/lexical silence handling and the new regression coverage alongside this formatter correction. New-head hosted CI has not yet supplied nonzero Bazel Rust/JS/Clippy/rustfmt evidence. The physical cold/SIGKILL/restart/durable-page journey and historical lineage disposition remain outstanding. This is not a merge or a claim of full #4508 acceptance; keep the PR and issue open. |
Indexing progress
Refs #4508. The daemon records observed capture, parsing, resolution and native graph writes for a particular generation and writer attempt. Durable text pages and verified compact graph segments have separate counters from rows accepted by a builder. Progress is fenced by writer and generation identity across retries, restarts, and discarded publications. The CLI, MCP and dashboard use that distinction for stall diagnostics, freshness and progress display.
Both manifest and streamed native writers now report accepted entity and relation windows. Replaying an already-installed segment does not count it twice. The dashboard retains the completed generation’s committed work, and a rebuilding search with no work evidence reports
progress=unreported.Verification
On
394be3dd46, the macOS Bazel CLI suite passed all 421 tests, including 27 daemon precondition cases. The previously failing real daemon cold-start and restart test passed, and the graph/store tests observed both kinds of rows before the single verified segment and no events on replay. On the preceding changes, seven MCP graph-dispatch tests, three lexical-anchor tests, 49 dashboard DOM tests and 94 extension tests passed. A prior Linux run exceeded the lexical-anchor fixture’s 20-second publication budget under load. The complete macOS MCP suite at394be3dd46also passed all 673 tests in 789 seconds, including that lexical-anchor case. Hosted verification is pending.Review status
This replaces closed #4795. Keep #4508 open pending independent review, the hosted Linux run on the current head, and acceptance on master for cold indexing, interrupted work, restart and completed progress. The separate draft hold on #4776 remains in effect.
At
416adbdb22, the pinned graph-db rustfmt gate and the native staged compact-copy test passed. The regression observes actual row windows on interruption and verifies the completed segment before publication. The preceding repository-gate failure reported formatting in two assertions added after the prior broad test run.At
6b4ff93636, repository rustfmt and 45 distinct macOS Bazel cases passed. The tests included all 35 CLI index cases, eight sparse/full construction cases and two daemon publication cases. The registered attempt stopped at durable handoff while retaining the last recorded work and rejecting late callbacks. The CLI regression kept stall detection active for unfinished construction and let healthy durable publication proceed past the simulated stall window. All 49 DOM tests across IndexFreshness, CodeIndexNativeProgress and CodeIndexPipeline also passed. Hosted Linux, the earlier history-reconciliation hold and master acceptance for #4508 remain open.At
0dda36d127, the repository rustfmt gate, strict Clippy on the shipped CLI and CLI unit target, all 38 CLI indexing tests, and all three native graph progress tests passed on macOS. The latter exercised accepted encoding work, durable page and segment receipts, read-only activation, and fencing of stale callbacks after restart.Historical branch reconciliation
The original published head and its counterpart in the current branch both point to the complete repository tree
068ad9b3b09a533f498161bc6783c5882a79265b. Starting after common ancestor091bf9d86c, every one of the 23 commits in the original sequence has the same full tree and stable patch ID as the corresponding commit in the current sequence. The only difference reported within those paired commits bygit range-diffis the shortened header of the first commit,de2d6134ef→b2c4997fb4. The 22 changed file blobs at the previously reported0651f1dbedhead came from two subsequent commits, a 21-file formatting change (36b58e3f9f) and a one-line borrowed-resolution-segment correction (0651f1dbed).The original commit identities remain on a divergent branch of history. All original product changes survived at the matched head, and
git cherry d424073ee2 609aff4401found zero original-only patches. The current headd424073ee2descends from the identical tree through 19 additional commits.The owner’s explicit merge hold remains in effect. Keep this PR and #4508 open pending owner disposition of the historical divergence, current-head review and CI, and live master acceptance for daemon cold indexing, interruption, stall detection, restart recovery and completed progress.
At
abe2b55785, independent review of the shared polling classifier and its two dashboard callers confirmed that an active preseal/native successor continues polling past a retained terminal refusal, an idle terminal park falls back, and an empty loading scope polls for its first mount. All 54 DOM tests across IndexFreshness, CodeIndexPipeline and CodeIndexNativeProgress passed, as did the dashboard TypeScript check. The owner reiterated the merge hold on this head.