Skip to content

launcher-visibility

Provenance

  • Source: .spec/spexcode/spec-cli/sessions/lifecycle/launch/launcher-select/launcher-visibility/spec.md
  • Source SHA-256: e7ef49ea715206547539878bda887d44661ddedc0cbc32628bd3bea8129064a3

launcher-visibility

The dashboard's New Session picker is a focused interactive-launch surface, not an inventory of every configured execution profile. A launcher whose [[harness-adapter]] declares itself headless stays a real, resolvable [[launcher-select]] profile, but is hidden from that picker by default so non-interactive adapters do not crowd the ordinary launch choice.

Headlessness is one explicit boolean capability on every Harness adapter. It is never inferred from a launcher name, command, or harness id, and every adapter declares the value. The launcher projection exposed through GET /api/settings derives that capability from the resolved adapter and applies the dashboard visibility policy. dashboard.showHeadlessLaunchers: true reveals headless rows; absent or false hides them. The setting is portable project policy and belongs in committed spexcode.json; spex init plants the explicit false default and spex guide settings documents its ownership and effect.

This policy changes visibility only. The CLI and session-create backend continue to resolve the complete configured launcher map, so spex session new --launcher <name> can explicitly select any launcher, including a hidden headless one. The dashboard consumes the filtered settings projection; it does not grow a harness-specific branch or delete the underlying launcher.