Skip to content

feat(vscode-ail-chat): toggle side panel — run history + pipeline steps#173

Merged
AlexChesser merged 1 commit into
mainfrom
feat/167-side-panel
Apr 23, 2026
Merged

feat(vscode-ail-chat): toggle side panel — run history + pipeline steps#173
AlexChesser merged 1 commit into
mainfrom
feat/167-side-panel

Conversation

@AlexChesser
Copy link
Copy Markdown
Owner

Closes #167. Depends on #172 (#166).

Summary

  • RunHistoryProvider — calls ail logs --format json --limit 100 to list past runs; no direct file access; refresh triggered by pipelineCompleted event from ChatViewProvider; openRunLog command calls ail log <runId> and opens output as a markdown document
  • PipelineStepsProvider — parses active pipeline YAML (via the existing yaml dep); top-level steps only; sub-pipeline references render as single node with filename; error node on missing/malformed YAML or passthrough mode; openStep reveals the id: line in the editor
  • toggleInfoPanel command — flips ail-chat.panelVisible context key; historyView and stepsView are gated on this key in package.json so they appear/disappear without disposal; toggle button in chat view title bar via menus["view/title"]
  • ChatViewProvider wired: calls historyProvider.refresh() on pipelineCompleted, stepsProvider.refresh() on pipeline change
  • All binary calls are injectable for unit testing; no direct file system access for log data

Test plan

  • Toggle button in chat view title bar → Run History and Pipeline Steps panels appear; toggle again → disappear
  • Run a prompt → Run History refreshes and shows the new entry
  • Click a run entry → VS Code opens the run log as a markdown document
  • Load a multi-step pipeline → Pipeline Steps shows top-level steps; click a step → YAML opens at that id: line
  • Sub-pipeline reference → renders as single node with filename label
  • Malformed YAML → error node, no throw
  • No pipeline loaded → Pipeline Steps shows "No pipeline loaded" node
  • npm test → 200 tests passing

…ps (#167)

- RunHistoryProvider: calls `ail logs --format json --limit 100` to populate
  tree; refresh() triggered by ChatViewProvider on pipelineCompleted event;
  openRunLog command calls `ail log <runId>` and opens result as markdown doc;
  injectable RunLogFn for unit tests; setBinaryPath() for async binary resolution
- PipelineStepsProvider: parses active pipeline YAML via yaml package;
  top-level steps only; sub-pipeline references show filename label;
  error node on missing/malformed pipeline; openStep reveals id: line in editor
- toggleInfoPanel command flips ail-chat.panelVisible context key;
  historyView and stepsView gated on ail-chat.panelVisible in package.json;
  toggle button in chat view title bar via menus.view/title
- ChatViewProvider: wired to call historyProvider.refresh() on pipelineCompleted,
  stepsProvider.refresh() on pipeline change
- 18 new unit tests (200 total, all passing)
@AlexChesser AlexChesser force-pushed the feat/167-side-panel branch from aeaf4a4 to 834f894 Compare April 23, 2026 02:02
@AlexChesser AlexChesser merged commit 230d886 into main Apr 23, 2026
6 checks passed
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.

feat(vscode-ail-chat): toggle side panel — run history + pipeline steps trees [Unit 4]

1 participant