No description
Find a file
changukyu 0bfa30d7f5 test: add Playwright E2E harness for operator GUI with decision-flow spec
Introduce a reusable browser-test harness under tests/operator_gui/:
- conftest.py: shared fixtures (operator_server, browser with graceful skip,
  operator_page with screenshot-on-failure artifacts)
- pages/: OperatorWorkbench Page Object encapsulating selectors and actions
- refactor test_browser_smoke.py onto the fixtures + POM (drops duplicated
  server/browser plumbing)
- test_decision_flow.py: approve/hold/reject E2E against the real server,
  covering the reject-requires-memo guard and decision persistence

Pin playwright in requirements-dev.txt (Chromium bundled offline for the
air-gapped target) and ignore the artifacts/ screenshot dir.
2026-06-21 21:10:22 +09:00
docs docs: mark god-file split complete in remediation plan 2026-06-20 22:36:02 +09:00
src/rights_filter refactor: drop unused imports left by the god-file split (pyflakes-clean) 2026-06-20 22:42:19 +09:00
tests test: add Playwright E2E harness for operator GUI with decision-flow spec 2026-06-21 21:10:22 +09:00
web/operator-gui fix: reject protocol-relative and backslash URLs in safeUrl 2026-06-20 18:47:13 +09:00
.env.example fix: harden operator HTTP server 2026-06-20 18:18:54 +09:00
.gitignore test: add Playwright E2E harness for operator GUI with decision-flow spec 2026-06-21 21:10:22 +09:00
package.json chore: initial commit of copyrighter (rights_filter) 2026-06-09 09:50:31 +09:00
requirements-dev.txt test: add Playwright E2E harness for operator GUI with decision-flow spec 2026-06-21 21:10:22 +09:00
requirements.txt chore: pin runtime dependencies for offline air-gapped install 2026-06-20 18:19:08 +09:00
run_copyrighter_server.py chore: initial commit of copyrighter (rights_filter) 2026-06-09 09:50:31 +09:00