Voight’s SDK is the primary thing devs see — versioning follows semver. Backend + dashboard ship continuously fromDocumentation Index
Fetch the complete documentation index at: https://docs.voight.xyz/llms.txt
Use this file to discover all available pages before exploring further.
main with no version tag.
SDK changelog
0.4.2 — 2026-05-10
Fix: explicit--privacy=N example in non-TTY welcome menu.
After 0.4.1 shipped, an alpha tester’s friend tried to install via Claude Code chat and the AI agent reading the wizard output didn’t know how to chain commands. The welcome menu now includes:
0.4.1 — 2026-05-08
3-step progressive flow for non-TTY (Claude Code chat). The 0.4.0 wizard relied on readline. Inside Claude Code chat (or any non-TTY shell) it silently defaulted tostandard privacy, never showed the welcome menu, and gave users no way to choose. 0.4.1 reshapes the non-TTY path:
- Step 1 — print welcome + privacy menu, exit
- Step 2 — accept
--privacy=N, print API key instructions, exit - Step 3 — accept both
--privacyand--key, write settings.json, show done message
settings.json on most modern versions.
0.4.0 — 2026-05-08
3-level privacy capture + local PII scrubbing. The biggest release since the SDK was first published. New capabilities:- Three privacy levels picked at install (Minimal / Standard / Full), via the setup wizard or
VOIGHT_PRIVACYenv var scrubPii()— 12 PII patterns + Luhn-validated credit cards, run on every string in every event under Standard mode, before the SDK transmits anythingapplyPrivacy(payload, level)— single integration point inhook.ts, allowlist-based for Minimal (forward-compat), deep-scrub for Standard- Per-event
metadata.privacyLevelstamp — every event ships with its level chip so the dashboard can audit retroactively - 77 new unit tests (61 → 138 SDK suite)
- E2E verified against the actual subprocess flow + wire capture, not just unit mocks
0.3.10 — 2026-05-06
Fix: match real Claude Code rejection phrasing in denial detector. The 0.3.9 denial-detection patterns were synthetic. 0.3.10 corrects them against captured rejection logs. Architectural caveat: PostToolUse doesn’t fire on user_rejected — that path is dead code in production. We’re sitting on this until we can capture the right hook flow.0.3.9 — 2026-05-06
Permission-denial classification (5 patterns). Added a denial classifier that promotes failed tool calls to a distinctdenial type when the failure shape matches a known pattern (user rejected, settings blocked, sandbox denied, requires approval, hook blocked). The dashboard renders these with a DENIED badge separate from real runtime errors.
Post-mortem: shipped against invented patterns. See architectural caveat above.
0.3.8 — 2026-05-05
Git context capture. Every event now carriesmetadata.git = { branch, sha, shortSha, remote, dirty } when running inside a git repo. Cached 30s per cwd to avoid spawning git on every event. Captures the exact code state that produced the trace.
0.3.7 — 2026-05-05
ScheduleWakeup recognition.
When the agent calls ScheduleWakeup, the SDK records the parameters. The next UserPromptSubmit that matches gets tagged promptSource: 'system' so the dashboard can distinguish autonomous loop ticks from real user prompts. Renders as a SYSTEM badge in the timeline.
0.3.5 — 2026-05-05
Agent response capture. The Stop hook now reads the local transcript backward to find the agent’s final text + stop reason + last thinking block. Surfaces them in the dashboard’s event detail panel (masked by default, eye toggle to reveal).0.3.4 — 2026-05-04
Marker file (.voight-agent-id) for rename-proof identity.
Server returns the agent’s CUID on every event response. SDK writes it to <cwd>/.voight-agent-id. Future events match by primary key — rename-proof, folder-rename-proof.
0.3.3 — 2026-05-04
Explicitmetadata.tokensBreakdown for exact pricing.
The flat tokens.input field conflates inputBase, cacheCreation, and cacheRead at the full rate. New breakdown field gives the backend exact prices (cache_read at 0.10×, cache_creation at 1.25×, input at 1.00×).
0.3.2 — 2026-05-04
ESM fs imports (fix silent fail on transcripts >4MB).0.3.1 — 2026-05-03
Lenient transcript matcher (handles edge cases in attribution).0.3.0 — 2026-05-03
Transcript-based token capture. The SDK now walks the local transcript JSONL on every PostToolUse, finds the assistant message that initiated the current tool, and pulls real token usage. Dedup via assistant message UUID — 1 message → N tools attributes once.Earlier versions
0.1.x and 0.2.x were the initial integration drafts. Not documented here — start at 0.3.0.Stay updated
- npm:
@voightxyz/sdk - GitHub:
voightxyz/voight-sdk(releases tagged) - Twitter: @voightxyz