Repository navigation
feat(qa): unattended agent QA mode — H2 Docker + Playwright surface gate #1827
Copy link
Copy link
Closed
Labels
8.2This issue found in 8.2 releaseThis issue found in 8.2 releaseenhancementNew feature or requestNew feature or requestqa taskHuman QA taskHuman QA tasktech-debttech debttech debt
Description
Summary Unattended agents (overnight workflows, CI helpers, PR follow-up) need a supported QA-mode path to validate user-visible surfaces with Playwright against a contained H2 Docker CMS, without relying on a developer host install (C:\Installs\Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝╬ô├▓┬ÑΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ) or treating "needs live CMS" as permanently agent-unsafe. Today we have: - Docs: dev vs QA modes Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ªΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòóΓö£ΓîÉ QA mode = all-in-docker pass/fail; automation owns build Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬╝Γö¼┬╝Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬úΓö¼┬¼ package Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬╝Γö¼┬╝Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬úΓö¼┬¼ install/image Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬╝Γö¼┬╝Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬úΓö¼┬¼ Playwright. - Module: modules/perc-qa-automation (Playwright HARD GATE for WebUI screens). - Matrix H2 smoke: matrix-install-smoke / H2 profile and install-oriented specs. - Gap: No productized, agent-callable "bring up H2 QA stack Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬╝Γö¼┬╝Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬úΓö¼┬¼ run focused Playwright for the surface under test Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬╝Γö¼┬╝Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬úΓö¼┬¼ tear down" path. Overnight agent_safe_only therefore skips Playwright / live-CMS issues instead of exercising them safely. ## Goal Agents validating a UI (or install-adjacent) surface unattended should: 1. Start (or attach to) the qa-automation H2 Docker stack for CMS. 2. Wait for health / ready. 3. Run Playwright specs for the surface under test (filtered, not always full suite). 4. Collect logs/artifacts on failure. 5. Tear down cleanly (disk / port hygiene). Dev mode (local install + bind + hot copy) remains the human fast loop. This issue is QA mode for agents. ## Related | Item | Role | |------|------| | workbench-rest-and-qa-modes.md | Direction of record (dev vs QA mode) | | modules/perc-qa-automation/AGENTS.md | Playwright HARD GATE, mode table | | #1690 | Post-P0 checklist mentions Playwright against docker/local Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ªΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòóΓö£ΓîÉ not this enablement | | #1695 | Example surface that needs live Playwright (Explorer) | | #1508 / matrix-install-smoke | RDBMS matrix cells (H2 exists; agent product UX path still missing) | | Closed #1692 | Host-install Playwright path Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ªΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòóΓö£ΓîÉ not the long-term agent path | ## Acceptance criteria - [ ] Documented one-shot entrypoint (script or perc-devctl / compose profile) that starts CMS on H2 in Docker suitable for Playwright (published URL, default admin creds, no host install required). - [ ] Health wait documented and automated (ready before tests start; clear timeout errors). - [ ] Playwright can run with env pointing only at that stack (TEST_CMS_URL / project convention) Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ªΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòóΓö£ΓîÉ no DEV_PERCUSSION_INSTALL / host path required for this mode. - [ ] Surface filtering: documented way to run a subset of specs (by path/grep/tag) for the PR surface under test. - [ ] Tear-down command or compose down that frees ports and does not leave multi-GB orphans by default. - [ ] Agent instructions updated: root/module AGENTS.md and/or night-issue workflow so unattended UI work can use this path instead of blanket-skipping Playwright. - [ ] Smoke proof: at least one reference Playwright path (e.g. login + one product screen) green against the H2 QA stack in an unattended-friendly invocation (local agent or CI job). - [ ] Failure artifacts: where screenshots/traces/logs land; how agents attach them to PRs/issues. ## Non-goals (this issue) - Full multi-RDBMS matrix (Postgres/MySQL/SQL Server/Oracle) Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ªΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòóΓö£ΓîÉ tracked elsewhere (#1508 etc.). - Replacing dev mode for human iteration. - UAT sign-off theater (#1371). ## Proposed slices (optional breakdown) 1. Entrypoint + health: H2 Docker up/down + docs. 2. Playwright wiring: env defaults + one golden unattended smoke. 3. Surface filter + agent rules: subset run + AGENTS / night-issue-prs integration. 4. CI optional job: workflow_dispatch or path-filtered optional check. ## Operator notes When agents ship work under this path, label PRs with operator:* + model:* (see .grok/workflows/README.md). Do not invent host-install-only workarounds as the product process. ## Agent progress (night-issue-prs) | Slice | Issue | Status | PR | Notes | Updated | |-------|-------|--------|-----|-------|---------| | 1 Entrypoint + health | #1927 | done | #1955 | H2 qa-up/health/down | 2026-08-05 | | 2 Playwright env + golden smoke | #1928 | done | #2072 #2154 #2070 | Children A/B/C merged; closed after acceptance verify (skip re-implement) | 2026-08-07 | | 2A TEST_CMS_URL env | #2064 | done | #2072 | Env precedence; no live CMS | 2026-08-07 | | 2B Golden smoke | #2065 | done | #2154 | Live test:golden 2 passed; antlib+CXF+modern login | 2026-08-07 | | 2C Failure artifact attach | #2066 | done | #2070 | Docs | 2026-08-07 | | 3 Surface filter + agent rules | #1929 | done | #2074 | Filter+docs shipped; rules residual #2073 | 2026-08-05 | | 3 residual AGENTS human review | #2073 | pr_opened | #2317 | Human approved rule apply; AGENTS + night-issue agent_safe QA surface filter | 2026-08-07 | | 4 Optional CI job | #1930 | done | #2096 | Optional workflow_dispatch + path-filtered; merged | 2026-08-06 | Epic note (2026-08-07): Slices 1-4 product work is on main. Residual #2073 rule apply is in PR #2317 (human-approved). After merge, epic AC for agent rules is complete — close #1827 when happy.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
8.2This issue found in 8.2 releaseThis issue found in 8.2 releaseenhancementNew feature or requestNew feature or requestqa taskHuman QA taskHuman QA tasktech-debttech debttech debt
Activity
natechadwick-intsof commentedon Aug 5, 2026
Split disposition (night operator) — PR-sized children
Do not implement full #1827 in one PR. Work proceeds as four independent, PR-sized slices. Parent stays open as the checklist/epic until all children close.
Child issues
workbench-rest-and-qa-modes.mdTEST_CMS_URLonly; no host install path); one unattended smoke (login + one screen); failure artifact locationsAGENTS.md+ night-issue workflow soagent_safecan use QA mode instead of blanket Playwright skip (human review of rule files before commit)workflow_dispatchand/or path-filtered optional job; artifact upload; non-blocking by defaultSuggested order
Parent AC mapping
TEST_CMS_URLonly (no host install)Explicit non-goals (still parent-level)
Operator labels on children
operator:grok,operator:night-issue-prs,model:grok-4.5(+ existingenhancement,qa task,8.2).Status: split-only tonight — no implementation PR from this session. Leave #1827 open until children complete.
feat(qa): #1927 H2 Docker QA entrypoint + health wait + tear-down (#1955
natechadwick-intsof commentedon Aug 5, 2026
#1928 slice A (#2064): Playwright env TEST_CMS_URL without host install — PR #2072
Unattended QA can set TEST_CMS_URL + ADMIN_PASSWORD without DEV_PERCUSSION_INSTALL. Live H2 smoke still #2065.
Operator: Grok night-issue-prs (model grok-4.5)
natechadwick-intsof commentedon Aug 5, 2026
Slice 3 progress: #1929 PR opened — #2074
Operator: Grok night-issue-prs (model grok-4.5)
docs(qa): #1928 slice C — Playwright failure artifact attach conventi…
feat(qa): #2064 Playwright TEST_CMS_URL without host install (#2072)
feat(qa): #1929 Playwright surface filter + QA mode docs
feat(qa): #1929 Playwright surface filter + QA mode docs (#1827 slice…
natechadwick-intsof commentedon Aug 6, 2026
Agent progress (2026-08-06) — slice 4 #1930
Status:
pr_opened— #2096Branch:
feat/issue-1930-optional-h2-qa-ciCommit:
ae0ed62fc4Shipped optional non-required CI:
.github/workflows/h2-qa-playwright.yml—workflow_dispatchdry-run/live + path-filtered PR wiring jobworkbench-rest-and-qa-modes.md(trigger, env, artifacts, Windows parity) + README cross-linksNot required on all PRs. Live first-green may wait on #2065 + distribution-tree package capacity on runner.
feat(qa): optional GHA workflow_dispatch for H2 QA + Playwright (#1930)…
natechadwick-intsof commentedon Aug 6, 2026
#2065 (slice 2B golden smoke) — PR opened
test:golden2 passed against freeportTEST_CMS_URLfromqa-upfeat(qa): #2065 golden unattended Playwright smoke vs H2 qa-up (#2154)
natechadwick-intsof commentedon Aug 6, 2026
Night-issue skip (2026-08-06): #2073 marked skipped in progress table.
Root
AGENTS.mdhuman-review hard gate blocks committing AGENTS / night-issue rule files until explicit human approval (e.g. rules LGTM / commit the AGENTS change). Product docs/scripts for the surface filter already landed under #1929 / #2074. Residual stays open for the human-approved rule-file apply PR.Operator: Grok night-issue-prs (model grok-4.5)
natechadwick-intsof commentedon Aug 6, 2026
Night-issue re-confirm (skip): #2073 remains blocked on human review of surface-filter rule wording (productized in #1929 / PR #2074 docs) and explicit approval to commit root/module
AGENTS.md+ night-issue workflow rule files. No rule-file PR opened by unattended agent._Operator: Grok night-issue-prs (model grok-4.5) —
natechadwick-intsof commentedon Aug 7, 2026
Agent progress (night-issue-prs) — 2026-08-07 00:56 UTC
rules LGTM/ commit AGENTS change).Operator: Grok night-issue-prs (model grok-4.5)
natechadwick-intsof commentedon Aug 7, 2026
Agent progress (night-issue-prs) — slice #1928 closed as done (disposition: skip re-implement)
Verified acceptance already on
mainvia closed children:Parent progress table updated: slice 2 / 2A / 2B / 2C → done. Remaining unattended-QA residual on this epic: #2073 only (human AGENTS rule gate).
natechadwick-intsof commentedon Aug 7, 2026
#2073 residual (AGENTS/night-issue rules): night-issue-prs skipped again — hard gate requires human rules LGTM / explicit approval before committing
AGENTS.mdor.grok/workflowsrule files. Product surface-filter already on main via #1929/#2074. Progress table row for #2073 remainsskipped._Operator: Grok night-issue-prs (model grok-4.5) —
natechadwick-intsof commentedon Aug 7, 2026
Night-issue disposition: skip (epic re-implement) — 2026-08-06
main(feat(qa): #1827 slice 1 — H2 Docker QA entrypoint + health wait + tear-down #1927/feat(qa): #1927 H2 Docker QA entrypoint + health wait + tear-down #1955, feat(qa): #1827 slice 2 — Playwright env (TEST_CMS_URL) + golden unattended smoke #1928 children + feat(qa): #2064 Playwright TEST_CMS_URL without host install #2072/feat(qa): #2065 golden unattended Playwright smoke vs H2 qa-up #2154/docs(qa): #1928 slice C — Playwright failure artifact attach conventions #2070, feat(qa): #1827 slice 3 — Playwright surface filter + agent rules for QA mode #1929/feat(qa): #1929 Playwright surface filter + QA mode docs (#1827 slice 3) #2074 filter+docs, feat(qa): #1827 slice 4 — optional CI workflow_dispatch / path-filtered QA job #1930/feat(qa): optional GHA workflow_dispatch for H2 QA + Playwright (#1930) #2096 optional CI).## Agent progresstable already correct; no change this run.natechadwick-intsof commentedon Aug 7, 2026
Agent progress — #2073 residual
Human approved applying AGENTS / night-issue QA surface-filter rules.
pr_opened)maindocs(qa): apply AGENTS/night-issue QA surface-filter rules (#2073) (#…