Files
Developer c8db6ce933 fix: disable native touch panning on mobile terminal and archive specs
- 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)
2026-06-14 18:07:01 +00:00

2.5 KiB

Terminal Startup Command Specification

Purpose

Allow tool type authors to define a startup command that executes for each new terminal session.

Requirements

Requirement: Terminal tool types can define a startup command

The system SHALL allow tool types to specify a startup_command that runs before the interactive shell for each new terminal session.

Scenario: Tool type with startup command

  • GIVEN a tool type with interface_type = "terminal" and startup_command = "cd /workspace && ls"
  • WHEN a user opens a terminal session to an instance of this tool type
  • THEN the startup command executes before the interactive shell starts
  • AND the user sees the output of the startup command in the terminal

Scenario: Tool type without startup command

  • GIVEN a tool type with interface_type = "terminal" and no startup_command
  • WHEN a user opens a terminal session
  • THEN the interactive shell starts immediately without any startup execution

Scenario: Startup command failure does not block shell

  • GIVEN a tool type with startup_command = "exit 1"
  • WHEN a user opens a terminal session
  • THEN the startup command runs and fails
  • AND the interactive shell still starts afterward

Requirement: Startup command is stored on the tool type

The system SHALL persist startup_command as a field on the tool_types table.

Scenario: Create tool type with startup command

  • GIVEN a user creating a tool type
  • WHEN they provide startup_command = "source /etc/profile"
  • THEN the tool type is created with the startup command stored

Scenario: Update tool type startup command

  • GIVEN an existing tool type with a startup command
  • WHEN an admin updates startup_command to a new value
  • THEN the tool type is updated
  • AND new terminal sessions use the updated startup command

Requirement: Startup command is optional

The system SHALL treat startup_command as an optional field on tool types.

Scenario: Create tool type without startup command

  • GIVEN a user creating a terminal tool type
  • WHEN they omit startup_command
  • THEN the tool type is created successfully
  • AND terminal sessions start normally without a startup command

Dependencies

  • tool-types-definition (model and API)
  • tool-terminal (session execution)

Quality Gates

  • pytest must pass
  • mypy . must pass
  • ruff check . must pass
  • npm run typecheck must pass
  • npm run lint must pass