Skip to content

feat: agent-native retrofit (v0.2.0) — JSON mode, MCP server, local Whisper, keychain#1

Merged
aedneth merged 2 commits into
masterfrom
feat/agent-native-retrofit
Jun 2, 2026
Merged

feat: agent-native retrofit (v0.2.0) — JSON mode, MCP server, local Whisper, keychain#1
aedneth merged 2 commits into
masterfrom
feat/agent-native-retrofit

Conversation

@aedneth

@aedneth aedneth commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Non-breaking agent-native retrofit (v0.2.0) on top of the human Ink TUI. Every interactive flow now has a fully non-interactive, machine-readable equivalent; nothing existing changes meaning.

Agent-native layer

  • AgentContext + OutputSink (Human / Json / Capture) thread one code path through humans, scripts, and MCP
  • Stable versioned JSON envelope { ok, command, schemaVersion, data | error }
  • Global --json / --yes / --quiet / --no-color (+ RECMP3_JSON/YES/QUIET)
  • Deterministic POSIX exit-code contract (adds 6=local-whisper, 7=input; existing codes unchanged)
  • stdin/stdout composability: transcribe - reads audio from stdin, prompt - reads text
  • Headless record --duration/--no-tui; non-interactive config init
  • recmp3 manifest (discoverable surface) + recmp3 mcp (stdio MCP server, 7 tools)

v0.2.0 backlog folded in

  • LocalWhisperProvider (whisper.cpp, no upload) behind the existing TranscriptionProvider
  • OS keychain key storage via lazy keytar + config set-key (env still wins; graceful fallback)
  • Expanded vitest+msw suite (43 tests); CI test step + Linux/macOS/Windows × Node 20/22 matrix; release workflow

Housekeeping

  • Fix package.json license MITAGPL-3.0-or-later; add docs/AGENTS.md; update README/CHANGELOG/TODO
  • CI triggers target master (repo default branch)

Verification

typecheck ✅ · lint ✅ · 43/43 tests ✅ · build ✅ · live MCP tools/list + tools/call

claude and others added 2 commits June 1, 2026 22:46
…hisper, keychain

Non-breaking dual interface so every human TUI flow has a fully
non-interactive equivalent for terminal AI agents and scripts.

- Agent layer (src/agent): AgentContext + OutputSink (Human/Json/Capture),
  stable versioned JSON envelope, global --json/--yes/--quiet/--no-color
- Stable POSIX exit-code contract in src/errors.ts (adds 6=local-whisper, 7=input)
- stdin/stdout composability: transcribe - and prompt - read from stdin
- Headless record (--duration/--no-tui), non-interactive config init
- recmp3 manifest (discoverable surface) + recmp3 mcp (stdio MCP server)
- OS keychain key storage via keytar + config set-key (env still wins)
- LocalWhisperProvider (whisper.cpp, no upload) behind TranscriptionProvider
- Expanded vitest+msw suite (43 tests); CI test step + OS matrix; release workflow
- Fix package.json license MIT -> AGPL-3.0-or-later; docs/AGENTS.md guide

https://claude.ai/code/session_01VXWFjbi3ALuvCLVeHdiB79
Add .gitattributes (* text=auto eol=lf) so git never converts LF→CRLF
on Windows checkout. Add lineEnding: lf to biome.json so Biome
explicitly asserts LF rather than silently accepting CRLF on Windows
runners — the combination was causing all 2 Windows matrix jobs to fail
the format check.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@aedneth aedneth merged commit 6c01787 into master Jun 2, 2026
6 checks passed
@aedneth aedneth deleted the feat/agent-native-retrofit branch June 2, 2026 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants