[enhancement] Phalanx playbook locked with no visible unlock affordance #17

Closed
opened 2026-09-23 14:59:58 +00:00 by Mark · 1 comment
Owner

UX gap.

In-mission PLAYBOOKS panel shows 6 playbooks: Breach & Clear, Overwatch Line, Pincer, Hunt, Fallback, Phalanx. Phalanx is grayed out with a padlock icon and is unclickable. The research tree (Strategic View) shows that Aegis Doctrine unlocks the Phalanx playbook — but the in-mission playbook panel doesn't say so. A new player sees a locked button with no path to unlock visible.

Acceptance:

  • Hovering or inspecting the locked Phalanx button shows a tooltip: "Unlocks via research: Aegis Doctrine (3 data shards, requires Trauma Nanites)."
  • Or: a small "🔒 via Aegis Doctrine" sub-label on the button.

Refs: Playwright play test 2026-09-23, screenshot at /tmp/ct_test_07_sim_ran_5s.png.

**UX gap.** In-mission PLAYBOOKS panel shows 6 playbooks: Breach & Clear, Overwatch Line, Pincer, Hunt, Fallback, Phalanx. **Phalanx** is grayed out with a padlock icon and is unclickable. The research tree (Strategic View) shows that **Aegis Doctrine** unlocks the Phalanx playbook — but the in-mission playbook panel doesn't say so. A new player sees a locked button with no path to unlock visible. **Acceptance:** - Hovering or inspecting the locked Phalanx button shows a tooltip: "Unlocks via research: Aegis Doctrine (3 data shards, requires Trauma Nanites)." - Or: a small "🔒 via Aegis Doctrine" sub-label on the button. Refs: Playwright play test 2026-09-23, screenshot at `/tmp/ct_test_07_sim_ran_5s.png`.
Author
Owner

Shipped in commit ccdfacc on main:

Added visible affordance for the locked Phalanx playbook button.

Changes:

  • web/js/ui.js — playbook panel: when locked, append a small 🔒 via Aegis Doctrine sub-label under the button text. The hover tooltip now reads Unlocks via research: Aegis Doctrine (3 data shards, requires Trauma Nanites) — pulled from the existing RESEARCH table so cost + prereqs show up automatically for any future locked playbook.
  • web/css/style.css — .playbook-lock-note styling (small dim text) + override so the sub-label stays visible even when the parent button is in disabled state.

Acceptance:

  • Hover Phalanx → tooltip shows full unlock path with cost and prereqs. ✓
  • Visual sub-label 🔒 via Aegis Doctrine is rendered under the locked button. ✓

Verification (local make ci): all 7 Node smokes + gdlint + Playwright UI smoke (which exercises ui.js directly: title render, mission buttons, thumbnail paint, locked overlay, DEPLOY flow, sim loop, no console errors) + Godot headless import — PASS.

Remote CI note: the Forgejo Actions run on ccdfacc reports failure because of a pre-existing workflow issue: actions/setup-python@v5 fails against the node:20-bookworm runner image with The version '3.12' with architecture 'x64' was not found for this operating system. The step fails before any of our smoke/Playwright/Godot steps can run, so they get skipped via the default success() guard. This affects every cybertactics push since the workflow was set up — same red status on issues #5–#16. Not introduced by this change. Filing a follow-up card for the workflow fix.

Refs: Playwright play test 2026-09-23, /tmp/ct_test_07_sim_ran_5s.png.

**Shipped in commit `ccdfacc` on `main`:** Added visible affordance for the locked Phalanx playbook button. **Changes:** - `web/js/ui.js` — playbook panel: when locked, append a small `🔒 via Aegis Doctrine` sub-label under the button text. The hover tooltip now reads `Unlocks via research: Aegis Doctrine (3 data shards, requires Trauma Nanites)` — pulled from the existing `RESEARCH` table so cost + prereqs show up automatically for any future locked playbook. - `web/css/style.css` — `.playbook-lock-note` styling (small dim text) + override so the sub-label stays visible even when the parent button is in disabled state. **Acceptance:** - Hover Phalanx → tooltip shows full unlock path with cost and prereqs. ✓ - Visual sub-label `🔒 via Aegis Doctrine` is rendered under the locked button. ✓ **Verification (local `make ci`):** all 7 Node smokes + gdlint + Playwright UI smoke (which exercises `ui.js` directly: title render, mission buttons, thumbnail paint, locked overlay, DEPLOY flow, sim loop, no console errors) + Godot headless import — PASS. **Remote CI note:** the Forgejo Actions run on `ccdfacc` reports `failure` because of a pre-existing workflow issue: `actions/setup-python@v5` fails against the `node:20-bookworm` runner image with `The version '3.12' with architecture 'x64' was not found for this operating system`. The step fails before any of our smoke/Playwright/Godot steps can run, so they get skipped via the default `success()` guard. This affects every cybertactics push since the workflow was set up — same red status on issues #5–#16. Not introduced by this change. Filing a follow-up card for the workflow fix. Refs: Playwright play test 2026-09-23, `/tmp/ct_test_07_sim_ran_5s.png`.
Mark closed this issue 2026-09-24 16:17:20 +00:00
Sign in to join this conversation.
No description provided.