You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add VS Code extension with sidebar, dashboard webview, status bar, and deep linking
- Introduce `vscode-extension/` package with activity-bar sidebar, status bar integration, and dashboard webview
- Implement commands for REPL, run task, run selection/file, dashboard lifecycle, doctor, settings, and task deep linking
- Read stats and recent tasks directly from local SQLite index for offline support
- Update docs, README, ARCHITECTURE.md, and index.html to document and showcase the new extension
- Add .vscodeignore, tsconfig, tasks, and supporting files for extension build and packaging
Copy file name to clipboardExpand all lines: CHANGELOG.md
+29Lines changed: 29 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,35 @@
2
2
3
3
All notable changes to Forge are tracked here. Follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
4
4
5
+
## [1.0.0] - 2026-04-27
6
+
7
+
First stable release. The runtime, agentic loop, persistence model, permission system, sandbox, and provider abstractions are now considered stable surface area. Breaking changes from here on bump MAJOR.
8
+
9
+
### Added
10
+
-**VS Code extension** (`vscode-extension/`, published as `hoangsonw.forge-agentic-coding-cli`). First-class editor surface with an activity-bar webview, status-bar pill, command palette integration, deep-linking from any task into the dashboard's conversation view, integrated terminals for REPL / `forge run` / `forge ui start` / `forge doctor`, and an embedded dashboard webview. Reads stats directly from `~/.forge/global/index.db` so token, call, and task counts stay accurate even with no Forge process running. Onboarding flow when the runtime is missing: install via npm, custom-path override, docs link.
11
+
-**Dashboard URL deep-linking** — `?task=<id>` (or `#task=<id>`) opens the task detail view on load; `?view=<name>` jumps directly to a named view. Used by the VS Code extension's "view all" and per-task click-through, but available to any caller.
12
+
-**Plan-edit modal** in the dashboard — JSON editor pops up when you choose Edit on a plan approval; edited plans flow back through the same `interactive-host` channel as terminal edits.
13
+
-**Live markdown streaming in the dashboard** — `model.delta` events render via `requestAnimationFrame`-coalesced markdown reflow so headings, fences, and lists form up as tokens arrive instead of dumping at the end.
14
+
-**Per-task delta replay buffer** so a WebSocket client that connects mid-stream sees the tokens that were already emitted, not just future ones.
15
+
-**Cross-project task detail lookup** — `/api/tasks/:id` resolves the project automatically via the global index, with a fallback chain (explicit `?projectPath=` → `getTask().project_id` → `findProjectRoot()` → `process.cwd()`). 404 responses now include the list of paths that were tried.
16
+
-**Demos page** in the docs site (`#demos`) and a dedicated **VS Code section** (`#vscode`) on the landing page.
17
+
-**Demo recordings** for REPL, CLI, and dashboard surfaces, plus a screenshot of the VS Code extension. Drive overlay buttons on every video for users who can't load embedded MP4s.
18
+
19
+
### Changed
20
+
- Tightened dashboard markdown renderer: inline triple-backtick fences now normalised to multi-line; ordered lists honor source numbering via `<ol start="N">` and tolerate blank lines between items; per-line borders inside `<pre><code>` removed; chat-bubble whitespace tightened.
21
+
- REPL launch banner and completion block now render with the same divider/breadcrumb/summary treatment as `forge run`, so REPL turns and one-shot CLI runs look identical.
22
+
- Status-bar dashboard reachability indicator now probes `/api/status` over HTTP before flipping to "offline", eliminating false-offline blips during heavy task streams.
23
+
- Plan auto-approval bug: plans now wait for the user's decision in the UI before execution. Previously some plans were silently approved.
24
+
- Conversation rendering: TASK_COMPLETED events carry a short message; the streamed reply is no longer duplicated in the DONE block.
25
+
26
+
### Fixed
27
+
- Streaming dropping deltas due to a task-id mismatch between the UI runner and the orchestrator. Both sides now agree on the canonical `task_<hex>` id.
28
+
- "Spend $0.000" stat tile removed for local providers (Ollama / llama.cpp), where cost is always zero by design. Token totals still shown.
29
+
- Tokens stat now reflects the real lifetime sum from `model_cost_ledger` instead of the in-memory delta.
30
+
- Recent-task rows weren't clickable / showed every task as `pending` because the API field is `status` (not `state`) and `title` (not `prompt`). Field names corrected and the entire row is now the click target.
31
+
- Sidebar layout overflowed on narrow widths. Action grid uses `repeat(auto-fit, minmax(96px, 1fr))`; stats grid uses `minmax(78px, 1fr)`. Workspace card uses RTL truncation so long paths show their tail.
32
+
- VS Code "view all" button now opens the dashboard's Tasks page, not the home view.
33
+
5
34
## [0.1.0] - 2026-04-18
6
35
7
36
Initial public release. Includes the full planning spec surface area.
The same workflow, embedded in your editor. A live activity-bar sidebar with status, stats, recent tasks, and quick actions; deep-linking from any task into its conversation view; one-click dashboard webview; selection-as-task and file-as-task commands. Stats read straight from `~/.forge/global/index.db` so they stay accurate even when no server is running.
276
+
277
+

278
+
279
+
Install: `code --install-extension hoangsonw.forge-agentic-coding-cli` or [open it on the Marketplace](https://marketplace.visualstudio.com/items?itemName=hoangsonw.forge-agentic-coding-cli). See [`vscode-extension/README.md`](vscode-extension/README.md) for the full command reference.
# Tell the built-in updater to stop nagging about a broken version.
452
452
forge update ignore 0.2.0
@@ -644,6 +644,32 @@ Stable within a MAJOR. Migrations under [`src/migrations/runner.ts`](src/migrati
644
644
<!-- Newest at the top. Keep the template from
645
645
"Release-notes template" above. -->
646
646
647
+
### v1.0.0 — 2026-04-27
648
+
649
+
#### Highlights
650
+
- First stable release. Runtime, agentic loop, persistence, permissions, sandbox, and provider abstractions are now stable surface area; future breaking changes bump MAJOR.
651
+
- New first-class **VS Code extension** (`hoangsonw.forge-agentic-coding-cli`) with activity-bar webview, stats grid, recent tasks, and deep-linking from any task into the dashboard's conversation view.
652
+
-**Dashboard URL deep-linking** — `?task=<id>` opens task detail; `?view=<name>` jumps to a named view. Used by the VS Code extension and any other surface that links into the dashboard.
653
+
- Cross-project task detail lookup via `/api/tasks/:id` — resolves the project automatically from the global index.
- Healthcheck endpoint `/api/status` used by the Docker HEALTHCHECK.
496
499
500
+
### 9.1 VS Code extension
501
+
502
+
The extension at `vscode-extension/` is a sibling surface — its own npm package, its own version, its own publish pipeline. It does not import any runtime code from `src/`; instead it talks to a Forge install the user already has on `PATH` and reads from the same persisted state.
503
+
504
+
```mermaid
505
+
flowchart LR
506
+
classDef b fill:#0f172a,stroke:#38bdf8,color:#f1f5f9,rx:4,ry:4
507
+
classDef s fill:#082f49,stroke:#38bdf8,color:#e0f2fe,rx:4,ry:4
508
+
classDef d fill:#18181b,stroke:#f59e0b,color:#fef3c7,rx:4,ry:4
EXT -->|spawn forge / forge run / forge ui start| TERM
521
+
EXT -->|sqlite3 read-only| DB
522
+
EXT --> SIDEBAR
523
+
EXT --> WV
524
+
WV -->|iframe src + ?task=id| UISERVER
525
+
TERM --> FORGE
526
+
UISERVER --> DB
527
+
```
528
+
529
+
What the extension owns:
530
+
531
+
-**Activity-bar webview** with status pill, workspace meta, live stats grid, action buttons, recent tasks, and providers. Polls every 4 s when visible.
532
+
-**Status-bar item** that flips between *live* and *idle* based on `/api/status` reachability.
533
+
-**Commands** for REPL, run-task / run-selection / run-file, dashboard lifecycle, doctor, settings, copy URL, change cwd, kill all.
534
+
-**Deep linking** — clicking a recent task opens the dashboard webview with `?task=<id>`, which the SPA picks up at boot and routes straight to the conversation view.
535
+
536
+
Data sources, in order of preference:
537
+
538
+
1. The dashboard REST API (`/api/status`, `/api/tasks`, `/api/models`) when `forge ui` is running.
539
+
2. The local SQLite index (`$FORGE_HOME/global/index.db`) read in read-only mode via the system `sqlite3` CLI. This is what makes lifetime stats (tokens, calls, task counts) work even with no Forge process running.
540
+
541
+
The runtime exposes one piece of code specifically for this surface: `src/ui/server.ts → /api/tasks/:id` resolves the task's project automatically (index → projects → cwd fallback chain) so cross-project task detail lookups from the extension don't 404.
542
+
543
+
Build and publish:
544
+
545
+
```bash
546
+
cd vscode-extension && npm install && npm run build
0 commit comments