v0.9.3 — Bug-fix release: restores two features that were silently broken in…
Bug-fix release: restores two features that were silently broken in Claude Code, plus CI/test/doc hardening.
Fixed
- Auto-context injection hook restored. The
UserPromptSubmithook importedcontextfromlonghand.cli, which exports onlyappafter thecli.py→cli/package split. The swallowedImportErrormade the hook emit{}on every prompt — so automatic context injection had been silently dead since v0.9.0. (#11) - MCP tools now load in Claude Code. 12 of 19 tools declared an
outputSchemawhosetypewasarray/oneOf; Claude Code's MCP validator rejects anyoutputSchema.typethat isn't"object", so those tools silently failed to load. Handlers return text (never structured content), so the schemas were decorative — they are now stripped before tools reach the client. (#9)
Changed
SECURITY.mdcorrected to describe the two fixed-argvsubprocesscall sites and the single hardcoded-identifierPRAGMAf-string. The code was always injection-safe; the "no subprocess / zero f-string SQL" claims were stale. (#12)
Internal
- CI now tests Python 3.14 (non-blocking — onnxruntime's cp314 wheel intermittently raises an illegal-instruction SIGILL on GitHub's heterogeneous runners), gates coverage at
--cov-fail-under=60, and runs a non-blockingmypyjob. (#13) - Behavioral test backfill for the CLI and the recall time parser; total coverage 66% → 73%,
time_parser.py→ 100%. (#14)