This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+6 more
Affected surfaces
Summary
AI summarySessions are now ingested incrementally to prevent loss of in‑progress events.
Full changelog
Live ingestion. Sessions are now ingested incrementally during the session
instead of only at SessionEnd, so a Claude Code crash can no longer wipe an
in-progress session's events from the index.
Added
Stophook +longhand ingest-livecommand. Fires once per assistant
turn. Tail-reads new bytes from the transcript JSONL and upserts new
events into SQLite. Skips heavy analysis (episodes, segments, embeddings,
project inference) — those still run at SessionEnd. The events table
stays current within seconds of each turn, so an editor crash, a kernel
panic, or a stuck SessionEnd subprocess no longer means lost work.
longhand hook installnow installs both SessionEnd and Stop in one go.- Plan history is now first-class. Every Write/Edit to a
~/.claude/plans/*.mdfile is captured as an event. The new
plans_indexSQL view (longhand plans list/mcp_longhand_list_plans)
exposes them in chronological order. Pair withreplay_fileto
reconstruct an early version of a plan that was later overwritten —
previously, only the final plan was visible because the file on disk
had been overwritten by the time SessionEnd fired. longhand schedule install-reconcilerwrites a launchd job
(macOS) that runslonghand reconcile --fixevery 30 minutes.
Belt-and-suspenders for hard crashes that take down both hooks. Opt-in;
longhand doctorflags it when missing.- MCP tool
list_plansfor the Claude-side view of plan history.
Changed
- SQLite WAL mode enabled at first connect. Cuts hook latency under
contention from worst-case 5s (busy_timeout) to ~10ms. Single-user DB,
safe. longhand hook uninstallnow also removes the Stop hook.longhand doctorhas new rows for Stop hook and Reconciler job.
Schema
- Migration v5: adds
last_offsetcolumn toingestion_log(live cursor
separate fromfile_size, which still tracks last-full-ingest size).
Backfill: existing rows getlast_offset = file_size. Adds
plans_indexview overevents.
Tests
- 11 new tests covering: stdin contract, offset advance, partial-line
handling, lock contention, plans_index view, migration v5,
live → SessionEnd composition, episodes-skipped invariant. - 222 tests passing (was 211).
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Wynelson94/longhand
Persistent local memory for Claude Code. Indexes every session JSONL verbatim into SQLite + ChromaDB for semantic recall (~126ms)
Related context
Beta — feedback welcome: [email protected]