Files
headquarter/openspec/changes/add-config-profiles/specs/user-config/spec.md
T
alex 073013bc61 feat: add heartbeat/ping to terminal WebSocket
- Backend: Send ping every 30s from WebSocket endpoint
- Frontend: Respond to pings with pongs, detect missed pings (60s timeout)
- Update type definitions to include 'resetting' status

Refs: persistent-terminal-sessions task 6.4
2026-05-24 12:45:50 +00:00

1.7 KiB

ADDED Requirements

Requirement: Config Profile Settings Editor

The system SHALL expose a settings interface for managing the authenticated user's config profiles.

Scenario: Browse config profiles in settings

  • GIVEN an authenticated user
  • WHEN they open settings
  • THEN they can view their config profiles
  • AND see each profile's name, compatibility scope, default status, and included profiles

Scenario: Edit profile content in settings

  • GIVEN an authenticated user editing a config profile
  • WHEN they update env vars, runtime hints, mounts, text files, or include order
  • THEN the settings UI saves those changes through the config profile API
  • AND validation errors are shown without losing the user's draft edits

Scenario: Configure profile defaults in settings

  • GIVEN an authenticated user editing config profiles
  • WHEN they mark a profile as the default for a global, project, tool, or project+tool context
  • THEN subsequent launches for matching contexts preselect that profile according to default specificity

Requirement: Launch Profile Selection UI

The system SHALL allow the authenticated user to select one compatible config profile or None when starting a session.

Scenario: Preselect default compatible profile

  • GIVEN an authenticated user has a default compatible profile for a selected project and tool type
  • WHEN they open the start session form
  • THEN the form preselects that profile
  • AND also offers None as a selectable option

Scenario: Select no profile

  • GIVEN an authenticated user starts a session
  • WHEN they choose None in the config profile selector
  • THEN the start request records no selected config profile