viepilot 2.45.2 → 2.45.4
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 +20 -0
- package/lib/viepilot-install.cjs +5 -3
- package/package.json +1 -1
- package/workflows/crystallize.md +30 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.45.4] - 2026-04-27
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **BUG-025**: brownfield crystallize initial mode-selection prompt ("Proceed / Run brainstorm
|
|
14
|
+
first / Cancel") was rendered as plain-text numbered list on Claude Code terminal because
|
|
15
|
+
`workflows/crystallize.md` Step 0-B had no AUQ spec for the auto-detected entry gate.
|
|
16
|
+
Fix: added adapter-aware `AskUserQuestion` block with 3 labelled options before scanner
|
|
17
|
+
execution; text fallback preserved for Cursor/Codex/Antigravity (BUG-025)
|
|
18
|
+
|
|
19
|
+
## [2.45.3] - 2026-04-25
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
- **BUG-024**: `viepilot-install.cjs` hard-coded `libFiles` list caused `viepilot-persona.cjs`,
|
|
23
|
+
`skill-registry.cjs`, `skill-installer.cjs`, and `lib/adapters/`, `lib/hooks/`,
|
|
24
|
+
`lib/domain-packs/` subdirectories to be absent from all installed instances
|
|
25
|
+
(`~/.claude/viepilot/lib/`, `~/.cursor/viepilot/lib/`, Windows equivalents).
|
|
26
|
+
Fix: replaced explicit list with dynamic `lib/` directory scan — all files and
|
|
27
|
+
subdirectories now copied automatically. Affected: `persona auto-switch/context`,
|
|
28
|
+
`scan-skills`, `install-skill`, `uninstall-skill`, adapter detection (BUG-024)
|
|
29
|
+
|
|
10
30
|
## [2.45.2] - 2026-04-25
|
|
11
31
|
|
|
12
32
|
### Enhanced
|
package/lib/viepilot-install.cjs
CHANGED
|
@@ -132,7 +132,6 @@ function buildInstallPlan(packageRoot, envSource = process.env, opts = {}) {
|
|
|
132
132
|
});
|
|
133
133
|
|
|
134
134
|
const binFiles = ['vp-tools.cjs', 'viepilot.cjs'];
|
|
135
|
-
const libFiles = ['cli-shared.cjs', 'viepilot-info.cjs', 'viepilot-update.cjs', 'viepilot-install.cjs', 'viepilot-config.cjs'];
|
|
136
135
|
const uiRoot = path.join(root, 'ui-components');
|
|
137
136
|
|
|
138
137
|
// One install loop per selected adapter (replaces cursor block + claude-code if-block).
|
|
@@ -181,8 +180,11 @@ function buildInstallPlan(packageRoot, envSource = process.env, opts = {}) {
|
|
|
181
180
|
for (const f of binFiles) {
|
|
182
181
|
steps.push({ kind: 'copy_file', from: path.join(root, 'bin', f), to: path.join(vpDir, 'bin', f) });
|
|
183
182
|
}
|
|
184
|
-
|
|
185
|
-
|
|
183
|
+
// BUG-024: dynamic lib/ scan — copies ALL files + subdirs (adapters/, hooks/, domain-packs/, etc.)
|
|
184
|
+
for (const ent of listDirEntries(root, 'lib')) {
|
|
185
|
+
const src = path.join(root, 'lib', ent.name);
|
|
186
|
+
const dest = path.join(vpDir, 'lib', ent.name);
|
|
187
|
+
steps.push(ent.isDirectory() ? { kind: 'copy_dir', from: src, to: dest } : { kind: 'copy_file', from: src, to: dest });
|
|
186
188
|
}
|
|
187
189
|
if (fs.existsSync(uiRoot)) {
|
|
188
190
|
for (const ent of listDirEntries(root, 'ui-components')) {
|
package/package.json
CHANGED
package/workflows/crystallize.md
CHANGED
|
@@ -238,6 +238,36 @@ Store all metadata for template generation.
|
|
|
238
238
|
>
|
|
239
239
|
> Ask: "Continue? (y/n)" — abort if n.
|
|
240
240
|
|
|
241
|
+
**Initial brownfield entry gate (BUG-025) — auto-detected only (no explicit `--brownfield` flag):**
|
|
242
|
+
|
|
243
|
+
When brownfield was triggered automatically (not via `--brownfield`), present the mode-selection choice **before** running the scanner:
|
|
244
|
+
|
|
245
|
+
> **Claude Code (terminal) — REQUIRED:** Call `AskUserQuestion` tool. Only fall back to text menu if the tool errors or is unavailable. AUQ spec:
|
|
246
|
+
> - question: "No brainstorm session found — this looks like an existing project. How would you like to proceed?"
|
|
247
|
+
> - header: "Brownfield Mode Detected"
|
|
248
|
+
> - options:
|
|
249
|
+
> - label: "Proceed with Brownfield Mode (Recommended)"
|
|
250
|
+
> description: "Scan codebase across 12 signal categories → auto-generate .viepilot/ artifacts"
|
|
251
|
+
> - label: "Run brainstorm first → /vp-brainstorm"
|
|
252
|
+
> description: "Capture vision/scope manually, then run /vp-crystallize to convert"
|
|
253
|
+
> - label: "Cancel"
|
|
254
|
+
> description: "Exit without changes"
|
|
255
|
+
> - multiSelect: false
|
|
256
|
+
>
|
|
257
|
+
> **Cursor / Codex / Antigravity / other:** use text menu below:
|
|
258
|
+
> ```
|
|
259
|
+
> No brainstorm session found — existing project detected.
|
|
260
|
+
> 1. Proceed with Brownfield Mode — scan across 12 signal categories → generate .viepilot/ artifacts
|
|
261
|
+
> 2. Run brainstorm first — /vp-brainstorm to capture vision/scope, then /vp-crystallize
|
|
262
|
+
> 3. Cancel — exit without changes
|
|
263
|
+
> Which would you like? (1 / 2 / 3)
|
|
264
|
+
> ```
|
|
265
|
+
>
|
|
266
|
+
> **On selection:**
|
|
267
|
+
> - "Proceed with Brownfield Mode" / "1" → continue to scanner below
|
|
268
|
+
> - "Run brainstorm first" / "2" → print: "Run `/vp-brainstorm` to capture project vision, then `/vp-crystallize` to generate .viepilot/ artifacts." and exit
|
|
269
|
+
> - "Cancel" / "3" → exit without changes
|
|
270
|
+
|
|
241
271
|
**When brownfield mode is active:**
|
|
242
272
|
1. Run the full 12-category codebase scanner (Signal Categories 1–12 below).
|
|
243
273
|
2. Produce a structured **Scan Report** (see schema at end of this step).
|