LearnNewsExamplesServices
Frontmatter
id11822
titleImplement Claude sibling instance wake routing
stateClosed
labels
enhancementaiarchitecturemodel-experience
assigneesneo-opus-ada
createdAtMay 23, 2026, 7:03 AM
updatedAtJun 7, 2026, 7:14 PM
githubUrlhttps://github.com/neomjs/neo/issues/11822
authorneo-gpt
commentsCount3
parentIssue11812
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[x] 12401 Rename Agent-OS "bridge daemon" → "wake-daemon" to disambiguate from Neural Link''s Bridge
closedAtJun 3, 2026, 2:15 AM

Implement Claude sibling instance wake routing

Closed v13.0.0/archive-v13-0-0-chunk-13 enhancementaiarchitecturemodel-experience
neo-gpt
neo-gpt commented on May 23, 2026, 7:03 AM

Context

Parent Epic #11812 graduated Discussion #11792 into a measurement-first path for a possible second Claude-family generalist maintainer identity. Child #11816 owns the OQ8 provider-capacity / Fast Mode measurement gate. Child #11821 owns the sibling AgentIdentity / same-family review / Memory Core continuity contract.

This sub captures the Desktop-grade wake-routing implementation slice. It must not start until #11816 reports PASS_OQ8 or an explicitly accepted equivalent disposition. If OQ8 fails, this child should be parked or closed without implementation.

Duplicate sweep before filing:

  • KB ticket searches for Desktop-grade instance addressable Claude wake routing wrong instance fail closed #11812 did not identify an equivalent #11812 child.
  • rg over resources/content/issues and resources/content/discussions found older Claude Desktop wake/focus/recovery tickets (#10658, #10677, #10788, #10987), but those address existing single-identity delivery or recovery, not same-bundle sibling instance routing from #11812.
  • Live GitHub issue searches for Desktop-grade wake Claude sibling, wrong-instance wake, and instance-addressable wake routing found #11812/#11816 and older adjacent tickets, but no bounded implementation child for the #11792/#11812 route.

The Problem

Current Shape C GUI wake routing uses coarse harness metadata such as appName: "Claude". That is ambiguous when two same-bundle Claude Desktop profiles or sibling identities can run on the same macOS user. Activating Claude does not prove the wake payload will land in the intended A2A principal's prompt.

For a Claude sibling to be safe, wake routing must become instance-addressable and fail closed when the target cannot be proven. Wrong-instance delivery would corrupt identity boundaries, private context, review provenance, and potentially prompt the wrong maintainer to act on a lane.

The Architectural Reality

  • WakeSubscriptionService validates harnessTarget / harnessTargetMetadata and currently permits GUI wake routing through appName-style metadata.
  • bridge-daemon dispatches osascript wakes by activating an application and focusing/pasting into the frontmost target. Same-bundle app activation is not a unique instance address.
  • tmuxSession is already addressable for terminal/control lanes, but Discussion #11792 explicitly forbids treating terminal/tmux as the Desktop product harness.
  • Existing Claude Desktop prompt-focus tickets (#10658, #10987, #10788) provide adjacent safety lessons: focus primitives must be empirically proven and fail closed before destructive paste/submit actions.
  • This child depends on the identity contract from #11821 for the target principal and on #11816 for the throughput premise.

The Fix

After #11816 passes, design and implement a fail-closed instance-addressable wake primitive for the Claude sibling:

  1. Compare concrete selector options: userDataDir, PID/window selector, app bundle clone identity, per-instance local bridge/webhook, URL/deep-link targeting, or another falsifiable primitive.
  2. Choose the least brittle Desktop-grade primitive and document rejected alternatives with evidence.
  3. Extend wake subscription metadata validation so a Claude sibling can register an instance-specific GUI route without weakening existing Antigravity/Claude/Codex single-instance routes.
  4. Update dispatch so a wake for identity B can prove it is targeting identity B's instance before paste/submit.
  5. Add negative tests or live-probe hooks proving wrong-instance delivery fails closed.
  6. Preserve existing single-instance appName behavior unless an explicit migration is included and verified.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
Wake subscription metadata #11812 AC8-AC10 + Discussion #11792 OQ2/OQ3 Claude sibling routes carry a provable instance address beyond appName Existing appName route remains for single-instance harnesses Wake subscription docs / schema description if changed Validation unit tests
GUI dispatch #11812 AC9/AC12 Dispatch proves intended instance before paste/submit; otherwise fails closed No wake delivered when target cannot be proven Bridge daemon runbook if changed Wrong-instance negative test or live probe
Desktop selector choice #11792 Double Diamond Matrix Least brittle Desktop-grade selector chosen after falsifiable comparison Second physical Mac or parked child if local routing too brittle Ticket/PR rationale Selector comparison table with evidence
Compatibility #11812 AC10 Existing Antigravity, Claude single-instance, and Codex wake behavior preserved Explicit migration only with tests Existing wake docs updated if needed Regression tests / smoke proof

Decision Record Impact

Aligned with #11812 and Discussion #11792. No ADR amendment is required by filing this child. If implementation introduces a durable new wake-routing primitive or mutates always-loaded agent workflow substrate, the implementation PR must run the relevant turn-memory / pull-request gates and declare whether an ADR or Agent OS decision note is warranted.

Discussion Criteria Mapping

#11792 / #11812 criterion This child maps to
Desktop-grade wake-routing contract chosen AC2-AC4
Fail-closed wrong-instance safety AC5-AC7
Existing single-instance behavior preserved AC8
Terminal/tmux false-completion avoided AC1 and Out of Scope
Post-merge controlled wake proof AC9

Acceptance Criteria

  • AC1: #11816 reports PASS_OQ8 or a clearly accepted equivalent disposition before implementation begins.
  • AC2: Selector comparison evaluates at least userDataDir, PID/window selector, app bundle clone identity, and per-instance bridge/webhook, with evidence/falsifiers for rejected options.
  • AC3: The chosen selector is Desktop-grade and does not rely on terminal/tmux as product harness.
  • AC4: Wake subscription metadata validation supports the chosen instance address without accepting ambiguous partial metadata for sibling routes.
  • AC5: Dispatch fails closed if the intended identity/instance cannot be proven immediately before paste/submit.
  • AC6: Wrong-instance delivery has a negative test, fixture, or operator-validated live probe demonstrating the wake does not land in identity A when targeting identity B.
  • AC7: Positive delivery is proven for the intended sibling instance over at least two controlled wake cycles before parent AC12 is marked complete. [L3-deferred — operator handoff needed] — requires two live Desktop instances (default + --user-data-dir); tracked in PR #12399 Post-Merge Validation. The Resolves #11822 auto-close does NOT imply this runtime AC is proven.
  • AC8: Existing single-instance appName wake behavior for Antigravity, Claude, and Codex remains green unless explicitly migrated.
  • AC9: Implementation artifact comments on #11812 with selector choice, fail-closed evidence, and post-merge validation result. [L3-deferred — operator handoff needed] for the post-merge-validation-result portion (only exists after the live probe runs). Selector choice (userDataDir→pid) + fail-closed evidence are documented in PR #12399; the parent-epic artifact comment with the live result lands at/after merge.
  • AC10: If implementation touches wake/agent substrate that Gemini should retro-review when reactivated, preserve #11812 AC13 Tier-2 revalidation linkage.

Out of Scope

  • Measuring provider-capacity independence; that is #11816.
  • Defining the sibling AgentIdentity/memory contract; that is #11821.
  • Treating terminal/tmux as the product harness.
  • Procuring credentials or managing Anthropic account secrets.
  • Full cloud Agent OS deployment or second-physical-Mac topology beyond fallback notes.
  • Broad Claude Desktop composer-focus repairs unrelated to sibling instance routing.

Avoided Traps

Trap Why rejected
appName: "Claude" as sibling address Same-bundle instances make app name ambiguous; wrong-instance delivery risk.
Terminal/tmux false completion Terminal route can measure OQ8 but does not preserve Desktop-grade workflow.
Paste before proof Existing Claude Desktop focus regressions show GUI dispatch must fail closed before destructive prompt injection.
Breaking existing single-instance routes The sibling path should extend wake routing, not regress Antigravity/Claude/Codex basics.
Building before OQ8 If provider capacity does not improve, Desktop-routing substrate is unnecessary.

Related

Origin Session ID: 008b6468-bb2c-44a5-aa90-e2e97a1ac849 (parent epic / discussion graduation session)

Handoff Retrieval Hints: query_raw_memories("Claude sibling instance-addressable wake routing wrong-instance fail closed #11812"); live Discussion #11792 Double Diamond Matrix Option B; Epic #11812 AC8-AC12; child #11816 disposition; child #11821 identity contract.

tobiu referenced in commit 3e559c0 - "feat(ai): instance-addressable wake routing for parallel same-bundle harnesses (#11822) (#12399) on Jun 3, 2026, 2:15 AM
tobiu closed this issue on Jun 3, 2026, 2:15 AM
tobiu referenced in commit e932d26 - "fix(ai): route default instance wakes by absence of --user-data-dir (#12407) on Jun 3, 2026, 3:49 AM
tobiu referenced in commit c5e0c44 - "fix(bridge-daemon): activate-foreground before instance set-frontmost for same-bundle wakes (#12462) (#12463) on Jun 4, 2026, 3:04 AM