Skip to content

Releases: zorak1103/rootcanal

v2.6.0

Choose a tag to compare

@zorak1103 zorak1103 released this 08 Sep 10:04
b461fe4

Changelog

  • 73a3f61 chore(deps): update dependency goreleaser/goreleaser to v2.18.1 (#45)
  • 46388d7 chore(deps): update renovatebot/github-action action to v46.2.5 (#39)
  • e28e22d chore(deps): update trufflesecurity/trufflehog action to v3.97.4 (#40)
  • b461fe4 fix: migrate MCP logging to stderr (#48)
  • e7eb754 refactor(session): adopt defer-based unlocking in Send (#46)
  • d94bdc9 test(hostkeys): cover unresolvable hostport fallback in known_hosts rewrite logic (#44)
  • 2eb9af2 test(jobs): pin Reap TTL boundary with synctest (#47)

v2.5.0

Choose a tag to compare

@zorak1103 zorak1103 released this 04 Sep 21:58
e2c2b99

Changelog

  • 4deeeb1 chore(deps): update dependency goreleaser/goreleaser to v2.18.0 (#32)
  • f8f8650 chore(deps): update module github.com/golangci/golangci-lint/v2 to v2.13.1 (#28)
  • 0029c96 chore(deps): update module github.com/golangci/golangci-lint/v2 to v2.13.2 (#34)
  • 3a7c200 chore(deps): update module golang.org/x/vuln to v1.7.0 (#25)
  • 52c19c5 chore(deps): update module honnef.co/go/tools to v0.8.0 (#29)
  • 740df41 chore(deps): update module honnef.co/go/tools to v0.8.1 (#30)
  • 26fea6f chore(deps): update renovatebot/github-action action to v46.2.4 (#31)
  • c9aae6e chore(deps): update trufflesecurity/trufflehog action to v3.97.0 (#26)
  • 713fe75 chore(deps): update trufflesecurity/trufflehog action to v3.97.1 (#33)
  • b005791 fix: bump golang.org/x/crypto to v0.56.0 (#37)
  • 0196d42 fix: defer hostpool close in main to guard against panics (#27)
  • e2c2b99 test: close mutest coverage gaps and fix bugs it surfaced (#38)

v2.4.2

Choose a tag to compare

@zorak1103 zorak1103 released this 13 Aug 06:54
5720409

What's Changed

  • chore(deps): update renovatebot/github-action action to v46.2.1 by @zorak1103 in #21
  • chore(deps): update renovatebot/github-action action to v46.2.2 by @zorak1103 in #23
  • fix(deps): update module github.com/testcontainers/testcontainers-go to v0.44.0 by @zorak1103 in #22
  • fix(deps): update module golang.org/x/crypto to v0.55.0 by @zorak1103 in #24

Full Changelog: v2.4.1...v2.4.2

v2.4.1

Choose a tag to compare

@zorak1103 zorak1103 released this 30 Jul 10:16
0ea186f

Changelog

  • b2f4d56 chore(deps): update dependency goreleaser/goreleaser to v2.17.1 (#16)
  • cfd0209 chore(deps): update renovatebot/github-action action to v46.1.20 (#14)
  • eda3233 chore(deps): update renovatebot/github-action action to v46.1.21 (#17)
  • 8955bbe chore(deps): update renovatebot/github-action action to v46.2.0 (#19)
  • 1b479c2 chore(deps): update trufflesecurity/trufflehog action to v3.96.0 (#15)
  • 0ea186f fix(deps): update module github.com/modelcontextprotocol/go-sdk to v1.7.0 (#18)

v2.4.0

Choose a tag to compare

@zorak1103 zorak1103 released this 17 Jul 10:00
c18e49d

Changelog

  • c18e49d Fix/review findings (#13)
  • 1884627 chore(deps): update actions/setup-go action to v7 (#12)
  • ca98a6d chore(deps): update renovatebot/github-action action to v46.1.19 (#10)
  • 174256d docs: fix stale lint command references, ignore roborev snapshots
  • f1d45e3 fix(deps): update module github.com/pkg/sftp to v1.13.11 (#11)

v2.3.1

Choose a tag to compare

@zorak1103 zorak1103 released this 12 Jul 15:31
eb3317a

Changelog

  • bed21b1 chore(deps): update actions/checkout action to v7 (#4)
  • d1f19c9 chore(deps): update arduino/setup-task action to v3 (#5)
  • 2b0d4cb chore(deps): update module golang.org/x/vuln to v1.6.0 (#7)
  • 0f01e28 chore(deps): update trufflesecurity/trufflehog action to v3.95.9 (#6)
  • 7386671 fix(deps): update module github.com/testcontainers/testcontainers-go to v0.43.0 (#3)
  • eb3317a fix(deps): update module golang.org/x/crypto to v0.54.0 (#8)
  • b9c2058 fix(deps): update module golang.org/x/sync to v0.22.0 (#9)

v2.3.0

Choose a tag to compare

@zorak1103 zorak1103 released this 06 Jul 14:54
0fe92aa

Changelog

  • ac3fae0 chore(deps): update alpine docker tag to v3.23
  • 38b7b46 chore(deps): update alpine docker tag to v3.24
  • 84fa2a7 chore(deps): update renovate/renovate docker tag to v43
  • 1734a07 chore(deps): update renovate/renovate docker tag to v43
  • 90996a6 docs(skill): remove duplicate nohup section; update ssh_list_hosts and sftp_write docs
  • 90b7e5c docs: add ssh_accept_host_key entry to tools.md reference
  • 46b2883 docs: add status badges to README
  • 9217d50 docs: add sudo/privilege escalation section with security warning to README
  • 8186935 docs: complete README and security model
  • 43af345 docs: detach decision guide and secret-file read warning
  • 776e39a docs: document SFTP access control and session cap enforcement
  • 8dba34f docs: extend architecture diagram to show SFTP branch
  • 8a63510 docs: fix architecture diagram — use generic MCP client instead of Claude Desktop
  • 250fcf5 docs: mark RENOVATE_TOKEN as protected in setup guide
  • ecacee7 docs: reduce AI-marker patterns in README and security.md
  • 14dda8c docs: remove v1-to-v2 migration guide
  • 15d373e docs: sync all docs and skill references to v2.0 reality
  • 74a8bee docs: tighten sftp_read default to 2 MiB; polish SKILL.md timeout table, background jobs, and context warnings
  • 3f8d124 docs: v2.0 skill rewrite, migration guide, and CHANGELOG
  • 9417a0c feat(cmd): -version and -validate-config flags; example config
  • 80526d1 feat(config): YAML loader with env interpolation and validation
  • b30ea43 feat(config): add v2.0 limits, host fields, and Capabilities method
  • de42709 feat(hostpool): ref-counted shared ssh.Client cache; -probe flag
  • f395dca feat(logging): slog → MCP client logging via swappable handler
  • a432105 feat(mcpserver): four session tools over stdio MCP transport
  • fb9d8c8 feat(mcpserver): ssh_list_hosts + ssh_host_capabilities; marshal error handling; nil-cfg test
  • 56df75f feat(mcpserver): ssh_list_hosts and ssh_host_capabilities discovery tools
  • b6ff376 feat(mcpserver): ssh_run_once tool handler and 10-tool registration
  • 023449a feat(mcpserver): ssh_run_once tool; 10-tool registration (8 without cfg)
  • fc524ca feat(session): ANSI/CR strip via jimschubert/stripansi
  • e400849 feat(session): RunOnce via SSH exec channel (cappedBuffer, pool.Get)
  • fe06bee feat(session): marker-aware Send with exit codes, still_running, and closedReason
  • 8546a5d feat(session): marker-aware Send with exit codes, still_running, and closedReason
  • e327e68 feat(session): persistent shell manager with bounded ring buffer
  • 44144bc feat(session): suppress MOTD via RC_READY boot marker in Open
  • 8e7bd3b feat(session,mcpserver): v2 Manager interface with new types (stub Send)
  • 5ef3b2c feat(sftpops): SFTP read/write/list on top of hostpool
  • f6d50eb feat(sshconn): client config builder with strict known_hosts
  • c663ed8 feat(sshconn): cross-platform ssh-agent dial
  • 5167b67 feat: SSH keepalive on by default (15 s/3 failures); SIGTERM advisory warning
  • 415c566 feat: add get_skill tool as fallback for tool-only MCP clients
  • 69e4a5c feat: add internal/mcpserver/skills/ embedded catalog and docs
  • 32d020b feat: add onDead callback to StartKeepalive, called after client.Close() on max failures
  • 503ac5f feat: add rootcanal-ssh Claude Code skill
  • 3d9f88b feat: detached jobs — ssh_run_once(detach=true) + ssh_job_status + ssh_job_cancel
  • ac1c5f2 feat: expose skill:// MCP resources via registerSkillResources
  • 4c92548 feat: sftp_allowed_prefixes in ssh_list_hosts; atomic sftp_write
  • 26e7ef3 feat: ssh_accept_host_key — in-MCP known_hosts refresh after server rebuild
  • 439f9f2 feat: surface ClosedReason in SessionInfo; advisory warning on lost connection (C1)
  • 05792e0 feat: validation middleware suggests correct field name on unknown-property errors
  • 792de14 feat: wire skill resources + get_skill into server; add integration tests
  • 66c5077 fix(ci): migrate staticcheck to go.mod tool directive
  • c57bd41 fix(ci): scope gofmt to git-tracked files; add DialTimeout=0 regression test
  • 1b38eb3 fix(deps): update module github.com/modelcontextprotocol/go-sdk to v1.6.1
  • 9469b19 fix(deps): update module golang.org/x/crypto to v0.52.0
  • 6c0f9d3 fix(deps): update module golang.org/x/crypto to v0.53.0
  • 3838e89 fix(deps): update module golang.org/x/sync to v0.20.0
  • 659b55a fix(deps): update module golang.org/x/sync to v0.20.0
  • daed4cc fix(deps): update module golang.org/x/sync to v0.21.0
  • e83eb85 fix(e2e): resolve all 10 e2e test failures
  • a2bc773 fix(security): address 6 remaining audit findings (MAN-002,004,005,006,007,009)
  • a29a9d0 fix(session): cappedBuffer.Write returns original len(p); range-over-int modernization
  • 8961b01 fix(session): goroutine safety in gatedFakeSession; strengthen warning assertion
  • 33d86e3 fix(session): locked Truncated() accessor; defensive timeout fallback in RunOnce
  • 6b1c17f fix(session): wrap ctx.Err in bootSession; correct test Send timeout field
  • b14cbaa fix(sshconn): skip handshake deadline when DialTimeout is zero
  • 922432b fix: add SFTPAllowedPrefixes to integration test host config
  • 46e540f fix: address 8 HIGH-severity concurrency and durability issues (post-v1.0.0 review)
  • d595da6 fix: close SFTP path traversal and session TOCTOU vulnerabilities
  • 2b700e4 fix: evict dead pool entry on keepalive failure; identity-aware releaseFunc prevents stale-release corruption
  • aa1c243 fix: prevent SSH host addresses from leaking in MCP error messages
  • 95514a5 fix: ssh_run_once exit code race, detach 60s kill, unknown host hint
  • 3540f4b refactor(config): named constants for v2 defaults; complete CapabilitiesInfo
  • 82903d1 refactor(config): use shared fileperms.Check
  • d9c8738 refactor(session): guarantee non-nil logger; simplify Send and gcTick idioms
  • 19cfe82 refactor(sshconn): use shared fileperms.Check; inline errors.As for knownhosts
  • 946501e refactor: extract shared fileperms.Check from config and sshconn
  • 2276c4e style: apply gofmt -s to all source files
  • de788a4 style: apply gofmt -s to e2e/container_test.go and e2e/fixtures_test.go
  • 46f3c66 style: apply gofmt -s to hostkey.go (fix lint CI)
  • 3f8784d test(config): table-driven tests at 98.1% coverage
  • e0026aa test(e2e): add end-to-end test suite against a real SSH container
  • 53068d6 test(e2e): marker scheme, RunOnce, and discovery E2E tests
  • cf512d0 test(session): cappedBuffer unit tests; cover Send peek/raw/closed/cancel paths
  • df09718 test(session): validateName and newMarkerNonce tests; document stub gaps
  • 4d9654c test: per-file coverage ≥85% on all 18 files (93.2% total)