From e3eeb6cd519b0004618eeaa4e95df2b6c23b1165 Mon Sep 17 00:00:00 2001 From: McAmner Date: Wed, 5 Aug 2026 15:30:46 +0200 Subject: [PATCH 1/2] test(dashboard): isolate forced color check --- tests/panel-color-smoke.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/panel-color-smoke.sh b/tests/panel-color-smoke.sh index 98f58587..64a4b045 100755 --- a/tests/panel-color-smoke.sh +++ b/tests/panel-color-smoke.sh @@ -174,7 +174,10 @@ echo "[8/8] the dashboard header keeps its colour through a command substitution # # Checked by rendering the banner the way print_dashboard_header does, not by # reading the guard: the two files have to agree, and only running it shows that. -dashboard_banner="$(MQ_DASHBOARD_FORCE_COLOR=1 bash \ +# Isolate this positive colour assertion from a host-level NO_COLOR setting. +# NO_COLOR must still win in normal use; this step specifically proves the +# internal capture path used by print_dashboard_header. +dashboard_banner="$(NO_COLOR='' MQ_DASHBOARD_FORCE_COLOR=1 bash \ "$ROOT/ui/ascii/mqlaunch-dashboard-v7.1.sh" "MQ" "test" "ONLINE" 2>/dev/null \ | grep -a "READY //" || true)" if [[ -z "$dashboard_banner" ]]; then From bd6e3e47b478192b25034ccfb40a4ed0f36588d9 Mon Sep 17 00:00:00 2001 From: McAmner Date: Wed, 5 Aug 2026 19:39:22 +0200 Subject: [PATCH 2/2] docs(roadmap): close v2.0.1 status --- ROADMAP.md | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 85c6b0de..016f3ee5 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ # Roadmap -Current version: 2.0.0 +Current version: 2.0.1 ## Current direction @@ -14,7 +14,7 @@ v2.0.0 — Runtime Authority and Command Surface Governance v1.0.1 established the release-readiness baseline: version, README badge, changelog, and the release gate agree, and the repo can be shipped from a known-good state. That work is done. v2.0.0 is a different problem — runtime authority and drift prevention — and it is about removing ambiguity rather than adding capability. -v2.0.0 shipped on 2026-07-28. Every P0 and P1 block below is Done and its Definition of Done is closed against the tree, with the two stack-level checks noted as out of this repo's reach. What remains is P2 and P3: delegation polish, operator experience, and compatibility cleanup. None of it is release-blocking. +v2.0.0 shipped on 2026-07-28. Every P0–P3 block below is Done and its Definition of Done is closed against the tree, with the stack-level checks noted as out of this repo's reach. v2.0.1 is the current maintenance release; no roadmap implementation remains open in this repo. The goal is not to add more shortcuts, more menus, or more shell logic. The goal is to make `mqlaunch` feel like one clear, predictable product surface. @@ -1038,7 +1038,7 @@ demand, which is what `gated` means: they cannot drift without failing CI. splitting a long menu into submenus, which is the fix, could never improve the number. - * [ ] <= 190 total options — **retire this target.** It is 301 now against 246 + * [x] Retire the <= 190 total-options target. It is 301 now against 246 before, and the increase is not regression. Two thirds of it is the widened measurement seeing four more menu files and the multi-line arms it used to skip; the rest is that every submenu adds a parent row and a Back arm of its @@ -1216,7 +1216,7 @@ remain forever. contributor reading it learns where the concern moved rather than that it disappeared. -* [ ] Remove only after: +* [x] Remove only after: * [x] runtime authority is stable — freeze gate green with **0** compat edges * [x] command registry drift tests are green — `command-registry-smoke.sh` @@ -1275,31 +1275,31 @@ terms rather than forced by a move. ## v2.0.0 Non-goals -* [ ] Do not add more menu items just because a command exists. +* [x] Do not add more menu items just because a command exists. * Better product means clearer choices, not more choices. -* [ ] Do not move orchestration logic from `mq-agent` into shell. +* [x] Do not move orchestration logic from `mq-agent` into shell. * `mqlaunch` delegates. -* [ ] Do not call `mq-mcp` directly when `mq-agent` owns the workflow. +* [x] Do not call `mq-mcp` directly when `mq-agent` owns the workflow. * Keep the stack boundary clean. -* [ ] Do not implement memory promotion in shell. +* [x] Do not implement memory promotion in shell. * Memory promotion belongs behind reviewed `mq-agent` / `mqobsidian` flows. -* [ ] Do not introduce hidden AI fallbacks for unknown commands. +* [x] Do not introduce hidden AI fallbacks for unknown commands. * Unknown commands should fail clearly. -* [ ] Do not make all commands JSON-capable by default. +* [x] Do not make all commands JSON-capable by default. * JSON must be stable and schema-backed. -* [ ] Do not remove legacy paths before the new runtime authority is proven. +* [x] Do not remove legacy paths before the new runtime authority is proven. --- @@ -1536,13 +1536,14 @@ step in the `Quality` workflow, so these are gates, not local habits. * [x] Release-check is READY. — `mqlaunch release-check --json` returns `status: READY` with no blockers -Deliberately not checked here, because this repo cannot prove them: +External ownership assertions, deliberately not represented as completion +checkboxes because this repo cannot prove them: -* [ ] `mq-agent` still owns orchestration. -* [ ] `mq-mcp` still owns execution/review tools. -* [ ] `mqobsidian` still owns durable truth and memory. -* [ ] `repo-signal` still owns repo readiness. -* [ ] `mq-hal` still owns local operator summaries. +* `mq-agent` still owns orchestration. +* `mq-mcp` still owns execution/review tools. +* `mqobsidian` still owns durable truth and memory. +* `repo-signal` still owns repo readiness. +* `mq-hal` still owns local operator summaries. `macos-scripts` enforces its own side of the boundary — it delegates rather than reimplements, and the boundary tests above fail if that stops being @@ -1550,8 +1551,8 @@ Deliberately not checked here, because this repo cannot prove them: their trees, not this one. Ticking these from here would be asserting something unverified. -* [ ] Contract-check is READY. -* [ ] Stack-preflight has 0 blockers. +* Contract-check is READY. +* Stack-preflight has 0 blockers. Neither is a `mqlaunch` command: both return `Unknown command`. They are stack-level checks that belong to whoever owns them, and this repo has no way