Files
headquarter/openspec/config.yaml
T
alex 62d1bdc462 feat: multi-session terminal frontend UI + tests (PR 3)
- Add TerminalSessionTabs component with status dots, rename, close, max-5 limit
- Add 7 component tests for tab rendering, selection, close, rename
- TerminalComponent: sessionId prop, forwardRef with fit() method
- TerminalPage: multi-session orchestration, tab switching, auto-create default
- Fullscreen mode: Alt+Shift+F toggle, auto-hide tabs, Esc exit
- Keyboard shortcuts: Alt+Shift+N/W/ArrowLeft/ArrowRight/R
- Add CSS for tabs, fullscreen, mobile responsive
- Update useTerminalSessions hook for session CRUD
- terminal_manager.py: lookup by internal session_id fallback

Quality gates: tsc --noEmit clean, vitest (7/7 new tests passed), pytest (182 passed)
2026-05-28 13:35:45 +02:00

76 lines
2.7 KiB
YAML

strict_tdd: true
context: |
headquarter-e2e is a Node.js/TypeScript, Node.js/TypeScript ESM, React, Python project.
Detected markers: .opencode/package.json, .opencode/npm package manager, e2e/package.json, e2e/npm package manager, apps/web/package.json, apps/web/tsconfig.json, apps/web/npm package manager, Makefile.
Package managers: npm.
Additional evidence: Test-like files detected (210); examples: apps/api/.venv/lib/python3.14/site-packages/greenlet/tests/__init__.py, apps/api/.venv/lib/python3.14/site-packages/greenlet/tests/_test_extension.c, apps/api/.venv/lib/python3.14/site-packages/greenlet/tests/_test_extension.cpython-314-x86_64-linux-gnu.so, apps/api/.venv/lib/python3.14/site-packages/greenlet/tests/_test_extension_cpp.cpp, apps/api/.venv/lib/python3.14/site-packages/greenlet/tests/_test_extension_cpp.cpython-314-x86_64-linux-gnu.so.
Primary test command: make test.
Unit tests: package script (cd e2e && npm test); Vitest (cd apps/web && npm test); pytest (pytest); pytest via Makefile (make test).
Integration tests: Testing Library (cd apps/web && npm test).
E2E tests: Playwright (cd e2e && npx playwright test).
rules:
proposal:
require_problem_statement: true
spec:
require_acceptance_criteria: true
design:
require_tradeoffs: true
tasks:
protect_review_workload: true
apply:
test_command: "make test"
verify:
test_command: "make test"
testing:
detected: "2026-05-27"
runner:
command: "make test"
framework: "pytest via Makefile"
layers:
unit: "package script, Vitest, pytest, pytest via Makefile"
integration: "Testing Library"
e2e: "Playwright"
commands:
unit:
- scope: "e2e"
command: "cd e2e && npm test"
framework: "package script"
- scope: "apps/web"
command: "cd apps/web && npm test"
framework: "Vitest"
- scope: "."
command: "pytest"
framework: "pytest"
- scope: "."
command: "make test"
framework: "pytest via Makefile"
integration:
- scope: "apps/web"
command: "cd apps/web && npm test"
framework: "Testing Library"
e2e:
- scope: "e2e"
command: "cd e2e && npx playwright test"
framework: "Playwright"
coverage:
command: ""
commands:
[]
quality:
lint: "cd apps/web && npm run lint"
lint_commands:
- scope: "apps/web"
command: "cd apps/web && npm run lint"
framework: "linter"
- scope: "."
command: "make lint"
framework: "linter"
typecheck: "cd apps/web && npm run typecheck"
typecheck_commands:
- scope: "apps/web"
command: "cd apps/web && npm run typecheck"
framework: "type checker"
format: ""
format_commands:
[]