---
id: 12574
title: 'Vega wake: add subscriptionTemplate so auto-bootstrap creates a WAKE_SUBSCRIPTION (stop the false-sunset fresh-session loop)'
state: CLOSED
labels:
  - bug
  - ai
assignees:
  - neo-opus-ada
createdAt: '2026-06-05T10:17:22Z'
updatedAt: '2026-06-07T17:18:58Z'
githubUrl: 'https://github.com/neomjs/neo/issues/12574'
author: neo-opus-ada
commentsCount: 0
parentIssue: null
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy: []
blocking: []
closedAt: '2026-06-05T13:33:10Z'
---
# Vega wake: add subscriptionTemplate so auto-bootstrap creates a WAKE_SUBSCRIPTION (stop the false-sunset fresh-session loop)

Authored by @neo-opus-ada (Claude Opus 4.8). Narrow close-target for PR #12570, split out of #12536 per @neo-gpt cross-family review — #12536 retains the broader resume/bridge per-identity routing ACs and stays open.

Refs #12536 (parent: per-identity wake/resume routing), #12422 (boot-envelope mechanism), #12571 (presence-refresh follow-up).

## Context
`@neo-opus-vega` — the 3rd same-app Claude Desktop harness — runs as a distinct instance but had no `subscriptionTemplate` in `ai/graph/identityRoots.mjs`. This is vega-only: `@neo-claude-opus` is active via a self-registered runtime subscription and is not affected.

## The Problem
No `subscriptionTemplate` → Memory Core auto-bootstrap throws "no subscriptionTemplate found" → no `WAKE_SUBSCRIPTION` node. `checkSunsetted.mjs` reads the *missing* subscription as a **terminal sunset** → `resumeHarness` spawns a fresh `Cmd+N` session + boot-grounding prompt every 10-minute heartbeat (the loop @tobiu flagged).

## The Fix
Add a machine-agnostic, path-free `subscriptionTemplate` to `@neo-opus-vega`, mirroring `@neo-opus-ada`: `trigger: SENT_TO_ME`, `harnessTarget: bridge-daemon`, `harnessTargetMetadata: {appName:'Claude', tabShortcut:'3', focusSeedKey:'space'}`. The per-instance address stays env-injected at boot (the boot envelope), never committed. With a subscription present, `checkSunsetted` flips `sunset → idle_out_nudge` (non-spawning A2A). The loop ends.

## Acceptance Criteria
- [ ] `@neo-opus-vega` carries a machine-agnostic `subscriptionTemplate` with no committed per-operator path (`instanceAddress` / `userDataDir` / `addressType` absent).
- [ ] With the subscription present, `checkSunsetted(@neo-opus-vega)` → `recommended_action: idle_out_nudge`, not `sunset_restart`.
- [ ] Unit coverage (`identityRoots.spec`): vega + `@neo-opus-ada` carry the template + the fork-portability invariant; `@neo-claude-opus` deliberately carries none.

## Out of Scope (remain in #12536)
- `resumeHarness` per-identity instance addressing.
- bridge wake-delivery per-identity addressing (needs operator-side env vars).
- HARNESS_PRESENCE refresh (#12571).

Origin Session ID: c2800781-b204-4883-a52f-2979a560718b
Retrieval Hint: "vega subscriptionTemplate checkSunsetted false-sunset fresh-session loop narrow close-target"

## Timeline

- 2026-06-05T10:17:22Z @neo-opus-ada added the `bug` label
- 2026-06-05T10:17:23Z @neo-opus-ada added the `ai` label
- 2026-06-05T10:17:23Z @neo-opus-ada assigned to @neo-opus-ada
- 2026-06-05T10:18:42Z @neo-opus-ada cross-referenced by PR #12570
- 2026-06-05T13:33:10Z @tobiu closed this issue

