ZettelForge Roadmap
April 26, 2026 · View on GitHub
Last updated: 2026-04-25
This document communicates what the maintainer is building, what is on hold, and what is out of scope. It is updated when priorities shift.
Current release: v2.6.1
Shipped: 2026-04-25. See CHANGELOG.md for details.
The v2.6 series (RFC-013 through RFC-015) delivered PII detection (Presidio), configurable content size limits, and the Web Management Interface. The v2.5 series (RFC-009 through RFC-012) delivered the enrichment pipeline v2, local LLM backends, and unified provider config.
v2.7.0 targets (next release)
Target: 2026-05-09. Scope is frozen at the items below. Everything else defers to v2.8.0 unless marked P0.
Must ship (P0)
- Issue #125: Harden reasoning-model LLM budget plumbing. Regression tests for
max_tokensat each call site, config-overridable budgets,thinkingtag stripping injson_parse.py, and areasoning_model: boolauto-scaling flag. Post-#124 follow-up. (Est: 2-3 days) - Issue #73: Tighten CCCS metadata regexes (SEC-6 / SEC-7). Low hanging security hardening. (Est: 0.5 day)
- Issue #72: MemoryManager.remember(sync=True) dominates bulk ingest. The YARA p95 plyara tail needs a timeout or chunked processing path. (Est: 1 day)
Nice to have (P1)
- Issue #71: Add typed DetectionMeta extension to MemoryNote.Metadata. Paves the way for richer entity metadata downstream. (Est: 0.5 day)
- Issue #51: Ratchet governance coverage threshold from 67% toward 80%. Incremental. (Est: 1 day)
Community items (open for contribution)
See the good first issue label. These are pre-scoped with acceptance criteria:
- #47 — IPv6 address extraction
- #46 — YARA rule reference extraction
- #45 — Sigma rule ID extraction
- #39 — Threat actor alias mappings for Chinese APT groups
- #36 — Architecture decision records (ADRs)
- #44 — Example: MISP JSON feed ingestion
- #43 — Example: Slack bot for CTI queries
- #41 — Example: Jupyter notebook CTI analysis workflow
Next release (v2.7.1+)
Target: approximately 2026-05-23. Provisional scope; will be finalized after v2.7.0 ships.
- CrewAI tool wrapper (#40). Integration path for CrewAI agents to use ZettelForge as a memory backend.
- OpenCTI sync overhaul. Improving the bidirectional sync reliability from the initial implementation.
- Detection rules as first-class entities (#feat/detection-rules-first-class branch). Sigma/YARA rules stored and searchable as knowledge graph nodes.
Backlog / on hold
These are tracked but not actively scheduled:
- MCP registry publish (feat/mcp-registry-publish branch). Publishing the MCP server to the official MCP registry.
- Enterprise split. Separating the current monolithic package into community + enterprise tiers. Governance, license boundary, and packaging work. Not blocked, but deferred until community adoption justifies the overhead.
- TypeDB read-path hardening. Depth routing and schema versioning for the TypeDB backend. Most users run on JSONL/SQLite; TypeDB is a small fraction of the install base.
- Conversational entity extractor (stash: feature/RFC-001-conversational-entity-extractor). Interactive refinement of extracted entities by analyst chat. Requires UX thinking and a frontend update.
- Pydantic v3 upgrade prep (stash: test-fix/pydantic-v3-prep). Preparing internal models for Pydantic v3 migration. Low urgency; no upstream pressure yet.
Out of scope (not building)
These have been proposed or discussed and explicitly decided against:
- UI framework migration (React, Vue, Svelte, etc.). The web GUI is a vanilla JS SPA using the ZettelForge Design System. No npm build step, no JS framework. This is intentional: the SPA must remain maintainable by a solo developer and installable with
pip install zettelforge[web]without a separate build step. Not changing. - Docker containerization. Deferred to v2.x post-v1.0 per the tech stack decision. The in-process architecture already makes deployment trivial.
- Cloud-hosted memory backend. ZettelForge is designed for local-first, air-gapped, and on-prem deployments. A cloud sync layer would compromise the security model and is not on the roadmap.
- LangChain / LangGraph integration as a default. Out of scope per the CLAUDE.md rules in this repo. Community wraps are welcome (see the CrewAI issue for how integration should work).
Release cadence
- Minor releases (v2.x.0): roughly every 2-3 weeks, bundling feature work and hardening.
- Patch releases (v2.x.y): as needed for P0 bugs, security fixes, and regressions. No pre-scheduled date.
- Major releases (v3.0.0+): not yet planned. The API is still evolving. A major version bump will come with a public deprecation notice and migration guide.
Commitment
This roadmap is a best-effort forecast, not a contract. Priorities shift based on user feedback, security findings, and the maintainer's availability (solo maintainer, GOV-006 declared).
Issues tagged with a target release are actively planned. Issues without a release tag are candidates for the next roadmap refresh.