✨ Features
- Share a snapshot via URL. New Share button copies a self-contained link of the current session. Snapshot is
deflate-rawcompressed and base64url-encoded into the URL hash (#s=…) — no backend, no upload, no account. Same pattern as plannotator.ai. - Static dashboard hosted on GitHub Pages at https://nikiforovall.blog/pi-inspect/. Recipients open the share link there and see the exact same tools / commands / skills / system prompt. The page makes zero network requests — everything is in the URL.
- Path redaction. Before encoding, the sender's
$HOMEprefix (C:\Users\<user>,/Users/<user>,/home/<user>, Git Bash/c/Users/<user>) is stripped from every string and fromgithubSourceskeys, in both slash flavors. Tail paths like<home>/dev/pi-inspect/...remain for context. - Static (read-only) mode. The dashboard auto-detects
#s=(or a missing local server) and switches to read-only: session-picker, refresh, cleanup, and $EDITOR actions are hidden; toggle still renders but toasts a read-only notice on click.
🛠 How it works
Share button → redactSnapshot() walks the tree replacing HOME → JSON.stringify → CompressionStream('deflate-raw') → base64url → location.hash. When generated from localhost, the link is anchored on the hosted dashboard URL so recipients have something openable. Service-worker shell list resolves relative to scope so caching works under the GH Pages subpath.
Deployment is wired through .github/workflows/pages.yml — actions/deploy-pages publishes public/ on every push to main.
⚠️ Notes
- The shared link includes the full system prompt and (redacted) cwd. Review before sending — anything you wouldn't paste in chat shouldn't go in a share link.
- Browser support:
CompressionStream('deflate-raw')requires Chrome 80+, Firefox 113+, Safari 16.4+. - Typical share-link size: ~30–50 KB after compression. Fits in messaging apps but watch URL-length limits for very large sessions.
Full diff: v0.4.0...v0.5.0