Skip to content

feat(vscode): rescue and remaster the rich webview UI onto the live core - #31

Merged
Railly merged 2 commits into
mainfrom
feat/vscode-rich-ui
Jul 23, 2026
Merged

feat(vscode): rescue and remaster the rich webview UI onto the live core#31
Railly merged 2 commits into
mainfrom
feat/vscode-rich-ui

Conversation

@Railly

@Railly Railly commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Rescues the orphaned railly.agentfiles@0.0.1 experiment and rewires it to the living core.

Backstory

An earlier experiment (living only in ~/.cursor/extensions, never committed to any repo) had the winning UI: four rich webview views with filter chips, inline search, dashboards with bars, and a marketplace with preview overlays. It imported a @agentfiles/core package frozen at the time of its build. Meanwhile #29/#30 built the isometric-but-plainer TreeView extension over the live core.

This PR merges the two: the rescued UI on top of the live shimmed core, so it gets the 18-tool scanner, the 6 new agents, and every future core fix for free.

What changed

  • panels.ts (rescued as-is, imports repointed): Library / Sessions / Dashboard / Marketplace webviews, nonce CSP, client-side filtering
  • rich-extension.ts (rescued, API-reconciled): store + all message handlers. Deltas fixed: scanAll(settings) signature, clearInstallCache moved to tool-configs, tagging call sites rewritten to the local per-item generateTags + free applyTagData
  • extension.ts now composes: rich UI first, plus the commands the old experiment lacked or had worse — multi-tool create skill (the old one hardcoded ~/.claude/skills), marketplace QuickPick, update all, remove by name, and open conversation in a full editor tab (the rich sessions view only has an inline overlay)
  • Retired: the slice-1/2 TreeViews and dashboard tab (superseded); webview.ts from the rescue was a dead predecessor of panels.ts and was dropped

Verification

  • tsc strict clean, production build green
  • Composed activate exercised under a mocked vscode module: registers exactly the 4 webview views and 8 commands, async conversation load does not throw. (Gotcha worth recording: esbuild's __toESM copies own properties, so a Proxy-based vscode mock silently yields undefined members — the mock must be a plain object.)
  • All 4 panels rendered against the live core with real machine data: 155 skill cards, 14 filter chips (the 6 new agents included), 100 sessions, 15 tools, CSP nonce present in all four
  • vsix (73.9 KB) packaged and installed into VS Code and Cursor

Rescues the orphaned railly.agentfiles 0.0.1 experiment (found only in
~/.cursor/extensions, no repo, importing a frozen @agentfiles/core)
and rewires it to the living core via the obsidian shim.

- panels.ts (rescued): the four rich webview views - Library with tool
  and type filter chips, inline search, usage/stale/heavy badges and a
  detail overlay; Sessions with search and an inline conversation
  overlay; Dashboard with stat tiles, top-skill bars, health budget
  bar, burn rate, context tax breakdown; Marketplace with live
  skills.sh search, preview overlay and install/uninstall. Nonce CSP
  throughout.
- rich-extension.ts (rescued): the store and message-handler wiring,
  reconciled to the current core API: scanAll(settings),
  clearInstallCache from tool-configs, tagAllConversations semantics
  via the local per-item generateTags plus applyTagData.
- extension.ts composes: rich UI activates first, then commands the
  old experiment lacked or had worse - multi-tool create skill flow,
  marketplace QuickPick, update all, remove by name, and open
  conversation in a full editor tab (the rich sessions view only has
  the inline overlay).
- Retired: my slice-1/2 TreeViews and dashboard tab (superseded by the
  rich views); conversations.ts trimmed to the tab panel.

Verified: tsc strict clean; composed activate registers the 4 webview
views and 8 commands under a mocked vscode module (plain-object mock,
esbuild __toESM copies own props so a Proxy mock silently fails); all
4 panels render against the live core with real data (155 skill cards,
14 filter chips including the 6 new agents, 100 sessions, 15 tools);
vsix installed into VS Code and Cursor.
@vercel

vercel Bot commented Jul 23, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agenfiles-web Ready Ready Preview, Comment Jul 23, 2026 6:59am

Dead predecessor of panels.ts, nothing imports it; panels carries its
own inline CSS.
@Railly
Railly merged commit 7d9e6b2 into main Jul 23, 2026
3 checks passed
@Railly
Railly deleted the feat/vscode-rich-ui branch July 23, 2026 06:59
Railly added a commit that referenced this pull request Jul 24, 2026
…OpenHands, Goose) (#34)

Bumps manifest, package, and versions.json to 0.8.0. Minor release:
since 0.7.5 the plugin gained six new agents and Windsurf's skills dir
(#28); the other merged PRs (#29-#31, #33) are the VS Code extension
and shared-constant work that don't change plugin runtime.

Tagging 0.8.0 triggers the release workflow (build + attestation +
GitHub release with main.js, manifest.json, styles.css).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant