Releases: fame0528/savant-code
v0.2.0 - Sprint B-1: real stream-JSON output
Sprint B-1: wires the real SavantClient.run() events to the StreamEvent schema, replacing the v0.1 placeholder 'got your prompt' message.
What changed
\stream-json\ mode (--output-format stream-json, or auto-detect when stdout is not a TTY) now emits real agent output: session.start, message.user, message.assistant (chunked), message.assistant.done, message.reasoning (NEW), message.reasoning.done (NEW), tool.call, tool.result, error, session.end.
A new pure mapper \mapPrintModeToStream\ converts SDK \PrintModeEvent\ -> \StreamEvent\ for all 9 PrintModeEvent types.
Cancellation via stdin EOF or SIGINT now emits \session.end: cancelled\ (exit 1) immediately.
Schema additions (backwards-compat)
- \message.reasoning\ { id, delta } — chunks of agent reasoning, id =
unId\ - \message.reasoning.done\ { id } — signals end of reasoning block
Existing stream-json consumers using only the 8 original event types continue to work.
Perfection Loop (converged)
- Pass 1: 11/12 tests, 1 improvement (counter -> runId for reasoning)
- Pass 2: 12/12 tests, 0 improvements (converged)
- Pass 3: 12/12 tests, 0 functional improvements (cosmetic cleanup)
Verification
- \�un x tsc --noEmit -p tsconfig.json\ — PASS (exit 0)
- \�un test\ — 21 pass, 0 fail, 67 expect() calls (275ms)
- call-graph reachability: 39 grep matches, all new symbols wired
Numbers
- +477 / -80 lines (1 new mapper, 1 new test file, 1 new schema variant, runner refactored)
- 12 new mapper tests + 9 existing stream-json-emitter tests still pass
- v0.1.0 -> v0.2.0 (semver minor: new event types, backwards-compat)
Sister Projects
- savant-trading
- savant-bot
- Savant
- savant-protocol - ECHO Protocol (MIT)
v0.1.0 — Sprint A
Sprint A release of the public savant-code monorepo. Three cross-cutting user-facing features, all backwards-compatible.
New Features
Progressive Skill Loading (FID-2026-0620-004)
\SKILL.md\ files are now discovered as metadata at session start; full bodies are loaded on demand via /skill:\ or the \�ctivate_skill\ tool. Skills with \�utoActivate: true\ in their frontmatter still load eagerly. Token savings scale with skill count.
Custom Slash Commands (FID-2026-0620-005)
Drop .md\ files into .savant/commands/\ (project) or ~/.savant/commands/\ (global) to define /\ commands. YAML frontmatter (description, aliases, argument-hint, agent, model) + template substitution (-, /$@, ). Strict mode via \SAVANT_CODE_STRICT_COMMANDS=1.
Stream-JSON Output Mode (FID-2026-0620-006)
--output-format stream-json\ (or auto-detect when stdout is not a TTY) skips the TUI renderer and emits NDJSON to stdout for CI/CD. Versioned schema (\�: 1); chunked \message.assistant\ events; \session.end\ with optional usage payload. Exit 0/1 per standard POSIX.
Verification
- \�un x tsc --noEmit -p tsconfig.json\ — PASS (exit 0)
- 24 new unit tests across the 3 features pass
Numbers
- 3 features shipped in 4 commits (1 + 1 + 1 + 1 release prep)
- 10 workspace package.json files bumped to 0.1.0
- +1,255 net lines (3 new files in common/, 2 new in cli/, 2 new in sdk/, 3 FIDs, README + CHANGELOG)
Sister Projects
- savant-trading — autonomous DEX trading on Arbitrum (Rust)
- savant-bot — Discord bot interface (Rust)
- Savant — Rust-native multi-agent swarm core
- savant-protocol — the ECHO agent discipline (MIT)
v0.0.1 — base release
Changelog
All notable changes to this project are documented here.
Version source of truth: package.json at the repo root and in each workspace.
v0.0.1 — 2026-06-20
Base release. Public rebrand of the savant-code monorepo.
- [LOW] FID-2026-0620-001 — Re-brand as
savant-codebase v0.0.1. Reset all 10 workspacepackage.jsonversions to0.0.1(sdk 0.10.7 → 0.0.1 per user approval). Renamedsavant-free→free-buildin rootpackage.jsonworkspaces array (was broken — directory wasfree-build/, notsavant-free/). Added"ignoreDeprecations": "5.0"totsconfig.base.json(silences TS 6.0baseUrldeprecation). Added"globals": "^15.14.0"to root devDependencies (was missing despiteeslint.config.jsimporting it). PatchedAGENTS.mdrepo map (savant-free/→free-build/). Removed> Built on the [Savant-Code] platformline fromfree-build/README.md. Rewrote rootREADME.mdfollowing the savant-bot template (Overview, Key Tech, Features, Repo Map, Quick Start, Commands, Configuration, Validation, Conventions, ECHO Protocol, Sister Projects, Documentation, License).
Verification
type_check(bun x tsc --noEmit -p tsconfig.json): PASS (exit 0, 0 errors).lint(bun x eslint . --max-warnings 0): NOT PASS — pre-existing ESLint 10 / typescript-eslint 7 incompat (FID-003).format(bun x prettier --check .): NOT PASS — pre-existing 1456 unformatted lines (out of scope).build(bun run build:sdk && bun run build:savant-free): NOT VERIFIED — pre-existingcanvasdep fails Windows install (FID-002).test(bun test): NOT VERIFIED — 197 test files discovered but not yet run in this session.
Known Issues
- FID-2026-0620-002 (MEDIUM) —
canvasdep fails Windowsbun install(missing GTK3 runtime + headers). Affects onboarding + CI gates. - FID-2026-0620-003 (MEDIUM) — ESLint 10.5.0 vs
typescript-eslint7.17.0 incompat.bun x eslintexits 2 withTypeError: Class extends value undefined. Pin ESLint to^9.0.0or upgrade typescript-eslint to^8.0.0.