From 5772086c1a7d40abb1b786e3dbf312cf22256cb7 Mon Sep 17 00:00:00 2001 From: ZenchantLive Date: Mon, 2 Mar 2026 20:51:01 -0800 Subject: [PATCH] chore: close runtime-manager rollout with verification evidence --- NEXT_SESSION_PROMPT.md | 196 +++++++++----------------------- bin/beadboard.js | 1 + tests/cli/beadboard-cli.test.ts | 2 +- 3 files changed, 54 insertions(+), 145 deletions(-) diff --git a/NEXT_SESSION_PROMPT.md b/NEXT_SESSION_PROMPT.md index 9ec295e..0140e6e 100644 --- a/NEXT_SESSION_PROMPT.md +++ b/NEXT_SESSION_PROMPT.md @@ -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: " --description="Own beadboard-05a execution" --type=task --priority=0 --label="gt:agent,role:orchestrator" -bd update beadboard-05a --status in_progress --assignee -``` +## 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 --status in_progress --assignee ` -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. diff --git a/bin/beadboard.js b/bin/beadboard.js index dec9b01..7fdbe9b 100644 --- a/bin/beadboard.js +++ b/bin/beadboard.js @@ -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'); diff --git a/tests/cli/beadboard-cli.test.ts b/tests/cli/beadboard-cli.test.ts index ae8eaac..888e60f 100644 --- a/tests/cli/beadboard-cli.test.ts +++ b/tests/cli/beadboard-cli.test.ts @@ -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/); });