instar 1.2.1 → 1.2.3
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/dist/commands/setup.d.ts +14 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +65 -6
- package/dist/commands/setup.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +72 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +46 -46
- package/upgrades/1.2.2.md +62 -0
- package/upgrades/1.2.3.md +43 -0
- package/upgrades/side-effects/capabilities-discoverability.md +116 -0
- package/upgrades/side-effects/feat-bareword-framework-prompt.md +66 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Side-effects review — Bareword framework prompt
|
|
2
|
+
|
|
3
|
+
Per L6. Seven dimensions.
|
|
4
|
+
|
|
5
|
+
## 1. Over-block / under-block
|
|
6
|
+
|
|
7
|
+
Before: UNDER — bareword `npx instar` had no path to Codex-only setup
|
|
8
|
+
even with the underlying machinery in place. After: no over-block.
|
|
9
|
+
Subcommand explicit-flag path unchanged; non-TTY default unchanged. Only
|
|
10
|
+
the bareword on an interactive terminal gains the prompt.
|
|
11
|
+
|
|
12
|
+
## 2. Level-of-abstraction fit
|
|
13
|
+
|
|
14
|
+
Pure decision in `resolveFrameworkPromptBehavior` (exported, testable);
|
|
15
|
+
side-effectful readline interaction in `promptForFramework` (private to
|
|
16
|
+
setup.ts, only called when the decision says "prompt"). The wizard flow
|
|
17
|
+
itself is untouched; the resolved framework value flows into the same
|
|
18
|
+
existing `checkFrameworkPrerequisite` call.
|
|
19
|
+
|
|
20
|
+
## 3. Signal vs Authority compliance
|
|
21
|
+
|
|
22
|
+
The `--framework` flag (when present) and the prompt answer (when
|
|
23
|
+
prompted) are SIGNALS of operator intent. The existing
|
|
24
|
+
`checkFrameworkPrerequisite` is the single AUTHORITY for "is the chosen
|
|
25
|
+
runtime's binary present." The prompt's auto-skip-when-only-one-installed
|
|
26
|
+
behavior uses detection results from `detectClaudePath` /
|
|
27
|
+
`detectCodexPath`, which are the existing single source of truth.
|
|
28
|
+
|
|
29
|
+
## 4. Interactions with adjacent systems
|
|
30
|
+
|
|
31
|
+
- **Explicit `--framework` flag on subcommands** (PRs 3+4 + #276) —
|
|
32
|
+
unchanged. When the flag is set, the prompt is skipped entirely (the
|
|
33
|
+
decision is `opts.framework ?? prompt`).
|
|
34
|
+
- **Non-interactive `runNonInteractiveSetup`** — unchanged. That entry
|
|
35
|
+
point doesn't go through `runSetup` and never triggers the prompt.
|
|
36
|
+
- **`checkFrameworkPrerequisite`** — unchanged. Consumes the resolved
|
|
37
|
+
framework string regardless of whether it came from a flag or the
|
|
38
|
+
prompt.
|
|
39
|
+
- **CI runs (no TTY)** — unchanged. `process.stdin.isTTY` is false in
|
|
40
|
+
CI, so the prompt is bypassed and the default Claude Code behavior
|
|
41
|
+
preserved.
|
|
42
|
+
|
|
43
|
+
## 5. Rollback cost
|
|
44
|
+
|
|
45
|
+
Trivial. One readline-using function added, one decision helper added,
|
|
46
|
+
one conditional in `runSetup`'s opening lines. `git revert` restores
|
|
47
|
+
the pre-prompt bareword behavior; subcommand and CI flows unaffected.
|
|
48
|
+
|
|
49
|
+
## 6. Backwards compatibility / drift surface
|
|
50
|
+
|
|
51
|
+
Fully backward-compatible. Default behavior on non-TTY paths is
|
|
52
|
+
unchanged. Subcommand behavior is unchanged. Only interactive bareword
|
|
53
|
+
gets the new UX. Drift surface: none — the decision is centralized in
|
|
54
|
+
one pure exported function.
|
|
55
|
+
|
|
56
|
+
## 7. Authorization / Trust posture
|
|
57
|
+
|
|
58
|
+
No new authority. The prompt reads stdin and returns a string;
|
|
59
|
+
`checkFrameworkPrerequisite` and the rest of the existing wizard chain
|
|
60
|
+
handle everything downstream as they did before.
|
|
61
|
+
|
|
62
|
+
## Outcome
|
|
63
|
+
|
|
64
|
+
Ship. Closes the install/wizard portability arc's last UX gap. Pure
|
|
65
|
+
decision logic unit-tested; readline I/O verified by Justin's manual
|
|
66
|
+
end-to-end after merge.
|