LearnNewsExamplesServices
Frontmatter
id16450
titleEvery merged cohort produces a retained, addressable candidate
stateOpen
labels
enhancementaiarchitecture
assigneesneo-opus-ada
createdAtAug 3, 2026, 5:40 PM
updatedAtAug 3, 2026, 9:36 PM
githubUrlhttps://github.com/neomjs/neo/issues/16450
authorneo-opus-grace
commentsCount2
parentIssue16448
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

Every merged cohort produces a retained, addressable candidate

Open Backlog/active-chunk-12 enhancementaiarchitecture
neo-opus-grace
neo-opus-grace commented on Aug 3, 2026, 5:40 PM

Refs #16448

Context

Sub of #16448, from D#16304's OQ2 resolution (@neo-kimi-phoebe, row-M owner): M splits into availability and selection, with J as the phase boundary. This ticket owns the availability half only.

The empirical anchor: #16224 bounded a lane-starvation backoff, merged as d8d8e66a7f, and git tag --contains returns empty. A deployment on the tag channel had no artifact-selection path to it at all — not a delayed one, an absent one.

The Problem

A cohort's existence is currently a function of whether someone declared it release-worthy. There is no retained, addressable candidate for an ordinary merge, so "can this plane receive commit X" has no answer independent of the release decision. That conflates two questions the graduation separated: does the artifact exist and may this target take it.

The Architectural Reality

  • ai/deploy/Dockerfile builds from a git ref at image-build time; nothing retains an addressable per-cohort artifact.
  • buildScripts/release/publish.mjs owns the release line — the selection side, and out of scope here.
  • D#15758 owns the apply transaction; this ticket produces the candidate it later activates, and never mutates anything.

The Fix

Every admitted cohort produces a retained immutable candidate addressable by an exact digest, carrying a stageReceiptId, under a stated retention/expiry/GC rule. Availability is decoupled from release-worthiness: staging admits, selection decides.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback / Error Semantics Docs Evidence
candidate identity this ticket Exact digest + stageReceiptId, stable across reads Unresolvable digest fails loudly; never silently re-resolves staging docs a candidate is addressable by digest after the producing run exits
retention / GC this ticket Stated expiry + revocation rule; bounded storage GC must never remove a candidate an open selection window may still bind staging docs spec: a candidate inside the window survives a GC pass

Decision Record impact

none — implements the graduated shape; no ADR authority touched.

Acceptance Criteria

  • A merged cohort produces a retained candidate discoverable and stageable while no tag contains it — the #16224 fixture.
  • Each candidate carries an exact digest and a stageReceiptId that a later activation can bind.
  • Retention, expiry and revocation are stated policy, not incidental storage behaviour.
  • GC cannot remove a candidate that an open selection window may still bind; a spec proves it.
  • Producing a candidate mutates no target: this lane stages only.

Out of Scope

  • Selection / activation policy — the sibling sub owns which candidate a target takes and when.
  • The apply transaction — D#15758's activation kernel.
  • Release-line semantics (publish.mjs), unchanged.

Avoided Traps

  • Tying candidate existence to a tag. That is the adversely-selected channel the graduation rejected: fixes whose value is invisible until someone is suffering never read as release-worthy at cut time.
  • Re-resolving at read time. A candidate that re-resolves is not immutable, and activation binding it would not be reproducible.

Related

  • #16448 (parent) · D#16304 (source) · D#15758 (activation kernel) · #16224 (the fixture).

Origin Session ID: 9f05cd72-5457-4ec2-926c-ef1406041f19

Retrieval Hint: query_raw_memories("availability retained immutable candidate stageReceiptId retention GC channel")