Repository navigation
Conversation
|
👋 Thanks for the contribution! Quick heads-up: this repo lands changes on the current Please retarget this PR via Edit → base branch to the active (Automated hint — reply here if you need a hand.) |
|
Two observations on the watcher commit ( 1. The periodic audit still walks the whole tree every 2 s. 2. Excluded paths count toward the 2,048 pending cap, and cap overflow forces a whole-tree re-read. |
Carry the current release watcher skip and expanded MCP client registrations into the draft PR while retaining its verified-install and integrations opt-out behavior. This avoids regressing clients when the PR is eventually retargeted. Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
Healthy FSEvents streams were doing a full directory walk every two seconds, which erased the CPU benefit of recursive notifications. Verify a rotating slice of known file content each tick and audit all directories every 60 seconds, while retaining the faster fallback audit and immediate recovery after dropped events. Filter excluded file events before the pending cap but preserve directory, symlink, unknown-type, and ignore-policy events. Validate moved-in directories and policy changes on the actual dispatch path so indexing breadth and sensitive-file boundaries remain intact. Co-Authored-By: Codegraff <blackfloofie@codegraff.com>
Current integration status (September 26, 2026)
The watcher repair has been isolated into draft PR #758; its local checks and exact-head CI pass, but the PR-ready publication preflight still rejects the large touched watcher source file (
justrach/codegraff#1304). The installer hardening is isolated in draft PR #759 with normal-install registration and installed-hook coverage; its branch checks are tracked there. Both changes remain in this combined PR's diff until the release base advances, so this PR is not a shortcut around either review gate.A fresh
semantic-indexprobe against a disposable HOME and synthetic 53-byte source file, with telemetry disabled, received HTTP 530 on both compact and legacy signed embedding attempts. The old client reported that non-standard 5xx asEmbeddingProviderRejected; draft PR #761 corrects the classification toEmbeddingProviderUnavailable, but the hosted request still fails. Live hosted fallback, the flagged ranking/latency trade-off, signing/notarization, and release publication remain unverified. Keep this combined PR draft.What changed
FileNotFound. The PR also keeps bounded transport retry and generation-publication safety checks.release/0.2.5856rather than reverting them.Why
Missing-sidecar errors prevented the intended no-setup semantic fallback. The initial watcher follow-up then erased its own CPU benefit by walking every directory on a two-second timer, and excluded-file bursts could trigger a false overflow rescan. A larger speed shortcut—removing the audit or shrinking retrieval candidates—would risk missed filesystem changes or retrieval breadth. The bounded probe plus slower audit retains recovery while keeping quiet-tree work low. Exact-metadata collisions can take longer to detect in large trees; the fallback watcher keeps its two-second audit.
Verification — exact head
ade2b8c6c4622c00bb8b413c6bd30a78f1045e82zig build test --summary all— 33/33 steps succeeded; 1,476/1,489 tests passed, 13 skipped.zig build test -Dtest-filter=issue-756 --summary all— 3/3 passed.zig build -Doptimize=ReleaseFastpassed; the copied candidate binary has SHA-256f912b2698ecdcdfd2e64fbd80341d4de5e15ce939968d0b1192662350916d55f.python3 scripts/e2e_mcp_test.py --binary .graff/verify/codedb-pr750-issue756 --project "$PWD"— 76/76 passed. The lazy MCP suite passed all six scenarios; deterministic semantic fault/recovery/security checks passed 27/27. Python 3.12 installer safety tests, update-worker tests, watcher stress in recursive and forced-fallback modes, formatting, and whitespace checks passed.python3 scripts/repro_watcher_748.py --binary <candidate> --seconds 12on a disposable 1,200-directory/4,800-file corpus — 1.00% of one core quiet and 0.92% under excluded-file churn; the publishedv0.2.5856binary measured 8.16% and 30.54%. Each arm's index stayed stable, but their final file counts differed by one; this short sample is diagnostic, not parity-qualified benchmark evidence. A 125-second candidate sample covering two scheduled audits measured 1.42% on a larger synthetic tree.python3 scripts/test_semantic_lifecycle.py --binary .graff/verify/codedb-pr750-issue756 ...stopped on its first hosted request withEmbeddingProviderRejected(later traced to an HTTP 530 response); an explicit syntheticsemantic-indexbuild failed too. The published binary stops earlier withFileNotFound, so this run neither establishes a candidate regression nor verifies live hosted behavior. The previous branch's 11 live lifecycle passes are historical, not validation of this head.bench-regressionrun36223857312completed successfully for exact headade2b8c6c4622c00bb8b413c6bd30a78f1045e82:macos-resource-regressionandbenchpassed. Separateguardchecks were skipped.Keep this PR draft. Exact-head CI passed, but do not merge or publish a new version until live hosted fallback and the flagged ranking/latency trade-off are resolved. The published
v0.2.5856tag remains unchanged; its release branch has newer installer commits that are included in this PR's base.