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 +108 -1
- package/dist/bin/prjct-core.mjs +209 -223
- package/dist/daemon/entry.mjs +153 -167
- package/dist/mcp/server.mjs +11 -11
- package/package.json +1 -1
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
|