Repository navigation
Conversation
Replace whole-store clones with a precise per-file mutation journal, add bounded foreground slices with plain-file offsets, incremental worker checkpoints, generation fencing, and a committed presentation cache.
…omotion - Record indexer failure status inside the store lock, re-reading the committed generation; never write when the lock was never held. - Spawn the promoted indexer only after the launcher releases the lock; the worker waits a bounded handoff instead of exiting on EEXIST. - Make worker claims exclusive-create and token-verified on release instead of last-write-wins/check-then-unlink. - Fail closed on an unreadable generation fence during worker commits. - Regression tests: queued generation survives a failing worker; one worker survives promotion with a held lock, no respawn, non-blocking status.
…in files only at EOF
Add deterministic process integration coverage for four-launcher coalescing, SIGKILL checkpoint/restart exactness, generation fencing, and presenter responsiveness under the writer lock. Add a separate opt-in long-worker run that proves >30s synthetic throttled completion with one decoder pass. Clean up lifecycle temp roots and child processes.
Node 22 pipeline can wrap the destination ScanStopError as AbortError, which was misclassified as archive corruption and permanently fingerprinted a valid zstd file. Capture the exact stop at the destination and keep genuine stream failures distinct. Also validate zstd frame structure because Node 22 can silently accept truncated trailing frames, making existing corruption rollback tests runtime-dependent.
Replace the 2ms mtime tolerance with an exact dev/ino/size/mtimeNs fingerprint captured after the atomic store rename while writer authority is held. Validate the current store before and after reading the cache, so a crash before the cache update cannot serve old rows for a newer commit. Legacy un-fingerprinted caches fall back to the store.
Run the Herdr Insights suite on Node 22.15.0, latest Node 22, and Node 24 so the zstd budget compatibility bug cannot recur.
Node 22 stops a zstd decoder after the first frame of a concatenated stream. Split frames structurally and run a fresh decoder per data frame, skipping skippable frames, while feeding one shared line consumer. Truncated frames still roll back and fingerprint; budget stops stay retriable.
GaganSD
marked this pull request as ready for review
November 2, 2026 15:24
[Medium impact] The changes affect the local Insights scan and dashboard workflow. Fix the generation mismatch, foreign-host signal target, and plain-file stall before merging. Findings
SummaryReplaces whole-history rollback copies with per-file transactions and adds resumable scans, a detached worker, committed presentation caches, and live progress.
|
Unchanged settings no longer leave a live fence ahead of the committed generation. Signal only a same-host worker, publish claim pids without an empty file, read plain lines through to a boundary, and honor budget and cancel stops on empty and skippable zstd frames.
GaganSD
marked this pull request as draft
November 2, 2026 16:13
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.
Summary
Validation
Compatibility