Repository navigation
Releases: henricook/agentshare
Release list
v0.3.1
Adds a Hide tool calls checkbox to the top of any session view that contains tool calls.
Ticking it hides every tool call and any message whose only content was a call, so the conversation reads on its own. On a typical session that's 142 tool calls hidden and the visible entry count dropping from 223 to 81. Sessions without tool calls show no control bar. The setting is per-view and resets on reload - nothing about the stored log or the shared link changes.
How it works - the controls are injected when a view is served rather than baked into the generated file. The stored conversation.html is untouched, existing sessions pick the feature up with no regeneration, and cclogviewer stays unforked. The script is served from /viewer-controls.js so it runs under script-src 'self', and it keys off cclogviewer's markup - if those classes ever change it renders nothing rather than breaking the page. No preference is persisted, deliberately, to keep the view origin free of client-side storage.
Upgrading - no configuration changes. One thing to know if you're working on the code: the view ETag is now the generation hash prefix plus VIEWER_CONTROLS_VERSION, and that constant must be bumped whenever public/viewer-controls.js changes, or browsers will serve a cached page with the old controls for up to an hour.
v0.3.0
Dependency refresh across the board, plus the test suite that should have been guarding it.
Dependencies - zod 3 to 4, TypeScript 5 to 7 (the native Go compiler), @hono/node-server 1 to 2, and current releases of hono, dotenv, tsx and @types/node. Base images move to node:24-alpine (node:20 passed EOL in April 2026) and golang:1.26-alpine, and the GitHub Actions are on their current majors. No vulnerabilities reported.
Three majors needed code changes:
- zod 4 removed
ZodError.errors, so environment validation reports.issues - TypeScript 6+ no longer auto-includes
@types/*, sotsconfig.jsonsetstypes: ["node"]explicitly - hono 4.13 types
c.req.param()as possibly undefined, sosanitizeIdnow acceptsstring | undefinedand the view route uses its return value
Tests - 41 tests on node:test via tsx, no new runtime dependency. Unit coverage of the ID and path sanitisers and of environment parsing (including the numeric coercion zod 4's .default() change could have silently broken), and an integration suite that boots the real server on an OS-assigned port against a temporary storage directory. That covers the upload and view round trip, every upload rejection path, ID validation and traversal payloads, generation marker invalidation and regeneration, and rate limiting including per-client keying.
Run with npm test, or npm run test:unit for the units alone. Integration tests need the cclogviewer binary; CI installs it. A new Test workflow runs typecheck and the full suite on every push and PR.
Upgrading - no configuration changes required. Note that rebuilding the image pulls cclogviewer@latest, so if upstream has moved since your last build, stored sessions will re-render on next view.