chore: close runtime-manager rollout with verification evidence

This commit is contained in:
ZenchantLive 2026-03-02 20:51:01 -08:00
parent 6fbd6329b4
commit 5772086c1a
3 changed files with 54 additions and 145 deletions

View file

@ -1,159 +1,67 @@
# Next Session: Power Through [EPIC] Global BeadBoard Installer + Runtime Launch (`beadboard-05a`)
# Next Session: Runtime Manager Rollout Complete (beadboard-vyt)
## Mission
## What Changed (2026-03-03)
Complete `beadboard-05a` end-to-end with strict TDD and evidence-first closeout.
`beadboard-vyt` is completed and closed.
This epic implements a single cross-platform BeadBoard installer system (Windows/Linux/macOS wrappers over one shared contract), global `bb`/`beadboard` command availability, runtime launcher behavior, and driver-skill detection-only remediation messaging.
Delivered across phases 0-8:
1. Runtime manager ADR + contract alignment
- `docs/adr/2026-03-03-runtime-manager-global-install.md`
- `docs/adr/2026-03-03-global-installer-contract-and-manifest.md`
2. Runtime manager library
- `src/lib/runtime-manager.ts`
3. Runtime-aware launcher metadata
- `install/beadboard.mjs`
4. Wrapper migration to runtime metadata + atomic shim rewrite
- `install/install.sh`
- `install/install.ps1`
5. Global CLI entrypoint (`doctor`, `self-update`, `uninstall`)
- `bin/beadboard.js`
- `src/cli/beadboard-cli.ts`
6. Driver remediation copy alignment (npm-global first)
- `skills/beadboard-driver/scripts/lib/driver-lib.mjs`
- `skills/beadboard-driver/scripts/session-preflight.mjs`
7. CI/docs rollout updates
- `.github/workflows/installer-smoke.yml`
- `README.md`
- `docs/ops/global-install-rollout.md`
## Non-Negotiable Context
## Verification Evidence
1. BeadBoard global install is for humans/operators.
2. Driver skill does not install BeadBoard; it only checks install/discovery and proceeds.
3. Bead hierarchy in this epic must stay `beadboard-05a.x(.x)` style.
4. Use `bd` as source of truth; no direct JSONL writes.
5. Evidence before completion claims.
Focused TDD/acceptance tests added and passing:
1. `tests/docs/runtime-manager-adr-contract.test.ts`
2. `tests/lib/runtime-manager.test.ts`
3. `tests/scripts/beadboard-launcher-runtime.test.ts`
4. `tests/scripts/install-legacy-migration.test.ts`
5. `tests/cli/beadboard-cli.test.ts`
6. Updated installer/driver/docs/ci contract tests all passing.
## First 10 Minutes (Start From Scratch)
Full gates run in-session:
1. `npm run typecheck` -> pass
2. `npm run lint` -> fail outside rollout scope (known pre-existing `.beads/fix.js` and `.beads/fix2.js` errors)
3. `npm run test` -> pass (full explicitly enumerated suite)
Run exactly:
Targeted acceptance checks run and passing:
1. `node --import tsx --test tests/lib/runtime-manager.test.ts`
2. `node --import tsx --test tests/scripts/beadboard-launcher-runtime.test.ts`
3. `node --import tsx --test tests/scripts/install-legacy-migration.test.ts`
4. `node --import tsx --test tests/skills/beadboard-driver/resolve-bb.test.ts`
```bash
cd /mnt/c/Users/Zenchant/codex/beadboard
## Open Risks
# 1) Read hard memory / contract memory
bd show beadboard-116 beadboard-60a beadboard-zas beadboard-6fv beadboard-at4
1. Global lint remains non-green due known unrelated `.beads/fix.js` and `.beads/fix2.js` rule violations.
2. Repo remains broadly dirty from unrelated concurrent work; commits in this session were intentionally scoped by file selection.
# 2) Load recent context
bd query "status=closed" --sort closed --reverse --limit 20
bd ready -n 25
## Next Bead
# 3) Inspect epic + task tree
bd show beadboard-c70 beadboard-05a
bd dep tree beadboard-05a
Run `bd ready` and pick top priority from ready queue; likely quality/stabilization follow-up around existing global lint/test drift if requested.
# 4) Create your session agent bead and claim work
bd create --title="Agent: <role-name>" --description="Own beadboard-05a execution" --type=task --priority=0 --label="gt:agent,role:orchestrator"
bd update beadboard-05a --status in_progress --assignee <your-agent-bead-id>
```
## Skills Used This Session
## Required Skills To Use
1. `executing-plans`
2. `test-driven-development`
3. `verification-before-completion`
Use these skills explicitly during implementation:
1. `using-superpowers`
2. `beadboard-driver`
3. `test-driven-development`
4. `verification-before-completion`
5. `linus-beads-discipline`
6. `writing-plans` (if you need to re-slice tasks before coding)
## Latest Closed Beads (Most Relevant)
Recent close context that matters here:
- `beadboard-x1y` - Hide Closed regression fix (epic visibility bug)
- `beadboard-om4` - [MEMORY] Stale UI parity triage order
- `beadboard-cyk` - [MEMORY] HideClosed invariants
- `beadboard-btt` - Driver install check contract + remediation messaging
- `beadboard-i0q` - Global skill project-context contract
Current open execution epic:
- `beadboard-05a` - `[EPIC] Global BeadBoard Installer + Runtime Launch`
## Exact Task IDs For Execution
Work this exact tree:
- `beadboard-05a.1` Installer Contract: canonical manifest + shared semantics
- `beadboard-05a.1.1` Installer Contract ADR
- `beadboard-05a.1.2` Manifest Schema + Validation
- `beadboard-05a.2` Windows installer wrapper
- `beadboard-05a.2.1` Windows one-liner + PATH contract
- `beadboard-05a.3` beadboard launcher (start/open/status)
- `beadboard-05a.4` Linux/mac installer wrapper
- `beadboard-05a.5` Driver detection alignment
- `beadboard-05a.6` Installer CI + smoke tests
- `beadboard-05a.7` Installer docs + operator quickstart
Execution order is dependency-driven; do not bypass.
## Important Files To Read First
Read these before coding:
1. `/mnt/c/Users/Zenchant/codex/beadboard/AGENTS.md`
2. `/mnt/c/Users/Zenchant/codex/beadboard/skills/beadboard-driver/SKILL.md`
3. `/mnt/c/Users/Zenchant/codex/beadboard/skills/beadboard-driver/scripts/session-preflight.mjs`
4. `/mnt/c/Users/Zenchant/codex/beadboard/skills/beadboard-driver/scripts/diagnose-env.mjs`
5. `/mnt/c/Users/Zenchant/codex/beadboard/skills/beadboard-driver/scripts/resolve-bb.mjs`
6. `/mnt/c/Users/Zenchant/codex/beadboard/skills/beadboard-driver/scripts/lib/driver-lib.mjs`
7. `/mnt/c/Users/Zenchant/codex/beadboard/tools/bb.ts`
8. `/mnt/c/Users/Zenchant/codex/beadboard/scripts/bb-init.mjs`
9. `/mnt/c/Users/Zenchant/codex/beadboard/package.json`
10. `/mnt/c/Users/Zenchant/codex/beadboard/docs/adr/2026-02-14-beadboard-driver-skill-and-bb-resolution.md`
Also note current state:
- `install/` directory does not yet exist; this epic will introduce it.
## Strict TDD Execution Flow (Per Task)
For every `beadboard-05a.x` task:
1. `bd update <task-id> --status in_progress --assignee <your-agent-bead-id>`
2. Write failing test(s) first.
3. Run focused test and confirm red for correct reason.
4. Implement minimum code to pass.
5. Re-run focused tests (green).
6. Run broader relevant suite.
7. Record evidence in notes:
- commands run
- pass/fail output summary
8. Close only after evidence is recorded.
Do not claim complete without fresh command output.
## Verification Gates
Before closing each code-changing bead and before epic close:
```bash
npm run typecheck
npm run lint
npm run test
```
If non-epic unrelated failures appear, cite exact failing file/test in bead notes and proceed transparently.
## Implementation Guardrails
1. Keep installer architecture unified: one canonical manifest contract + thin OS wrappers.
2. Keep skill boundary strict: detection/remediation only, no install side effects.
3. Preserve Windows support as mandatory while implementing Linux/mac parity.
4. Keep user-facing install/docs copy simple and explicit.
5. Do not resurrect deferred legacy tasks (`beadboard-ydu`, `beadboard-27u`, etc.); use `beadboard-05a.x` tree only.
## Expected Deliverables At Epic Close
1. New installer contract + manifest definition.
2. `install.ps1` and `install.sh` wrappers aligned to the same manifest semantics.
3. Global `bb` + `beadboard` command behavior implemented.
4. `beadboard` launcher behavior: start/open/status contract.
5. Driver detection messaging updated for platform install remediation.
6. CI/smoke tests for install/reinstall/failure modes.
7. Operator docs with one-liners and runtime command behavior.
8. `bd` notes/close reasons with full verification evidence.
## Session Landing Checklist
Before handing off:
1. `bd ready` and confirm unblocked next steps are accurate.
2. Update `NEXT_SESSION_PROMPT.md` with what changed, verified commands, risks, and exact next task.
3. Memory review:
- if reusable new rule: create/supersede canonical memory bead
- else add note: "Memory review: no new reusable memory."
4. Close your session agent bead.
## Memory Review
Memory review completed: no new reusable memory created.

View file

@ -1,4 +1,5 @@
#!/usr/bin/env node
/* eslint-disable @typescript-eslint/no-require-imports */
const { spawnSync } = require('node:child_process');
const path = require('node:path');

View file

@ -18,5 +18,5 @@ test('self-update returns explicit placeholder result', async () => {
test('uninstall requires --yes', async () => {
const out = await runCli(['uninstall', '--json']);
assert.equal(out.ok, false);
assert.match(out.error, /--yes/);
assert.match(String(out.error), /--yes/);
});