Repository navigation
fix: Coalesce engine maintenance behind owned workers - #808
Draft
buildingjoshbetter wants to merge 4 commits into
Draft
buildingjoshbetter wants to merge 4 commits into
buildingjoshbetter wants to merge 4 commits into
Conversation
This was referenced Oct 8, 2026
This was referenced Oct 8, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Engine scheduling checkpoint for #753, stacked on #807 with #806 included by a normal prerequisite merge. This activates the existing eight-layer planner; it preserves each builder algorithm and the threshold of 25 committed appends.
Changes
Validation
568f990ae81981f96843b0be056d173fe8dbac7873d23b3db973f6f50c2ae6d3.c9395a6a479d429db534cb9c99bc23b046a3d4a6057a5a22c7ce8db091dc294d.Fixture isolation follow-up
A later integration run exposed one failure in the 24/25 threshold test. The raw log did not record bootstrap state, so its specific interloping worker is unknown. A controlled in-memory reproduction executes the actual engine, coordinator worker and dependency resolver: an unrelated worker can discover the fixture's process-wide replacement of the vector module and hold its fake model lock. This defers initial clustering, leaving no attempt baseline. Scheduling that unfinished initial work at 24 inserts is correct production behavior.
The follow-up changes tests only. The adapter fixture now supplies its own maintenance module registry instead of publishing its fake vector module process-wide. Both threshold scenarios explicitly require all eight successful empty bootstrap baselines before counting appends. The original no-request-at-24 and request-at-25 assertions remain intact. A separate control intentionally defers bootstrap and verifies that recovery still runs only the missing cluster attempt at 24.
The old fixture fails two intended assertions with zero setup errors; the corrected three new regressions pass. All original issue 498 method bodies also passed in the in-memory harness. Production bytes are unchanged. Exact publication head
4431787bfe18ece1f3609ef4d827917976b8095bpassed 2,629 tests, 22 skips, 3 deselections and 1,249 subtests, with actual sqlite-vec. Log SHA256:10ecb7513ff4be7e8ad8268b181982ec8d68edd0107c1319c90af62d9c689603. Range privacy, Python 3.10 grammar, Ruff and whitespace checks passed. The preceding production head passed all 34 hosted checks; the new test-only head awaits its own hosted matrix. No production-fix or native-performance claim is made for this follow-up.Limits
Cross-process busy work needs a later API boundary; there is no idle polling or automatic external-process release signal. Deferred/failed attempts do not create self-retry loops. Daemon workers may be interrupted by process exit and still require durable abandoned-attempt recovery.
Automatic in-memory maintenance stays pending; manual maintenance uses the original handle. Borrowed publication is pending until the caller commits. Ingestion database replacement and getter freshness are separate checkpoints. Unverified vector/contact coverage remains visible. Existing entity-less preference extraction behavior is unchanged and remains #746.
This does not establish native latency, throughput, whole-process memory, MPS or thermal improvement. The separate numerical/performance release gates remain held. Models, rerankers, precision, dimensions and retrieval caps are unchanged. Only generated synthetic data was used; no personal memories, transcripts or credentials. No issue closure, main merge or release.