Skip to content

v0.5.0 — Share a snapshot via URL

Latest

Choose a tag to compare

@NikiforovAll NikiforovAll released this 20 May 10:12
· 1 commit to main since this release

✨ Features

  • Share a snapshot via URL. New Share button copies a self-contained link of the current session. Snapshot is deflate-raw compressed 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 $HOME prefix (C:\Users\<user>, /Users/<user>, /home/<user>, Git Bash /c/Users/<user>) is stripped from every string and from githubSources keys, 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.stringifyCompressionStream('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.ymlactions/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