Skip to content

Roadmap

nathan nelson edited this page Jul 11, 2026 · 2 revisions

Roadmap

Where Longhand is headed, what's actively being worked on, and where contributors can help.

Current version

v0.13.0 (2026-07-11) — the hardening release that opens the v1.0 deprecation window. Hooks can no longer crash a session (failures become breadcrumbs + doctor rows), timestamps are tz-aware UTC with recall windows anchored to your local calendar day, error counts stop counting grep output as failures, upstream transcript-format drift is surfaced instead of silently accumulating, and the CLI + MCP surfaces consolidated (status as the single resume command; MCP 19 → 13 tools). Full details in the CHANGELOG and the v0.13.0 release.


Near term: v1.0

v1.0 is deliberately boring — mostly subtraction plus written promises:

  • Removals — the deprecated CLI commands (recap, continue, patterns, reanalyze) and the six retired MCP tool listings go away. The retired MCP names keep answering forever (with a migration note), so saved instructions never hard-fail.
  • COMPATIBILITY.md — the five 1.0 promises, each with a named enforcement artifact: stable CLI+MCP surface through 1.x · forward data compatibility (a newer-schema database refuses loudly instead of operating blind) · hook guarantees (never raise, never touch the network, never block the prompt — already CI-gated) · upstream drift is never silent · honest metrics.
  • Migration authoring policy — automatic, one-time, never renumbered; anything beyond O(1) is chunked or opt-in; nothing destroys data without opt-in.
  • 1.0 gates — an old-schema fixture database that must keep opening, zero self-deprecation warnings, and a surface-consistency check so the docs can't drift from the registered tools again.

The reconcile default also flips at 1.0: implicit calls become dry-run; pass fix explicitly.


Exploring (1.x — allowed by the promises, deliberately after 1.0)

  • Single-writer daemon — replace the lockfile protocol with one writer process; internal change, no surface impact.
  • ChromaDB replacement spike — sqlite-vec or an FTS5 hybrid, measured with scripts/recall_diff.py before/after. Would drop the ~80MB ONNX download and the heaviest dependency.
  • raw_json deduplication — an entries table keyed by entry hash; the design exists, execution is 1.x.
  • Local-model extraction experiments — opt-in, local-only, on top of the deterministic core (the heuristic extractors have hit their ceiling; recall is honest about that as of 0.13).
  • Streaming ingest for >500MB transcripts; many-to-many session↔project attribution.
  • Windows support tier — a non-blocking windows-latest CI leg has been running since v0.13.0 (green from its first run); ~3 weeks of evidence decides the README claim.

Help wanted

Areas where outside contributions would land well:

  • Documentation — filling in the remaining <!-- TODO --> sections on this wiki
  • Language-specific error pattern matchers in longhand/extractors/errors.py (now with per-command suppression context — see the v0.13 changelog)
  • New transcript entry-type shapes for the drift-canary fixture corpus (tests/fixtures/transcript_shapes/scripts/harvest_entry_shapes.py makes this a 5-minute contribution)

Explicitly not planned

  • Cloud-hosted version — would violate the local-only design principle. Everything stays on your machine.
  • An LLM in the ingest path — analysis stays deterministic and free; any future model-assisted extraction will be opt-in, local, and layered on top.

How to propose something

Open an issue at github.com/Wynelson94/longhand/issues with the problem you're trying to solve, not the feature you think solves it. Feature-first proposals get closed; problem-first proposals start a real conversation.

Clone this wiki locally