Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion PROJECT_CONTINUITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Right Now

**▶ RELEASING v1.52.0 (2026-07-02).** All gates PASSED: full cuda suite green (solo rerun after 2 self-inflicted contention flakes — never run evals + suite concurrently); recall gate **PASS via definitive same-corpus binary A/B** (v1.51.0 cuda-built-from-source vs current: IDENTICAL R@K both fixtures; aggregate 46.8/68.8/84.4 vs 47.2/70.7/86.7 = corpus growth; logged in eval.md; README/Cargo/repo descriptions synced). Gate found + fixed a REAL bug: **#2133** freshness wedge (completed HNSW rebuild never drained without a next file event → `rebuild_in_flight` phantom; fix = idle-tick drain, fable-APPROVED, merged #2135; follow-up **#2134** filed: `--force` DB-replacement × orphaned worker Store handle, partially pre-existing). Release remaining: release branch PR → CI → merge → **cross-build dry-run BEFORE tagging (non-negotiable)** → tag v1.52.0 → `cargo publish -p cqs` (macros unchanged) → rebuild+redeploy daemon (stop BOTH serve :8080 + cqs-watch before cp).
**✅ v1.52.0 RELEASED (2026-07-02).** Full rail executed clean: gates (full cuda suite solo-green; recall gate **PASS via definitive same-corpus binary A/B** — v1.51.0 cuda-built-from-source vs current, IDENTICAL R@K both fixtures; agg 46.8/68.8/84.4 = corpus growth vs 47.2/70.7/86.7; eval.md logged, README/Cargo/repo synced) → release PR #2136 → **cross-build dry-run all-3-green BEFORE tag** → tag v1.52.0 → crates.io published (macros unchanged, single-crate) → daemon+serve redeployed on `e6924941` → **#2133 fix live-verified** (fresh daemon reached `state: fresh` from `rebuild_from_empty` with ZERO file events — the exact pre-fix wedge scenario). The gate itself found #2133 (freshness wedge: completed HNSW rebuild never drained without a next file event; fix = idle-tick drain, fable-APPROVED, #2135); review follow-up **#2134** filed (`--force` DB-replacement × orphaned worker Store handle, partially pre-existing, P2). Gate-protocol lessons: (1) never run evals + the full suite concurrently (2 self-inflicted contention flakes, solo rerun clean); (2) the GitHub-release CPU tarball is the WRONG A/B instrument — feature-asymmetric AND it wedged on the gate; build the old tag from source with matching features. **Next:** idle loop — 30 open issues (15 fresh archeo: #2116–#2130 + #2134); candidates: #2134 (P2, watch), #2119/#2122 (overlay honesty/coverage), #2121 (plan --tokens text). GitHub release binaries were still building at update time (tag run in background — verify per-job before citing it).

Today's landed arc (2026-07-02, idle loop): **#2107→PR #2114** (daemon impact-diff overlay, fable-APPROVED, `is_impact_diff` gate deleted) + daemon redeployed (`39a5d209`). **Docs drift→PR #2115** (9 verified fixes incl. two SECURITY.md docs-lies: false PDF page-cap claim, stale CQS_PDF_SCRIPT threat model). **Archeo sweep** (6 finder→fable-judge areas, 56 hits): 19 keep / 8 already-tracked / **15 issues filed #2116–#2130** (notable: reranker preamble-parity #2127 — cross-encoder scores content-alone vs embeddings' signature+doc+content, live since the reranker shipped; three plan-doc "filed/tracked" claims were lies, now true) / **12-edit scrub→PR #2131** (incl. `extract_return_objc` — the "doesn't lend itself" premise was false). **#2110→PR #2132** (in CI): semantics (b) — `--no-overlay` = full parent-truth diff subject on both paths; `cli_diff_overlay_root` (force-off before probe) + `cli_parent_diff_root` (out-of-tree re-root via `lookup_main_cqs_dir`, implemented not deferred); `affected` gains OverlayArgs (deliberately NO tristate arm — never forwarded); fable **APPROVE**, nits applied (surface-neutral help text + debug tracing). After #2132 merges: sweep worktree `agent-a5e56e7221d3ef76e` + `~/.cargo-target/fix-2110`, verify #2110 closed, then release. #2108 stays separate (frame math untouched). Earlier: #2112 windows-check hard-error gate.

Expand Down
4 changes: 4 additions & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Roadmap

## Released: v1.52.0 (2026-07-02, crates.io + GitHub Release)

**The worktree-overlay diff-subject truth campaign** — three fixes closing the wrong-tree family (#2109 worktree-lane review/ci/impact-diff diffed the served parent; #2114 daemon impact-diff overlay plumbing + the #2102 CLI-gate removed; #2132 `--no-overlay` = full parent-truth on both paths, `affected` gains the flags) — plus **serve/cache teardown-abort fixes** (#2103/#2106 `should_wal_checkpoint_on_drop` + drop-order keepalive), the **pdf-script embed** removing the search-chain TOCTOU (#2105), the **windows-latest hard-error PR gate** (#2112, closing the "release skips a binary" class at PR time), the **freshness-wedge fix found by this release's own gate** (#2135: completed HNSW rebuilds now drain on the idle tick — live-verified unwedge after deploy; follow-up #2134 filed), ObjC return-type extraction, docs truth fixes (#2115, two SECURITY.md lies), and the archeo sweep (#2131 + 15 tracking issues #2116–#2130). **Recall gate PASSED via definitive same-corpus binary A/B** (v1.51.0 cuda build vs current: IDENTICAL R@K both fixtures) — agg **46.8/68.8/84.4** (shift vs 47.2/70.7/86.7 is corpus growth, 17.5k→17.6k chunks, 0 dead golds). Cross-build dry-run validated all 3 platforms before tagging.

## Released: v1.51.0 (2026-06-29, crates.io + GitHub Release)

**SPLADE-viz Stage 2b** (the eval-gold "where hybrid wins" tour + R@K-delta panel, #2087, live-verified) + **four security fixes from a post-v1.50.1 red-team pass** (#2086 A/B/C: the leading-directive `ignore all previous` gap, the comment-marker strip-set, the unscanned full-file `read` relay; #2088 D: the `/api/search_legs` flag-injection — 4 confirmed / 0 false-positive, the heuristic widening empirically proven inert at 0 newly-flagged on the 17.5k corpus). A per-category α sweep confirmed the SPLADE conceptual-tax the viz surfaces does **not** survive the full production pipeline, so no retune (#2085 closed). Scoring **byte-identical** to v1.50.1 (empty scoring diff) → recall carries **47.2/70.7/86.7**; the cross-build dry-run validated all 3 platforms before tagging.
Expand Down
17 changes: 17 additions & 0 deletions docs/notes.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1860,3 +1860,20 @@ mentions = [
"JSON_ARGS_CAPABLE_COMMANDS",
"mcp/mod.rs",
]

[[note]]
sentiment = -1.0
text = "The freshness API can wedge on any code path where a completed background rebuild has no follow-up drain trigger: drain_pending_rebuild must be reachable from the IDLE tick, not just flush ticks. The v1.52.0 gate found rebuild_in_flight stuck true for 70min after a threshold rebuild completed cleanly on a quiet repo (WSL inotify made it worse). Fixed by drain_completed_rebuild_idle; the same orphaned-handle class has a residual on --force DB replacement."
mentions = [
"src/cli/watch/mod.rs",
"src/cli/watch/rebuild.rs",
"freshness",
]

[[note]]
sentiment = 0.5
text = "Release recall-gate A/B protocol: build the OLD tag from source with the SAME features (cuda-index) into a private target dir. The GitHub-release CPU tarball is the wrong instrument twice over: feature-asymmetric (CPU ORT vs CUDA, different index path) and it hits the freshness gate cold. Same-index + same-features + CQS_NO_DAEMON + CQS_CAGRA_THRESHOLD pin makes the comparison byte-clean."
mentions = [
"evals",
"release",
]
Loading