Skip to content

Releases: NikiforovAll/pi-inspect

v0.5.0 — Share a snapshot via URL

20 May 10:12

Choose a tag to compare

✨ 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

v0.4.0 — Toggle resources from the dashboard

20 May 07:19

Choose a tag to compare

✨ Features

  • Enable/disable skills and prompts from the dashboard. A Toggle button appears on skill/prompt detail panes. Changes are persisted via the pi SDK (SettingsManager + DefaultPackageManager), mirroring the canonical pi config TUI behavior — including package-scoped overrides (+pattern / -pattern inside settings.packages[]).
  • Surface package-scoped disabled resources. Disabled items inside an npm package (e.g. npm:context-mode skills) now appear in the tree, not just top-level disables.
  • Pending state with restart hint. Resources that are resolved-enabled but not yet in pi's boot-frozen command map render with an orange restart pi badge so a freshly enabled skill doesn't appear to vanish.
  • Disabled prompts render under Prompts (previously lumped under Commands).

🛠 How it works

UI → POST /api/toggle → server writes a request file to ~/.pi/agent/inspect/requests/ → extension watches the dir via fs.watch, processes the toggle through the SDK, then re-captures the snapshot and broadcasts via SSE.

⚠️ Notes

  • Settings changes don't fully take effect until pi is fully restarted — pi.getCommands() is loaded once at session boot. The pending badge makes this visible.

Full diff: v0.3.0...v0.4.0

v0.3.0

19 May 18:18

Choose a tag to compare

What's new

Disabled resources are now visible

Tools, commands, and skills disabled via settings.json (disabledItems) now show up in the tree with a dimmed style, so you can see at a glance what's been turned off in the current session — not just what's active.

Prompts split into their own section

Slash commands backed by markdown prompt templates (source: "prompt") are now rendered under a dedicated Prompts group instead of being mixed in with code-driven extension commands. Distinct icon, its own filter option, its own char totals.

Before: /run, /parallel-review, /chain all sat under Commands, and you had to open the RAW panel to tell which was code vs. template.
After: Commands holds extension-backed commands, Prompts holds template-backed ones.

Group headers stay visible while scrolling

The kind row (e.g. Commands) now sticks at the top of the tree, with the source sub-group (e.g. pi-subagents) stacked just below it. Previously the sub-group covered the kind header as soon as you scrolled past it.

Commits

  • 0cbd689 feat: surface disabled resources from settings.json (#2)
  • 4d62324 feat(tree): split prompts into their own section
  • 7eed858 style(tree): keep group row sticky above subgroup
  • d408f7f chore: Bump version to 0.3.0

Full diff: v0.2.0...v0.3.0

v0.2.0

18 May 06:30

Choose a tag to compare

First tagged release since the initial drop. Highlights below.

Features

  • Vim-style keyboard navigationj/k move between cards, g/G jump to top/bottom, / focuses search, ? opens a shortcut help modal. (45f7862)
  • Search by source — search now matches the source field instead of description, so you can filter by which extension/plugin contributed an entry. (8fd98e7)
  • "View source" on detail panel — every detail view gets a GitHub button that deep-links to the originating file. (db83cde)
  • Tree view enrichments — inline descriptions next to each node plus a per-group character total to gauge prompt weight at a glance. (555d643)

Docs

  • README shows the demo image side-by-side (light + dark) and the topbar links to the GitHub repo. (759e095)

Chores

  • Refreshed demo screenshots; tidied package.json formatting.

Full Changelog: a371172...v0.2.0