PR #14897 delivers the disabled-by-default scaffold for #14434: the pure aggregation engine, the IO service, the daemon entry point, and all six named source bindings. The live PR body still records unfinished runtime contracts and keeps aggregationEnabled false. To preserve that converged work while ending repeated review cycles, this successor owns every remaining enablement obligation in one coherent lane.
This is not a micro-ticket split. It is the completion lane after the scaffold merges, owned by @neo-gpt.
The Problem
The scaffold is safe to merge while runtime-disabled, but enablement would currently outrun the contract:
ADR 0028 requires both durable L1 session and L2 daily records; the branch proves the L2 engine but not the complete L1/L2 runtime path.
sandboxesGraduated cannot use Discussion close time or marker-like prose as the fact source. The canonical author-action marker and its event timestamp must be read from the complete Discussion conversation.
The lane must participate in the existing supervised orchestrator/backpressure topology rather than creating a second independent scheduler.
SUMMARY_DAILY writes, bounded retention/version progression, and live durable-write evidence remain absent.
The opt-in must stay false until the complete path is proven.
The Architectural Reality
The governing surfaces were re-verified before filing:
ADR 0028 §2.1/§2.3/§2.4/§2.6 fixes durable L1/L2, one temporal-summary collection, named metric sources, deterministic SUMMARY_DAILY writes, and unified plus per-agent partitions.
ADR 0028 §4 assigns bounded retention/versioning to this implementation lane.
ADR 0022 and #14434 require the aggregation work to share the existing orchestrator fairness and heavy-maintenance backpressure substrate.
The scaffold lives in ai/daemons/temporal-summary/{daemon,TemporalSummaryAggregationService}.mjs and ai/services/memory-core/helpers/temporalSummaryAggregationEngine.mjs; the orchestrator owner surfaces are ai/daemons/orchestrator/scheduling/{registry,pipeline}.mjs and ai/daemons/orchestrator/services/MaintenanceBackpressureService.mjs.
ADR 0024 already registers SUMMARY_SESSION and SUMMARY_DAILY as deterministic aggregation-lane node types.
The Fix
Build on the merged scaffold and finish the lane in one PR:
Register a supervised, one-shot temporal-summary task in the existing orchestrator topology; keep cadence and heavy-lane fairness there rather than inside an independent child poller.
Materialize both L1 and L2 records for unified and per-agent partitions through the existing schema and pure engine.
Source sandboxesGraduated from exact [GRADUATED_TO_TICKET: #N] author actions with their event timestamps; paginate the full conversation and fail closed when evidence is unavailable.
Emit SUMMARY_DAILY only from this deterministic writer.
Define and test append-only version progression plus bounded retention.
Prove the real durable write and idempotent replay before runtime enablement.
Count exact author-action graduations by event time from the complete conversation
Unavailable evidence is not a numeric zero
Source-binding JSDoc
Pagination, prose-rejection, timestamp, and absence specs
SUMMARY_DAILY
ADR 0024 + ADR 0028 §2.3
Deterministic lane is the sole writer
No label on write failure
Schema/producer JSDoc
Graph-write specs + extractor untouched
Version/retention policy
ADR 0028 §4
Append-only version minting with bounded retained history
Runtime stays disabled
Policy JSDoc
Version-bump, idempotence, and retention specs
Decision Record impact
aligned-with ADR 0028; aligned-with ADR 0022; aligned-with ADR 0024. No ADR amendment is required unless implementation changes one of those fixed boundaries.
Acceptance Criteria
aggregationEnabled remains false until every other criterion is satisfied.
The existing orchestrator owns cadence and dispatch; the temporal task is supervised, one-shot, bounded, and backpressure-aware.
Durable L1 session and L2 daily records are written for unified and per-agent partitions without duplicate attribution.
sandboxesGraduated accepts only exact author-action graduation markers, uses the marker event timestamp, paginates the full conversation, rejects marker-like prose, and fails closed when source evidence is unavailable.
SUMMARY_DAILY is written only by this deterministic lane; the semantic extractor remains unchanged.
Version bumps mint append-only records, replay is idempotent, and retention bounds growth.
Live latest-open sweep: checked the latest 20 open issues plus GitHub title search and all-state A2A at 2026-07-10T05:29:39Z; no equivalent successor or competing claim found.
Context
PR #14897 delivers the disabled-by-default scaffold for #14434: the pure aggregation engine, the IO service, the daemon entry point, and all six named source bindings. The live PR body still records unfinished runtime contracts and keeps
aggregationEnabledfalse. To preserve that converged work while ending repeated review cycles, this successor owns every remaining enablement obligation in one coherent lane.This is not a micro-ticket split. It is the completion lane after the scaffold merges, owned by
@neo-gpt.The Problem
The scaffold is safe to merge while runtime-disabled, but enablement would currently outrun the contract:
sandboxesGraduatedcannot use Discussion close time or marker-like prose as the fact source. The canonical author-action marker and its event timestamp must be read from the complete Discussion conversation.SUMMARY_DAILYwrites, bounded retention/version progression, and live durable-write evidence remain absent.The Architectural Reality
The governing surfaces were re-verified before filing:
temporal-summarycollection, named metric sources, deterministicSUMMARY_DAILYwrites, and unified plus per-agent partitions.ai/daemons/temporal-summary/{daemon,TemporalSummaryAggregationService}.mjsandai/services/memory-core/helpers/temporalSummaryAggregationEngine.mjs; the orchestrator owner surfaces areai/daemons/orchestrator/scheduling/{registry,pipeline}.mjsandai/daemons/orchestrator/services/MaintenanceBackpressureService.mjs.SUMMARY_SESSIONandSUMMARY_DAILYas deterministic aggregation-lane node types.The Fix
Build on the merged scaffold and finish the lane in one PR:
sandboxesGraduatedfrom exact[GRADUATED_TO_TICKET: #N]author actions with their event timestamps; paginate the full conversation and fail closed when evidence is unavailable.SUMMARY_DAILYonly from this deterministic writer.Contract Ledger Matrix
AiConfig.temporalSummary.aggregationEnabledfalseuntil every AC below passestemporal-summaryrecordssandboxesGraduatedSUMMARY_DAILYDecision Record impact
aligned-with ADR 0028;aligned-with ADR 0022;aligned-with ADR 0024. No ADR amendment is required unless implementation changes one of those fixed boundaries.Acceptance Criteria
aggregationEnabledremains false until every other criterion is satisfied.sandboxesGraduatedaccepts only exact author-action graduation markers, uses the marker event timestamp, paginates the full conversation, rejects marker-like prose, and fails closed when source evidence is unavailable.SUMMARY_DAILYis written only by this deterministic lane; the semantic extractor remains unchanged.Out of Scope
Avoided Traps
setIntervalscheduler beside the orchestrator.Related
Successor to #14434
Parent epic: #12679
Scaffold PR: #14897
Related consumer: #14811
Live latest-open sweep: checked the latest 20 open issues plus GitHub title search and all-state A2A at 2026-07-10T05:29:39Z; no equivalent successor or competing claim found.
Origin Session ID: de713f27-0e82-4960-b4c6-f281e0c36449
Retrieval Hint: "temporal pyramid scaffold completion L1 L2 sandboxesGraduated orchestrator SUMMARY_DAILY retention #14897"