v0.1.0 — Initial Release
Changelog
All notable changes to Chronicle are documented here.
Format follows Keep a Changelog.
Versioning follows Semantic Versioning.
Unreleased
Planned
- Phase 4: Tool adapters (Cursor
.cursorrules, Aider--read, GeminiGEMINI.md, Copilot instructions) - Phase 5: Mermaid diagram auto-generation (architecture, dependency graph, evolution timeline)
- Phase 6: Evolution records and system milestone timeline
- Phase 7 (v2): Semantic clustering extraction strategy (group commits by file overlap + time proximity)
- Phase 8 (v3): Two-pass extraction (cheap LLM filter → quality model for complex decisions)
0.1.0 — 2025-04-10
Initial release of Chronicle — AI-native development memory.
Added
Core (@chronicle/core)
store.ts— file-based markdown store withfindLoreRoot(walks up like git),readStore,writeStore,appendToStore,writeDeepDecision,initStorescanner.ts— git history scanner with noise filtering (chore/style/docs/test prefixes), diff size threshold (≥20 changed lines), diff capping (4000 chars), tag detectionextractor.ts— LLM extraction engine with pluggable strategy pattern; v1simplestrategy (batches of 6, ≤5000 chars);clusteredandtwo-passslots reserved for v2/v3cache.ts— SHA-keyed JSON file cache; prevents reprocessing commits across runsExtractionCacheinterface for swappable cache backends (in-memory, file, future SQLite)
CLI (chronicle-dev)
chronicle init [--depth]— bootstraps.lore/from git history; progressive scan defaults to 6 monthschronicle inject [--files] [--full] [--format]— outputs compressed context to stdout; scopes to relevant files; supportsmarkdown,xml,plainformatschronicle deepen [--depth]— extends scan further back without reprocessing cached commitschronicle hooks install/remove— installspost-commit(async decision capture) andprepare-commit-msg(risk annotation) git hooks- Internal
chronicle captureandchronicle enrich-commitcommands (invoked by hooks)
MCP Server (@chronicle/mcp)
chronicle_get_context— injects compressed project context; scopes to files if specifiedchronicle_log_decision— AI logs architectural choices mid-sessionchronicle_log_rejection— AI logs abandoned approaches (crown jewel: prevents future repetition)chronicle_get_risks— returns blast-radius info before touching a filechronicle_save_session— summarizes session to.lore/sessions/YYYY-MM-DD.md
Python wrapper (chronicle-dev on PyPI)
- Thin subprocess wrapper; delegates all logic to Node CLI
- Detects Node ≥ 20; falls back to
npx chronicle-devif not globally installed - Entry point:
chroniclecommand identical to npm version
Project
.lore/store structure:index.md,decisions.md,decisions/,rejected.md,risks.md,evolution.md,diagrams/,sessions/- Hub-and-spoke ADR model: shallow decisions inline, complex decisions in
decisions/<slug>.md ARCHITECTURE.md— full system design documentation- GitHub Actions CI (test on every push/PR) and Release (publish npm + PyPI on tag)
- Vitest test suite for core package (store, extractor, scanner)
- pytest suite for Python wrapper
Architecture decisions
- Markdown-only store: no vector DB, no embeddings — plain files readable by any LLM
- Commit SHA cache ensures bootstrap is idempotent and cost-efficient
- Strategy pattern in extractor: v1 ships today, v2/v3 are drop-in replacements
- Python package delegates to Node — single source of truth, no duplication