mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-07-06 22:12:12 +02:00
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 <cursoragent@cursor.com>
This commit is contained in:
parent
05bbb64527
commit
f964e59686
2 changed files with 14 additions and 9 deletions
|
|
@ -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 (`<platform>.*`,
|
||||
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.)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue