Skip to content

v2.0.2 — Pre-release cleanup: sync lock, stale-ratio ceiling, backlog sweep

Latest

Choose a tag to compare

@costiash costiash released this 04 Aug 12:18
· 141 commits to main since this release
494024b

Pre-release cleanup milestone: the three gate issues (#28, #29, #30) closed via PRs #32 and #34, both bot-reviewed to convergence (Claude "approve", Copilot "no new comments") and adversarially verified by execution.

Highlights

  • Sync is single-flight for every caller (#28). The lock moved from the SessionStart hook into fetch-docs.sh sync itself — PID-owned, heartbeated, reaped only on evidence (dead PID, stale pidless dir, recycled-PID backstop). A slow first sync can no longer lose its lock, and the EXIT-trap cascade that could remove a successor's lock is closed.
  • The search index can't silently go stale (#29). Carry-forward keeps search alive through doc-site outages, but it also satisfied the content-share guard — so a build over a mostly-missing scratch dir could publish a largely-stale index unnoticed. New ceiling: more than half carried-forward → the build refuses (DOCS_INDEX_MAX_CARRY_SHARE, =1 disables). A tripped guard turns the scheduled run red — that red run is the alert; the last-good index stays published.
  • Fuzzy search is ~500× faster (#30). Single awk pass instead of ~7,000 grep forks: ~17s → ~0.03s per query, identical rankings — which unblocked wiring the 64-check search-quality harness into CI (~10 min → ~12s).
  • Sync worker pool (#30): xargs -0 -n1 -P keeps every slot busy instead of batch-waiting on the slowest fetch; prune now clears orphaned .tmp.* files; the installer no longer re-shallows clones deepened for the what's-new feature (and stays bash-3.2-safe on macOS).
  • Drift guards (#30): a unit test locks the shell/Python host allowlists together; the requests pin/floor is cross-referenced between requirements.txt and pyproject; ~180 lines of dead mirror-era discovery deleted. Net −50 lines.

Consciously skipped, with rationale recorded: N-of-M discovery quorum (fail-closed red run is the deliberate alert channel) and extracting the duplicated install/uninstall jq snippet (both scripts must run standalone).

Full details: CHANGELOG.md → [2.0.2]. Plugin version bumped to 2.0.2.