Releases: dotcommander/jinn
Releases · dotcommander/jinn
v0.9.0
Changed
- Migrate the
memorytool from a single flatmemory.jsonfile to a per-project scoped SQLite store (WAL mode,0700directory permissions), enabling safe cross-process concurrent access. - Memories are now namespaced by scope: omit
scopeto target the current project (resolved by walking up to the nearest.gitancestor, falling back to the working directory), or passscope: "global"for cross-project memories.
Added
- Optional
scopeparameter onmemoryactions. - Automatic one-time migration of legacy
memory.jsonentries into the reservedglobalscope on first run.
Removed
- The 1 MiB total-store cap on the
memorytool (no longer needed with the SQLite-backed store).
v0.8.14
Changelog
All notable changes to jinn will be documented in this file.
The format is based on Keep a Changelog,
and jinn adheres to Semantic Versioning.
Unreleased
0.8.14 - 2026-05-29
Fixed
- Preserve cancellation semantics for subprocess-backed
search_files,
find_files, andsearch_replaceglob expansion. - Distinguish stalled
find_fileswalks from empty no-match results. - Reject blank
run_shellcommands with a structured invalid-args error. - Ignore Justfile assignment lines when detecting
just build,just test,
andjust lintrecipes.
Changed
- Derive
list_toolsnames from the embedded schema to avoid drift. - Move the OpenAI tool schema into embedded
schema.json. - Prefer committed Justfile recipes during project detection.
Documentation
- Sync README, getting-started, tool reference, and architecture docs to the
current 20-tool surface.
Removed
- Remove the obsolete demo module and keep
CLAUDE.mdlocal-only.
0.8.9 - 2026-05-15
Added
related_context: rank local KB, skills, agents, commands, and configured
context paths for a prompt or tool failure.- Request envelope
clientfield so callers can declareclaude,codex, or
piand receive only the matching client-specific skill context.
Changed
- Store
related_contextindexes in per-client cache files to avoid rebuild
churn when multiple clients use jinn on the same machine.
0.8.8 - 2026-05-15
Fixed
apply_patch: reject*** Add File:when the target already exists, including dry runs.search_replace: expand documented glob targets infiles.read_file,multi_read: treat empty text files as successful empty reads.
Documentation
- Document validate-first/per-file atomic write semantics for batch mutation tools.
- Update README and tool reference coverage for the current 19-tool schema.
Added
read_file:truncateparameter — strategy when windowed output exceeds the line limit:head(default, paginate withstart_line),tail(keep last N, useful for logs),middle(keep both ends, elide center),none(defer to byte cap only)read_file:line_numbersparameter — setfalseto receive raw content without line-number prefixes (default:true)read_file: content-based MIME detection viahttp.DetectContentType— images without a recognized extension (e.g., a PNG renamed to no extension) are now correctly identified and returned as base64 content blocksread_file: uniform truncation hint —[Showing lines X-Y of Z. Use start_line=N to continue. Remainder saved to <path>.]— remainder written to an XDG cache temp file for seamless continuationrun_shell: native process-group kill viaSetpgid: true+syscall.Kill(-pgid, SIGKILL)— background children spawned by the command are killed on timeout; no externaltimeoutbinary requirededit_file,multi_edit: emptyold_textguard — returns an error with a suggestion rather than silently matching the empty string everywhereedit_file,multi_edit: no-op edit guard — returns an error whenold_textandnew_textare equivalent (including after fuzzy normalization)multi_edit: overlap detection — edits targeting overlapping byte ranges in the same file are caught in the validation phase; error names the conflicting edit indicessearch_files:literalflag — treatspatternas a fixed string rather than a regex (passes-Fto grep /--fixed-stringsto rg)list_dir: directories now suffixed with/in theentriesarray to distinguish them from filessecurity.resolvePath:~and~/prefix expansion — paths beginning with~resolve to the user home directory before sandbox boundary checks
0.3.2 - 2026-04-18
Added
- LICENSE (MIT), CHANGELOG.md, expanded
.gitignorefor public release docs/architecture.yaml— repoflow-rendered architecture diagram source
0.3.1 - 2026-04-10
Fixed
- Detect TTY and print help instead of blocking on stdin
- Whitelist shell subprocess environment variables to prevent leaking secrets
0.3.0 - 2026-04-08
Fixed
- Call fsync before rename to ensure atomic writes survive crashes
- Preserve original file permissions on write
- Prefer
rgovergrepforsearch_fileswhen available
0.2.0 - 2026-04-08
Added
list_toolsendpoint and structured error semantics- Symlink-safe work directory initialization
Fixed
- Resolve symlinks before boundary check to prevent path traversal via symlinks
0.1.0 - 2026-04-08
Added
- Initial release: sandboxed tool executor for AI coding agents
- 8 tools:
run_shell,read_file,write_file,edit_file,multi_edit,search_files,stat_file,list_dir - Path confinement with symlink escape detection and sensitive path blocking (
.git/,.ssh/,.aws/,.gnupg/,.env*) - Text normalization: BOM stripping, CRLF handling, fuzzy matching for edit operations
- Output pipeline: repeated line collapse, bounded writer (1 MB cap), truncation
- Atomic writes with TOCTOU protection (temp file + rename)
- Zero dependencies — stdlib only, single binary
- OpenAI function calling compatible JSON-over-stdin/stdout protocol
--schemaflag to emit tool definitions--versionflag with ldflags and VCS fallback
v0.8.13
Full Changelog: v0.8.10...v0.8.13
v0.8.12
Full Changelog: v0.8.9...v0.8.12
v0.8.11
Full Changelog: v0.8.9...v0.8.11
v0.8.10
Full Changelog: v0.8.9...v0.8.10
v0.8.7
Full Changelog: v0.8.5...v0.8.7
v0.8.6
Full Changelog: v0.8.5...v0.8.6
v0.8.5
Full Changelog: v0.8.4...v0.8.5
v0.8.4
Full Changelog: v0.8.2...v0.8.4