LearnNewsExamplesServices
Frontmatter
id14972
titleFleet launch coverage for claude-desktop + antigravity — bundled-binary probe first, detached-GUI class as the named fallback
stateClosed
labels
enhancementdeveloper-experienceaiarchitecture
assigneesneo-fable
createdAtJul 10, 2026, 7:13 PM
updatedAtJul 10, 2026, 11:42 PM
githubUrlhttps://github.com/neomjs/neo/issues/14972
authorneo-fable
commentsCount2
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 10, 2026, 11:42 PM
milestonev13.2

Fleet launch coverage for claude-desktop + antigravity — bundled-binary probe first, detached-GUI class as the named fallback

Closed Backlog/active-chunk-5 enhancementdeveloper-experienceaiarchitecture
neo-fable
neo-fable commented on Jul 10, 2026, 7:13 PM

Context

Operator follow-up on the merged onboarding conductor (PR #14965): the FM registry + cockpit UI offer five harness families (claude-code, claude-desktop, codex, antigravity, native-neo), but the launch seam (deriveHarnessLaunchSpec, PR #14918) templates only TWO (claude-code, codex) — and the conductor's CURATED_HARNESS_TYPES mirrors that subset. Selecting claude-desktop or antigravity in the UI today dead-ends at resolveLaunch's "no launch template" refusal. Unticketed gap until now (live sweep 2026-07-10T13:35Z: no equivalent open ticket; #13796 is the adjacent generic-adapter philosophy, not this coverage gap).

The 2026 reality sharpens it: Claude Desktop bundles Claude Code — the operator's live manual workflow is open -n -a Claude --args --user-data-dir=~/.claude-instances/<peer>, i.e. real peers ALREADY run under claude-desktop, just unsupervised and outside the FM.

The Problem

PR #14918 deliberately excluded GUI launches from the supervised class ("open detaches, so FM could never supervise the actual harness — only directly-spawnable CLI binaries are templated") — a reviewed, sound decision for the SUPERVISED lifecycle. But two of the five registry families are GUI-first, so the exclusion leaves them permanently unlaunchable by the FM, while the UI keeps offering them. Either they get a launch path or the UI/registry must surface the honest "not launchable yet" state.

The Fix (ordered — cheapest truth first)

  1. Bundled-binary probe (do this before any design work): this session's precedent is load-bearing — the codex CLI ships INSIDE ChatGPT.app/Contents/Resources/codex and is directly spawnable + supervisable. Probe Claude.app and the Antigravity app bundle for equivalent directly-spawnable entrypoints (with per-instance home/profile env or flags). If found → extend HARNESS_HOME_ENV_VARS/HARNESS_MODE_ARGS templates exactly like #14918's two families (long-lived mode args, held-stdin liveness probe on the exact binaries) + widen the conductor's CURATED_HARNESS_TYPES. Done, no new lifecycle class.
  2. If (and only if) a family is GUI-only: design the detached launch class explicitly — open -n -a <App> --args --user-data-dir=<instance home>, with honest supervision semantics: state: 'detached' (never running), no pid/stop/isRunning claims, authRequired unknown. This REVISES the #14918 exclusion for a distinct class rather than weakening the supervised one — @neo-gpt authored that exclusion's review rationale and gets the design loop-in before implementation.
  3. Vocabulary honesty in the cockpit MOVED → #14987 (see Rescope below).
  4. native-neo disposition: explicitly defer (it is the future in-engine harness, not a launchable binary today) — one sentence in the template JSDoc so the gap is named, not silent.

Rescope (2026-07-10 — from the PR #14977 cross-family review close-target audit)

This ticket is now the fully-delivered Brain-side launch-coverage leaf: probe receipts, both app-bundle templates (argv-isolation axis + per-family version-probe policy + in-app auth mode), conductor widening, native-neo deferral. The probe falsified the detached-class premise (both bundles expose directly-spawnable MAIN binaries — fix-step 2 is a documented negative, no class built).

The original fix-step 3 / AC-3 second half — cockpit/projection honest-launchability rendering — moves to its named successor leaf #14987 (projection launchability enrichment: launchable + authMode on the registry/roster projections, self-assigned, consumer: the #13015 start-from-UI control). Per the seam ruling (@neo-opus-vega): launchability is Brain-side runtime truth riding the projection, never a flag in the shared display seam.

Contract Ledger

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
deriveHarnessLaunchSpec templates the #14918 curated-intent design + exact-binary liveness probes new families added ONLY with probed long-lived spawn tuples un-probed family stays refused with the named setLaunchOverride pointer template JSDoc held-stdin liveness probes on the exact bundled binaries
detached class (conditional) this ticket's design loop-in (@neo-gpt) state: 'detached', no supervision claims not built unless a family is proven GUI-only lifecycle JSDoc live detached-launch receipt
conductor CURATED_HARNESS_TYPES subset-of-templated invariant (documented in onboardPeer.mjs) widens in lockstep with the template table early named refusal (current behavior) conductor JSDoc spec update

Acceptance Criteria

  • Probe receipts for Claude.app + Antigravity bundles (spawnable binary + per-instance isolation env/flag, or a documented negative)
  • Every probed-spawnable family: template + liveness regression + conductor list widened
  • Any GUI-only family: the detached class question resolves with evidence (probe falsified it — documented negative in PR #14977); registry/UI honest-unlaunchable rendering MOVED → #14987
  • native-neo deferral named in the template JSDoc
  • Cross-family review

Out of Scope

The generic-by-default adapter refactor (#13796 — this ticket adds coverage inside today's per-family shape); cockpit Add-Peer UI implementation (#14807, consumes the widened vocabulary); projection/cockpit launchability rendering (#14987, the named successor).

Related

Parent: #13015 · launch seam: #14914 (PR #14918) · conductor: #14937 (PR #14965, merged) · UI honesty precedent: #14643 (PR #14952) · adjacent philosophy: #13796 · successor: #14987.

Live latest-open sweep: antigravity / claude-desktop harness / launch template harness searches at 2026-07-10T13:35Z — no equivalent found.

Origin Session ID: b956ba53-01ed-4ea6-a1e5-62969f887bc3

Retrieval Hint: query_raw_memories("fleet launch coverage claude-desktop antigravity bundled binary probe detached GUI class")

tobiu referenced in commit 80b9797 - "feat(fleet): claude-desktop + antigravity launch coverage — the argv-isolation launch axis (#14972) (#14977) on Jul 10, 2026, 11:42 PM
tobiu closed this issue on Jul 10, 2026, 11:42 PM