prjct-cli 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,12 +1,119 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.1.2] - 2026-04-22
4
+
5
+ Upgrade-safety pass for clients coming from 1.x or 2.1.0. The 2.1.1
6
+ release fixed the CLI surface but left two upgrade hazards that clients
7
+ could hit in the wild.
8
+
9
+ ### Fixed
10
+ - **Zombie daemon after global upgrade.** pnpm's content-addressable
11
+ store leaves the previous-version files untouched on disk when a new
12
+ version is installed globally, so the long-lived daemon kept serving
13
+ requests from the old build. The thin shim's mtime-based stale check
14
+ never fired. Daemon now reads its own `package.json` at startup,
15
+ periodically probes the globally-installed `prjct` binary
16
+ (pnpm/npm/volta/asdf paths covered), and shuts itself down on
17
+ version mismatch — the next request spawns a fresh daemon.
18
+ (`core/daemon/daemon.ts`)
19
+ - **Orphan `workflow_rules` after v1 → v2.** v1 users could attach hooks
20
+ to command verbs that v2 narrowed `HookCommand` to `[task, done,
21
+ ship, sync]`. Rules keyed on `pause/resume/reopen/next/dash/bug/idea/
22
+ linear/jira/tokens/velocity/plan` survived the upgrade as dead rows
23
+ that `prjct workflow list` still surfaced. SQLite migration v15
24
+ disables them idempotently (enabled=0, not deleted — visible with
25
+ `--include-disabled` for rename/re-enable). Only the orphans —
26
+ `done/ship/task/sync` hooks are preserved.
27
+ (`core/storage/database.ts`, migration v15)
28
+
29
+ ### Added
30
+ - Upgrade-path test coverage in
31
+ `core/__tests__/storage/upgrade-v1-to-v2.test.ts`: seeds a v1-shaped
32
+ DB, asserts orphan rules are disabled, valid hooks survive, and the
33
+ legacy task-status values (`in_progress`/`done`/etc.) still coerce
34
+ correctly through the state machine.
35
+
36
+ ### Migration notes
37
+
38
+ - Upgrading from 1.x: no action required. On first `prjct <cmd>` after
39
+ install, any stale daemon detects the version drift and exits; the
40
+ next invocation starts a clean daemon and runs migration v15 the
41
+ first time each project's DB is touched.
42
+ - Orphan rules show as `disabled` in `prjct workflow list
43
+ --include-disabled`. Rename their `command` to a v2 `HookCommand`
44
+ value (`task`/`done`/`ship`/`sync`) and re-enable if still relevant.
45
+
46
+ ## [2.1.1] - 2026-04-22
47
+
48
+ Closes the v2 migration gap shipped (incompletely) in `2.1.0` and
49
+ `2.0.0-alpha.12`. The v2 sweep deleted the v1 workflow verbs (`done`,
50
+ `pause`, `resume`, `next`, `reopen`, `dash`, `bug`, `idea`, `linear`,
51
+ `jira`, `tokens`, `velocity`, `plan`) in favour of the `status`/`capture`
52
+ primitives — but left the templates, state machine prompts, the
53
+ installed `CLAUDE.md`, and the context config pointing at ghosts. The
54
+ result was two user-visible regressions (P0 bugs):
55
+
56
+ ### Fixed
57
+ - **P0 — silent-capture data loss.** Typing `prjct done`/`prjct pause`
58
+ on an active task no longer quietly files a note called "done" into
59
+ the inbox. Removed verbs now short-circuit with a migration message
60
+ and exit 1. Matching check added on both the fallback path
61
+ (`core/index.ts`) and the daemon path (`core/daemon/daemon.ts`).
62
+ New module: `core/commands/removed-verbs.ts` is the single source of
63
+ truth for the migration map.
64
+ - **P0 — `prjct ship` degraded prereleases.** `bumpPatch` stripped the
65
+ prerelease suffix (`2.0.0-alpha.12` → `2.0.1`), corrupting the alpha
66
+ channel on every ship. Rewritten to follow semver rules:
67
+ `2.0.0-alpha.12` → `2.0.0-alpha.13`, `0.1.0-beta` → `0.1.0-beta.1`,
68
+ stable bumps unchanged. Build metadata (`+xyz`) is dropped to match
69
+ npm/pnpm behavior. Test coverage added in
70
+ `core/__tests__/services/version-service.test.ts`.
71
+
72
+ ### Changed
73
+ - State machine (`core/workflow/state-machine.ts`) prompts and
74
+ `formatNextSteps()` now emit executable `prjct …` invocations that
75
+ map to the v2 CLI. `done`/`pause`/`resume`/`reopen` are surfaced as
76
+ `prjct status <value>`. Internal `WorkflowCommand` tokens stay for
77
+ lifecycle validation.
78
+ - `canTransition()` error wording is state-transition-centric instead of
79
+ advertising non-existent CLI verbs.
80
+ - `core/config/command-context.config.json` bumped to `2.0.0` and pruned
81
+ to registered v2 verbs only. Removed mappings for
82
+ `done/dash/next/pause/resume/idea/bug/spec/feature/cleanup/design/now/history/test/work/build/review/refactor/fix`.
83
+ - `GLOBAL_CLAUDE_MD_CONTENT` (`core/infrastructure/command-installer.ts`)
84
+ rewritten: auto-activate list is the v2 surface; a concise v2
85
+ lifecycle cheat-sheet replaces the ghost-verb flow.
86
+ - `CommandMethodName` (`core/types/commands.ts`) narrowed to registered
87
+ method names. `WorkflowCommand` (`core/types/workflow.ts`) no longer
88
+ includes `next` (never was a real transition).
89
+
90
+ ### Migration (for `prjct` users upgrading from v1.x)
91
+
92
+ | v1 verb | v2 replacement |
93
+ |---|---|
94
+ | `prjct done` | `prjct status done` |
95
+ | `prjct pause` | `prjct status paused` |
96
+ | `prjct resume` | `prjct status active` |
97
+ | `prjct reopen` | `prjct status active` (on completed task) |
98
+ | `prjct next` | `prjct status` |
99
+ | `prjct dash` | `prjct status` + web dashboard |
100
+ | `prjct bug "…"` | `prjct capture "…" --tags bug` |
101
+ | `prjct idea "…"` | `prjct capture "…" --tags idea` |
102
+ | `prjct linear …` / `prjct jira …` | MCP server (`prjct seed list`) |
103
+ | `prjct tokens` / `prjct velocity` / `prjct plan` | removed |
104
+
105
+ ### Operator note
106
+
107
+ Upgrading from `1.x` while a long-running daemon is alive may leave a
108
+ stale process bound to the socket. Run `prjct daemon stop` once after
109
+ install, or kill the pid in `~/.prjct-cli/run/daemon.pid`.
110
+
3
111
  ## [2.1.0] - 2026-04-22
4
112
 
5
113
  ### Features
6
114
 
7
115
  - current work
8
116
 
9
-
10
117
  ## [2.0.0-alpha.12] - 2026-04-21
11
118
 
12
119
  Summary of the alpha.6 → alpha.12 arc and the dead-code / harness sweep