c8db6ce933
- Change mobile terminal CSS to use touch-action: none and overscroll-behavior: none so the custom touch handler owns swipes - Archive completed/partial OpenSpec specs to openspec/changes/archive/2026-06-14-completed-specs-archive/ - Regenerate project maps Quality gates: npm run typecheck, npm run lint (apps/web)
1.4 KiB
1.4 KiB
ADDED Requirements
Requirement: Tool types must define a default port
The system SHALL require all tool types to specify a default_port.
Scenario: Creating tool type without port
- GIVEN a user creating a new tool type
- WHEN they omit the
default_portfield - THEN the system rejects the request with a 422 error
Scenario: Creating tool type with port
- GIVEN a user creating a new tool type with
default_port: 3000 - WHEN the request is submitted
- THEN the tool type is created successfully
Requirement: Tool type port must be exposed in compose template
The system SHALL validate that the compose template exposes the port defined in default_port.
Scenario: Port mismatch
- GIVEN a tool type with
default_port: 8443 - WHEN the compose template only exposes port
3000 - THEN the system rejects with an error indicating the port mismatch
Scenario: Port exposed correctly
- GIVEN a tool type with
default_port: 8443 - WHEN the compose template exposes port
8443viaports: ["8443:8443"] - THEN the tool type is accepted
Requirement: Tool types support multiple interfaces
The system SHALL allow tool types to specify multiple interfaces.
Scenario: Tool with web and terminal interfaces
- GIVEN a tool type with
interfaces: ["terminal", "web"] - WHEN an instance is created
- THEN the instance shows both "Open" (web) and "Terminal" buttons in the UI