From f964e596860523450b1ba41cb5158a7e7d03cc09 Mon Sep 17 00:00:00 2001 From: "DESKTOP-RTLN3BA\\$punk" Date: Tue, 30 Jun 2026 21:58:12 -0700 Subject: [PATCH] docs(plans): finish delivery-path correction in diagrams + overview Two spots the prior citation pass missed still framed alert delivery as reused from automations. Align them with the committed correction: recurrence/audit reuse automations; alerts ride app/notifications; per-Tracker lock guards concurrency (gate is non-atomic). Also genericize the Maps actor as not-committed-for-MVP. Co-authored-by: Cursor --- plans/backend/revamp phases 4-7/00-overview.md | 13 ++++++++----- .../revamp phases 4-7/00b-pipeline-diagrams.md | 10 ++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/plans/backend/revamp phases 4-7/00-overview.md b/plans/backend/revamp phases 4-7/00-overview.md index b2c2578fd..7e4049c2b 100644 --- a/plans/backend/revamp phases 4-7/00-overview.md +++ b/plans/backend/revamp phases 4-7/00-overview.md @@ -84,15 +84,18 @@ data is out; *user uploads* still work (and gain a CI context-folder role). per Tracker; materiality = code thresholds (numeric/clear) + agent on ambiguous; content-hash pre-check. - Orchestration is a first-class deliverable: a **net-new CI-expert subagent** (`intelligence_agent`) on the existing chat runtime, with registry-backed verb tools + Tracker/Timeline tools. -- **Recurrence + alert delivery = a CI *action* on the existing automations** (not a new scheduler, not a - new shape): reuses the hardened schedule selector, `AutomationRun` (audit + idempotency), and delivery. - CI core still runs with **zero** automations dependency (manual/agent/cron). +- **Recurrence = a CI *action* on the existing automations** (not a new scheduler, not a new shape): + reuses the hardened schedule selector + `AutomationRun` (audit). The PENDING-gate is **non-atomic**, so a + **per-Tracker lock** is the real concurrency guard. **Alert delivery is separate** — automations have no + delivery path (`run.output` unwritten); alerts ride `app/notifications/`. CI core still runs with **zero** + automations dependency (manual/agent/cron). - **No new run table:** refresh audit/idempotency ride `AutomationRun` or the chat job record; billing idempotency is per-capability-call + the content-hash pre-check. Only the Timeline is new state. - **Billing is delegated to the billing service:** verbs declare a `billing_unit`; `03c` is the first provider; `maps.*` / `web.discover` register their own units there. -- The **Google Maps actor is net-new** (not in shipped Phases 1–3) and is designed/built as a **separate - effort**; `maps.*` verbs are contracts against it and don't block this design. +- **Any platform actor** (e.g. a Maps actor — illustrative, **not committed for MVP**) is net-new (not in + shipped Phases 1–3) and would be designed/built as a **separate effort**; per-platform verbs (`.*`, + e.g. `maps.*`) are contracts against it and don't block this design. - **CI context files:** files uploaded in a CI chat go into the **KB as normal** (indexed), routed to a dedicated `Folder`, and may feed the materiality judge via KB retrieval. ("Don't index" applies only to *crawled* data.) diff --git a/plans/backend/revamp phases 4-7/00b-pipeline-diagrams.md b/plans/backend/revamp phases 4-7/00b-pipeline-diagrams.md index 6e6e011e0..4696e8fd1 100644 --- a/plans/backend/revamp phases 4-7/00b-pipeline-diagrams.md +++ b/plans/backend/revamp phases 4-7/00b-pipeline-diagrams.md @@ -153,15 +153,17 @@ flowchart LR RF --> TLW[("writes Timeline · 05a")] CA -. "schedule selector" .-> SEL["hardened cron selector"] - CA -. "run record + idempotency" .-> AR["AutomationRun (PENDING-gate)"] - CA -. "delivery" .-> DEL["alert / output to user"] + CA -. "run record + idempotency" .-> AR["AutomationRun (PENDING-gate, non-atomic → + per-Tracker lock)"] + RF -. "on material change" .-> DEL["alert via app/notifications (Zero-synced)"] classDef opt fill:#3a2f1f,stroke:#bf975b,color:#f7efe6; - class CA,SEL,AR,DEL opt; + class CA,SEL,AR opt; ``` CI **core** (`refresh` + Timeline) has **zero** automations dependency — manual/agent/cron all work -standalone. The CI **action** is the *optional* adapter that buys recurrence + idempotency + delivery. +standalone. The CI **action** is the *optional* adapter that buys recurrence + audit. **Delivery is not +from automations** (no such path) — alerts on material change ride the separate `app/notifications/` +system; concurrency is guarded by a per-Tracker lock (the automation PENDING-gate is non-atomic). ## 6. The persisted state — Timeline data model (05a)