diff --git a/vscode/README.md b/vscode/README.md index added2a..d93d41e 100644 --- a/vscode/README.md +++ b/vscode/README.md @@ -189,7 +189,7 @@ The webview loads **`dist/mermaid.min.js`** — the **UMD bundle** from Mermaid ## Status -**Published — v0.12.0 on the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=stylusnexus.work-plan-viewer) and [Open VSX](https://open-vsx.org/extension/stylusnexus/work-plan-viewer)** (publisher `stylusnexus`). v0.12.0 is a feature batch: the **dependency graph gains zoom / pan / fit-to-width + Export as SVG/PNG** (#216) so dense maps stay navigable (scroll-wheel + drag, or header buttons; vanilla, CSP-clean); the **Plans view auto-updates on git activity** (#287) — committing a stalled plan's declared files clears its verdict without a manual Refresh (per-repo `.git` watcher, debounced; `workPlan.plansAutoRefresh` toggle), with time-relative staleness re-evaluated on focus; a native **Suggest Next-Up (auto)** picker (#274) brings the CLI's `--auto-next` to the viewer (read-only `handoff --suggest-next` feed → multi-select confirm → audited `handoff --set-next` write), since the CLI's TTY prompt can't run under the extension; the **Plans verdict icons get a legend** (#348) — an ℹ️ title-bar button opens a self-demonstrating QuickPick decoding each icon, with plain labels in the tooltip and two sharpened shapes (stalled→clock, drift→issue-reopened); and a **gear button** (#352, last nav icon in the Tracks title bar) opens the Settings UI scoped to this extension. Requires CLI ≥ `2026.06.15` (the native auto-next picker needs the new `handoff --suggest-next`). v0.11.1 makes the **Edit Track Fields** affordances for `launch_priority` and `milestone_alignment` consistent with **New Track** (#213): editing priority now offers the same `P0`–`P3` QuickPick instead of a free-text box (so the edit path can't write arbitrary priority strings), and editing milestone offers a QuickPick of the milestones already present in the export (deduped + sorted) with a "Type a new milestone…" escape hatch and a "Clear milestone" option. v0.11.0 adds **toggle auto next-up on/off from the Set Next-Up Order… picker** (#338): the QuickPick now shows "Auto next-up: ON / OFF" items at the top (with ✓ on the current state) above a separator, writing `set-next-up --auto=on|off` through the existing confirm flow; the detail panel's "Next-up order:" row appends `· auto` when auto is enabled. v0.10.1 adds a **Set Next-Up button in the track detail panel** — a small "Set Next-Up" button inline in the "Next up:" section fires the existing `workPlan.setNext` command so the next-up flow is reachable from the detail view without right-clicking the Tracks sidebar. v0.10.0 adds per-track next-up ordering presets — **Set Next-Up Order…** command + detail-panel indicator (#326): a right-click context menu entry on any track opens a QuickPick of `flow` / `priority-driven` / `backlog` presets (plus a custom-order help and a clear option); the selected preset is written via `set-next-up --preset=` through the existing public-repo confirm flow; the active preset name appears in the detail panel's track meta when `workPlan.showNextUpPreset` is on (default true). Requires CLI ≥ `2026.06.14` for the write; degrades gracefully on older CLIs (no indicator, write unavailable). v0.9.2 hardens the detail-panel issue links: they now carry a real GitHub `href` (instead of `href="#"`) so clicking an issue number opens GitHub even if the webview script is blocked/stale/errored — previously such a click silently scrolled the panel to the top. Also adds a `font-src` CSP directive (the panel was emitting a blocked-`data:`-font console warning). v0.9.1 is a hotfix: v0.9.0 set its minimum-CLI gate one day ahead of the release (`2026.06.15` vs the `2026.06.14` CLI it shipped beside), so every updated user got a false "CLI version may be incompatible" warning — v0.9.1 corrects the gate to `2026.06.14` and adds a guard test so the gate can never again exceed the repo's own CLI `VERSION`. v0.9.0 adds GitHub-native **blocked-by / blocking** surfacing (#257, read-only): a same-repo blocked-by edge in the focused dependency graph, and an expandable ⛓ dependency disclosure on detail-panel issue rows showing ⊘ blocked-by / ⇒ blocking chips. Requires CLI ≥ `2026.06.14`. v0.8.0 adds **per-issue in-progress badge + toggle** (#271): a `work-plan:in-progress` label appears as a live badge on tracked issues in the detail panel, with a toggle action to mark or clear it; the viewer also detects in-progress automatically from a hot `feat/-`/`fix/-` branch (no label needed). Also fixes the v0.7.0 regressions carried into v0.7.1: the **Close-on-GitHub** button in the detail panel renders correctly, and the **open-plan webview** button in the Plans view no longer errors when the plan file path isn't resolvable. Requires CLI ≥ `2026.06.14`. v0.7.1 was an accessibility + polish follow-up to v0.7.0: a **dark-mode contrast pass** — the tree's status/verdict icons moved off the muted `charts.*` tints to theme-tuned, list-semantic tokens that meet WCAG non-text contrast, and the faint detail-panel action icons (Move / Close) are legible at rest — plus two small features: a **per-track open/closed progress bar** in the detail card with a `closed/total` count in the tree (#220), and an **activity-bar badge** showing blocked-track (else total-open) count (#215). Also fixes two v0.7.0 regressions: **Fetch Open Issues** now excludes already-tracked issues (a tracked issue no longer shows under Untracked), and the detail-panel **Close-on-GitHub** button renders correctly. v0.7.0 was a large feature batch that made the Plans view *act*, not just report, and hardened the GitHub path. **Plan frontmatter writes** (all confirm-gated, frontmatter-only): **Confirm Verdict** pins a human verdict to silence a false lie-gap; **Acknowledge & Save to Doc** persists a durable, shared ack; **Stamp Baseline — Watch for Drift** records the verdict and flags a once-shipped plan that silently **regressed**; plus a read-only **off-tree manifest** flag. **Track ↔ plan link**: a track's detail panel shows its linked plan's execution badge, one click to open. **GitHub-aware**: a **fast-fail "Not signed in to GitHub" banner** with a Sign-in path (no more silently-empty tree), **Fetch Open Issues** for trackless repos, and **Close Issue on GitHub** (the viewer's gated issue-close). **Push to Shared Tier** promotes a private track to the repo's shared plan branch. Requires CLI ≥ `2026.06.13`. v0.6.3 made the Tracks/Plans split self-explaining from the other side: a repo that has **tracks but no registered local clone** (no `repos:` entry) now shows in the **Plans** view as a greyed **"not registered"** row instead of being silently absent — click it to **Add Repo** (prefilled with the slug) and it becomes a scannable repo. Pairs with v0.6.2, which fixed the inverse — a **registered repo with no tracks** (e.g. a just-added `agent-armor`) showed in Plans but was missing from **Tracks**. The Tracks view renders from the lens-filtered export, and the lens filter was silently dropping the configured-repos list — so the empty-repo seeding had nothing to seed, under every lens including "All". Empty registered repos appear in Tracks again (right-click → **New Track** to start). v0.6.1 polishes the new Plans view: the **Plans** section is **collapsed by default** (Tracks stays the hot path), **"Scan All Plans"** is now a `$(telescope)` icon (no longer a magnifying-glass that read as Search) **and the empty-state itself is clickable** to run it, and the title bar is trimmed (Show-Acknowledged moved to the `…` overflow). v0.6.0 was the feature release. A new **Plans view** — a read-only second tree that surfaces plan/spec docs and their `plan-status` health, making **stalled** (a `partial` plan whose declared manifest files have gone cold — "started executing, drifted off") and **lie-gap** (scored shipped but its own phase checkboxes aren't ticked) loud across repos, with a cross-repo **"Scan All"** stalled roll-up, lazy per-repo scanning, acknowledge/dismiss, a `workPlan.stallDays` threshold setting, and click-to-open. **Registered repos are now first-class**: a configured repo appears in the sidebar even with no tracks (right-click → **New Track** to start), with **Add Repo / Remove Repo / Clear Local Path** management (clear blocking modals on the destructive actions) and honest add-repo feedback. Also new: **Open Track File** (open a track's underlying `.md`), and **pick-from-a-list** for **Move**, **Set Next-Up**, and **Add Issue to Track** (no more retyping issue numbers — pick from the known list, with filtering). Requires CLI ≥ `2026.06.13` (the Plans view + registered-repo listing need its export/plan-status fields). v0.5.1 was a small fix to the **Daily Brief** title-bar button: a clearer `$(checklist)` icon (the previous hamburger glyph read as a generic menu) and a re-entrancy guard so repeat-clicks no longer stack concurrent brief runs. v0.5.0 was a daily-driver + discoverability release: a new **Search Issues** command (title-bar `$(search)` + palette) finds issues by title across every track and the Untracked bucket with `%wildcard%` substitution (`%depends%` contains, `fix%` starts-with, `%audit` ends-with), case-insensitive, opening matches in a dedicated **Issue Search** tab grouped by repo (open-first) with click-to-open-on-GitHub and reveal-in-tree; the **Daily Brief / Re-orient / Wrap Up Session (Handoff)** verbatim-relay verbs are now runnable from the title bar and track menus; the **active lens + sort** are surfaced inline under the Tracks view title (e.g. `milestone: v2.0.0 · blocked-first`); and milestone entries in the **Select View** filter now sort numeric-aware (`v0.5.0` before `v0.10.0`). v0.4.2 fixed the **visibility × tier badge** rendering — the codicon tokens (`$(globe)`/`$(lock)`/`$(cloud)`) leaked as literal text in the tree because `TreeItem.description` is plain text and never resolves `$(icon)` syntax; the badge now uses Unicode glyphs (🌐 / 🔒 / ☁️, ⚠️ for the exposed state) so it renders as intended. v0.4.1 added the per-track **visibility × tier badge** (🔒 private / 🌐 public repo, ☁ shared tier) on every tree item — flagging the one **exposed** state where a plan committed to a *public* repo's shared tier is world-visible (pairs with the CLI's new `plan-branch` canonical-plan-branch workflow). v0.4.0 was a broad UX + accessibility pass: a **de-noised command palette** (category-namespaced commands) with clearer names (**Sync Issue States from GitHub**, **Check Label Drift**, **Add Issue to Track**), a **frequency-grouped track menu** with confirmation modals on the destructive actions, **editor-theme-adaptive** graph + detail panel (light/dark/high-contrast), a **per-milestone filter** in the detail panel, progress feedback on every write, and an accessibility sweep (distinct status-icon shapes, keyboard-operable disclosures and chips, table semantics, graph alt text). Earlier v0.3.x added the Local History command, Rename Track, milestone bands, Move Issue from Track, and cross-track dependency chips. +**Published — v0.13.0 on the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=stylusnexus.work-plan-viewer) and [Open VSX](https://open-vsx.org/extension/stylusnexus/work-plan-viewer)** (publisher `stylusnexus`). v0.13.0 adds **repo auto-focus** (#357): when the open workspace folder is a configured repo, the Tracks view defaults its lens to that repo (resolved by clone path, then git remote) so you don't read another repo's issues by accident — a manual lens choice always wins, it re-arms on folder change, and `workPlan.autoFocusRepo` (default on) turns it off. Plus a **one-click Apply on Check Label Drift** (#221): the reconcile preview now offers an **Apply reconcile** action that performs the write (through the public-repo leak guard) instead of sending you to a terminal. And a **read-only tier-duplicate advisory** (#361): when a track is left in *both* a repo's shared `.work-plan/` and the private notes tier, a ⚠ row under the repo names the `dedupe-tiers` CLI command to resolve it. CLI floor unchanged (≥ `2026.06.15`); all three degrade gracefully on an older CLI. v0.12.0 is a feature batch: the **dependency graph gains zoom / pan / fit-to-width + Export as SVG/PNG** (#216) so dense maps stay navigable (scroll-wheel + drag, or header buttons; vanilla, CSP-clean); the **Plans view auto-updates on git activity** (#287) — committing a stalled plan's declared files clears its verdict without a manual Refresh (per-repo `.git` watcher, debounced; `workPlan.plansAutoRefresh` toggle), with time-relative staleness re-evaluated on focus; a native **Suggest Next-Up (auto)** picker (#274) brings the CLI's `--auto-next` to the viewer (read-only `handoff --suggest-next` feed → multi-select confirm → audited `handoff --set-next` write), since the CLI's TTY prompt can't run under the extension; the **Plans verdict icons get a legend** (#348) — an ℹ️ title-bar button opens a self-demonstrating QuickPick decoding each icon, with plain labels in the tooltip and two sharpened shapes (stalled→clock, drift→issue-reopened); and a **gear button** (#352, last nav icon in the Tracks title bar) opens the Settings UI scoped to this extension. Requires CLI ≥ `2026.06.15` (the native auto-next picker needs the new `handoff --suggest-next`). v0.11.1 makes the **Edit Track Fields** affordances for `launch_priority` and `milestone_alignment` consistent with **New Track** (#213): editing priority now offers the same `P0`–`P3` QuickPick instead of a free-text box (so the edit path can't write arbitrary priority strings), and editing milestone offers a QuickPick of the milestones already present in the export (deduped + sorted) with a "Type a new milestone…" escape hatch and a "Clear milestone" option. v0.11.0 adds **toggle auto next-up on/off from the Set Next-Up Order… picker** (#338): the QuickPick now shows "Auto next-up: ON / OFF" items at the top (with ✓ on the current state) above a separator, writing `set-next-up --auto=on|off` through the existing confirm flow; the detail panel's "Next-up order:" row appends `· auto` when auto is enabled. v0.10.1 adds a **Set Next-Up button in the track detail panel** — a small "Set Next-Up" button inline in the "Next up:" section fires the existing `workPlan.setNext` command so the next-up flow is reachable from the detail view without right-clicking the Tracks sidebar. v0.10.0 adds per-track next-up ordering presets — **Set Next-Up Order…** command + detail-panel indicator (#326): a right-click context menu entry on any track opens a QuickPick of `flow` / `priority-driven` / `backlog` presets (plus a custom-order help and a clear option); the selected preset is written via `set-next-up --preset=` through the existing public-repo confirm flow; the active preset name appears in the detail panel's track meta when `workPlan.showNextUpPreset` is on (default true). Requires CLI ≥ `2026.06.14` for the write; degrades gracefully on older CLIs (no indicator, write unavailable). v0.9.2 hardens the detail-panel issue links: they now carry a real GitHub `href` (instead of `href="#"`) so clicking an issue number opens GitHub even if the webview script is blocked/stale/errored — previously such a click silently scrolled the panel to the top. Also adds a `font-src` CSP directive (the panel was emitting a blocked-`data:`-font console warning). v0.9.1 is a hotfix: v0.9.0 set its minimum-CLI gate one day ahead of the release (`2026.06.15` vs the `2026.06.14` CLI it shipped beside), so every updated user got a false "CLI version may be incompatible" warning — v0.9.1 corrects the gate to `2026.06.14` and adds a guard test so the gate can never again exceed the repo's own CLI `VERSION`. v0.9.0 adds GitHub-native **blocked-by / blocking** surfacing (#257, read-only): a same-repo blocked-by edge in the focused dependency graph, and an expandable ⛓ dependency disclosure on detail-panel issue rows showing ⊘ blocked-by / ⇒ blocking chips. Requires CLI ≥ `2026.06.14`. v0.8.0 adds **per-issue in-progress badge + toggle** (#271): a `work-plan:in-progress` label appears as a live badge on tracked issues in the detail panel, with a toggle action to mark or clear it; the viewer also detects in-progress automatically from a hot `feat/-`/`fix/-` branch (no label needed). Also fixes the v0.7.0 regressions carried into v0.7.1: the **Close-on-GitHub** button in the detail panel renders correctly, and the **open-plan webview** button in the Plans view no longer errors when the plan file path isn't resolvable. Requires CLI ≥ `2026.06.14`. v0.7.1 was an accessibility + polish follow-up to v0.7.0: a **dark-mode contrast pass** — the tree's status/verdict icons moved off the muted `charts.*` tints to theme-tuned, list-semantic tokens that meet WCAG non-text contrast, and the faint detail-panel action icons (Move / Close) are legible at rest — plus two small features: a **per-track open/closed progress bar** in the detail card with a `closed/total` count in the tree (#220), and an **activity-bar badge** showing blocked-track (else total-open) count (#215). Also fixes two v0.7.0 regressions: **Fetch Open Issues** now excludes already-tracked issues (a tracked issue no longer shows under Untracked), and the detail-panel **Close-on-GitHub** button renders correctly. v0.7.0 was a large feature batch that made the Plans view *act*, not just report, and hardened the GitHub path. **Plan frontmatter writes** (all confirm-gated, frontmatter-only): **Confirm Verdict** pins a human verdict to silence a false lie-gap; **Acknowledge & Save to Doc** persists a durable, shared ack; **Stamp Baseline — Watch for Drift** records the verdict and flags a once-shipped plan that silently **regressed**; plus a read-only **off-tree manifest** flag. **Track ↔ plan link**: a track's detail panel shows its linked plan's execution badge, one click to open. **GitHub-aware**: a **fast-fail "Not signed in to GitHub" banner** with a Sign-in path (no more silently-empty tree), **Fetch Open Issues** for trackless repos, and **Close Issue on GitHub** (the viewer's gated issue-close). **Push to Shared Tier** promotes a private track to the repo's shared plan branch. Requires CLI ≥ `2026.06.13`. v0.6.3 made the Tracks/Plans split self-explaining from the other side: a repo that has **tracks but no registered local clone** (no `repos:` entry) now shows in the **Plans** view as a greyed **"not registered"** row instead of being silently absent — click it to **Add Repo** (prefilled with the slug) and it becomes a scannable repo. Pairs with v0.6.2, which fixed the inverse — a **registered repo with no tracks** (e.g. a just-added `agent-armor`) showed in Plans but was missing from **Tracks**. The Tracks view renders from the lens-filtered export, and the lens filter was silently dropping the configured-repos list — so the empty-repo seeding had nothing to seed, under every lens including "All". Empty registered repos appear in Tracks again (right-click → **New Track** to start). v0.6.1 polishes the new Plans view: the **Plans** section is **collapsed by default** (Tracks stays the hot path), **"Scan All Plans"** is now a `$(telescope)` icon (no longer a magnifying-glass that read as Search) **and the empty-state itself is clickable** to run it, and the title bar is trimmed (Show-Acknowledged moved to the `…` overflow). v0.6.0 was the feature release. A new **Plans view** — a read-only second tree that surfaces plan/spec docs and their `plan-status` health, making **stalled** (a `partial` plan whose declared manifest files have gone cold — "started executing, drifted off") and **lie-gap** (scored shipped but its own phase checkboxes aren't ticked) loud across repos, with a cross-repo **"Scan All"** stalled roll-up, lazy per-repo scanning, acknowledge/dismiss, a `workPlan.stallDays` threshold setting, and click-to-open. **Registered repos are now first-class**: a configured repo appears in the sidebar even with no tracks (right-click → **New Track** to start), with **Add Repo / Remove Repo / Clear Local Path** management (clear blocking modals on the destructive actions) and honest add-repo feedback. Also new: **Open Track File** (open a track's underlying `.md`), and **pick-from-a-list** for **Move**, **Set Next-Up**, and **Add Issue to Track** (no more retyping issue numbers — pick from the known list, with filtering). Requires CLI ≥ `2026.06.13` (the Plans view + registered-repo listing need its export/plan-status fields). v0.5.1 was a small fix to the **Daily Brief** title-bar button: a clearer `$(checklist)` icon (the previous hamburger glyph read as a generic menu) and a re-entrancy guard so repeat-clicks no longer stack concurrent brief runs. v0.5.0 was a daily-driver + discoverability release: a new **Search Issues** command (title-bar `$(search)` + palette) finds issues by title across every track and the Untracked bucket with `%wildcard%` substitution (`%depends%` contains, `fix%` starts-with, `%audit` ends-with), case-insensitive, opening matches in a dedicated **Issue Search** tab grouped by repo (open-first) with click-to-open-on-GitHub and reveal-in-tree; the **Daily Brief / Re-orient / Wrap Up Session (Handoff)** verbatim-relay verbs are now runnable from the title bar and track menus; the **active lens + sort** are surfaced inline under the Tracks view title (e.g. `milestone: v2.0.0 · blocked-first`); and milestone entries in the **Select View** filter now sort numeric-aware (`v0.5.0` before `v0.10.0`). v0.4.2 fixed the **visibility × tier badge** rendering — the codicon tokens (`$(globe)`/`$(lock)`/`$(cloud)`) leaked as literal text in the tree because `TreeItem.description` is plain text and never resolves `$(icon)` syntax; the badge now uses Unicode glyphs (🌐 / 🔒 / ☁️, ⚠️ for the exposed state) so it renders as intended. v0.4.1 added the per-track **visibility × tier badge** (🔒 private / 🌐 public repo, ☁ shared tier) on every tree item — flagging the one **exposed** state where a plan committed to a *public* repo's shared tier is world-visible (pairs with the CLI's new `plan-branch` canonical-plan-branch workflow). v0.4.0 was a broad UX + accessibility pass: a **de-noised command palette** (category-namespaced commands) with clearer names (**Sync Issue States from GitHub**, **Check Label Drift**, **Add Issue to Track**), a **frequency-grouped track menu** with confirmation modals on the destructive actions, **editor-theme-adaptive** graph + detail panel (light/dark/high-contrast), a **per-milestone filter** in the detail panel, progress feedback on every write, and an accessibility sweep (distinct status-icon shapes, keyboard-operable disclosures and chips, table semantics, graph alt text). Earlier v0.3.x added the Local History command, Rename Track, milestone bands, Move Issue from Track, and cross-track dependency chips. ## Development notes diff --git a/vscode/package.json b/vscode/package.json index 692a21d..9a23ad0 100644 --- a/vscode/package.json +++ b/vscode/package.json @@ -2,7 +2,7 @@ "name": "work-plan-viewer", "displayName": "Work Plan", "publisher": "stylusnexus", - "version": "0.12.0", + "version": "0.13.0", "description": "Browse and manage GitHub issues as tracks — dependency graph, per-track detail, and read/write (slot, move, reconcile, close) in the sidebar.", "license": "MIT", "icon": "media/icon.png",