LearnNewsExamplesServices
Frontmatter
id14433
titleTemporal-summary collection + SUMMARY_* graph-label schema
stateClosed
labels
enhancementaiarchitecture
assigneesneo-fable-clio
createdAtJul 2, 2026, 6:06 AM
updatedAt3:04 PM
githubUrlhttps://github.com/neomjs/neo/issues/14433
authorneo-fable-clio
commentsCount9
parentIssue12679
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 4, 2026, 2:29 PM

Temporal-summary collection + SUMMARY_* graph-label schema

Closed Backlog/active-chunk-2 enhancementaiarchitecture
neo-fable-clio
neo-fable-clio commented on Jul 2, 2026, 6:06 AM

Context

Leaf A of Epic #12679's implementation decomposition (map: https://github.com/neomjs/neo/issues/12679#issuecomment-4862079789, posted 2026-07-02 after ADR 0028 reached twice-approved state on PR #14428). Filed pre-Accepted for planning visibility per ADR 0005 §2.3 ("Epics / tickets MAY be filed pre-ADR-merge"); the merge gate below is unconditional regardless.

⛔ Merge gate: this leaf's PR is merge-blocked until ADR 0028 is Accepted (PR #14428 merged), per the epic's #11376 §6 contract and ADR 0028 §5. Claim and design freely; do not hand off as merge-ready before the flip.

The Problem

The temporal pyramid's durable tiers (ADR 0028 §2.1) and dynamic tiers (§2.2) both need the storage substrate that does not exist yet: the temporal-summary Chroma collection and the per-level SQLite graph-label schema. Leaves B (L1/L2 aggregation lane) and C (L3–L5 synthesis) write into and read from this substrate — it sequences first.

The Architectural Reality

Bound by ADR 0028 (authority; re-verify Accepted at claim):

  • §2.3: one temporal-summary collection carrying {level, partition, windowStart, windowEnd, version} metadata — inside the unified store (ADR 0017 within-posture: collections + metadata are the separation mechanism; no new persist dir, no second daemon). Per-level SQLite graph labels (SUMMARY_DAILY, SUMMARY_WEEKLY, …) reserved for the deterministic aggregation lane — never written via SemanticGraphExtractor prompt widening (anti-anchor).
  • §2.3 maintenance obligation: the new collection joins the Memory-Core-realm maintenance groups (defrag targets + backup/restore scope) in the same change — it sits on the MC side of ADR 0017's KB-as-cache / MC-as-store recovery model.
  • §2.7 / ADR 0024 obligation (pre-declared): introducing SUMMARY_* node types must update ADR 0024 §2.2's node-type table and cite ADR 0024 in the same PR (0024's own re-review trigger).
  • Module placement for any new .mjs is settled via structural-pre-flight at claim time (likely ai/services/ Memory Core territory; the contract here is deliberately directory-agnostic — design-first, placement validated at implementation).

The Fix

One PR: create the collection (creation path + metadata contract), define the SUMMARY_* label schema, register the collection in the MC maintenance groups, update ADR 0024 §2.2. No aggregation logic (Leaf B), no synthesis (Leaf C), no data written beyond schema/bootstrap.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
temporal-summary collection (new, in unified) ADR 0028 §2.3 + ADR 0017 Created with the five-field metadata contract; MC-realm maintenance registration Substrate absent (status quo; B/C blocked) ADR 0028 §2.3 Collection present + metadata shape asserted in tests
SUMMARY_* SQLite labels ADR 0028 §2.3 Schema defined, reserved to the deterministic lane ADR 0024 §2.2 (updated) Label constants + 0024 table updated in same PR
ADR 0024 §2.2 node-type table ADR 0024 §8 re-review trigger Amended with the SUMMARY_* types + source-of-truth pin The amended § Reviewer verifies per 0024 §8

Decision Record impact

depends-on ADR 0028 (merge-blocked until Accepted) · amends ADR 0024 (§2.2 table, per its own trigger) · aligned-with ADR 0017.

Acceptance Criteria

  • temporal-summary collection exists in the unified store with the {level, partition, windowStart, windowEnd, version} metadata contract enforced/documented.
  • SUMMARY_* label schema defined; write path reserved to the deterministic aggregation lane (Leaf B consumes; no extractor-prompt changes).
  • Collection registered in MC-realm defrag + backup/restore maintenance groups.
  • ADR 0024 §2.2 updated + cited in the same PR.
  • PR held un-merge-ready until ADR 0028 is Accepted; the PR body states the gate.
  • Cross-family review before merge.

Out of Scope

  • The L1/L2 aggregation lane and velocity fields (Leaf B) and the L3–L5 dynamic synthesis (Leaf C) — sequenced after this leaf per the decomposition map.
  • Any consumer surface (dashboards / cockpit / MCP query tools beyond what exists).
  • Retention/versioning policy (Leaf B owns it within the version field).

Avoided Traps

  • Collection-per-level — rejected (ADR 0028 §3; one collection + level metadata).
  • New persist dir / daemon — rejected (ADR 0017 posture; within-store collection only).
  • Widening the extractor prompt for labels — rejected (ADR 0028 anti-anchor; deterministic lane owns writes).
  • Bundling aggregation logic "while we're here" — rejected (one-leaf-per-capability; B and C have their own contracts).

Related

Parent: #12679 (link via update_issue_relationship on file). Authority: ADR 0028 (PR #14428). Siblings (file-at-claim): Leaf B (L1/L2 lane), Leaf C (L3–L5 synthesis) per the decomposition map. Foundational sibling: #14427 (done, PR approved).

Live latest-open sweep: checked latest 10 open issues at 2026-07-02T04:06Z (+ latest-20 at 03:45Z); no equivalent found. A2A in-flight sweep: all-states scan at 04:06Z; no competing claim on this scope. Filed unclaimed — self-select per goal-scoping; claimer runs ticket-intake + structural-pre-flight.

Origin Session ID: 2251c81c-1446-4723-86b3-479322bbcc95 Retrieval Hint: "temporal-summary collection SUMMARY label schema Leaf A ADR 0028 storage sub"