@@ -7,6 +7,51 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
88## [ Unreleased]
99
10+ ## [ 0.30.3] - 2026-06-17
11+
12+ ### Fixed
13+
14+ - ** ` taskplane --version ` displayed "vundefined, initialized unknown" placeholders
15+ for ` .pi/taskplane.json ` files lacking ` version ` / ` installedAt ` fields:**
16+ Reproducible in any repo where ` .pi/taskplane.json ` exists for a non-init
17+ purpose (e.g. taskplane's own source repo, where the file carries only
18+ migration history). ` cmdVersion() ` now defensively renders only the fields
19+ that are actually present and non-empty; falls through to ` (metadata only) `
20+ when neither field is set. Cosmetic but operator-visible.
21+
22+ ### Enhanced
23+
24+ - ** ` taskplane doctor ` detects duplicate Pi-private / npm-global installs:**
25+ Pi 0.75.0 (2026-05-17) moved user-scoped pi extensions from npm's global
26+ root to ` ~/.pi/agent/npm/node_modules/ ` . Operators who had previously
27+ installed via ` npm install -g taskplane ` now have two on-disk copies that
28+ drift independently: ` pi update ` refreshes only the Pi-private one, so the
29+ system-wide CLI silently runs stale code. The new
30+ ` detectDuplicateTaskplaneInstall() ` helper in ` cmdDoctor ` identifies this
31+ state (both copies present + versions differ) and emits a WARN with both
32+ paths, both versions, and a platform-aware remediation (PowerShell snippet
33+ on Windows, bash form on Linux/macOS, both inline on either). Same-version
34+ pairs are silently tolerated. Best-effort: 5s timeout on ` npm root -g ` ,
35+ silently returns null on errors so doctor never crashes on this side
36+ check. Doctor's failure-summary line is also context-aware now: when
37+ duplication is the issue it points at ` npm uninstall -g taskplane `
38+ instead of the generic ` taskplane init ` (which was actively misleading
39+ remediation for this case).
40+
41+ ### Docs
42+
43+ - ** ` README.md ` Installation section:** documents the PATH requirement for
44+ Pi 0.75.0+ (bash/zsh + PowerShell snippets) so the ` taskplane ` CLI is
45+ callable on the shell after ` pi install npm:taskplane ` . Adds a
46+ duplication-caveat note for users who previously ran
47+ ` npm install -g taskplane ` under older docs.
48+ - ** ` docs/tutorials/install.md ` :** Reframes Option A (Global install) to
49+ explicitly steer users away from ` npm install -g taskplane ` as the
50+ primary install command, citing the Pi 0.75.0 install-location change
51+ and the duplication caveat. Expands the "taskplane not on PATH"
52+ troubleshooting section into three labeled options (npx, direct bin
53+ invocation, PATH addition) with platform-specific snippets for each.
54+
1055## [ 0.30.2] - 2026-06-17
1156
1257### Fixed
0 commit comments