@@ -38,11 +38,11 @@ Springtale is a Rust workspace of 17 crates — 8 libraries, 7 connectors, and 2
3838 │ │
3939 ┌───────────────────────┼────────────────────┼─────────────┐
4040 │ v v │
41- │ ┌──────────┐ ┌──────────┐ ┌────────────────┐ │
42- │ │ mcp │ │ ai │ │ scheduler │ │
43- │ │ protocol │ │ adapter │ │ cron, watcher, │ │
44- │ │ bridge │ │ + noop │ │ jobs, retry │ │
45- │ └────┬─────┘ └────┬─────┘ └───────┬────────┘ │
41+ │ ┌──────────┐ ┌──────────┐ ┌────────────────┐ │
42+ │ │ mcp │ │ ai │ │ scheduler │ │
43+ │ │ protocol │ │ adapter │ │ cron, watcher, │ │
44+ │ │ bridge │ │ + noop │ │ jobs, retry │ │
45+ │ └────┬─────┘ └────┬─────┘ └───────┬────────┘ │
4646 │ │ │ │ │
4747 │ v v v │
4848 │ ┌─────────────────────────────────────────────────┐ │
@@ -51,22 +51,22 @@ Springtale is a Rust workspace of 17 crates — 8 libraries, 7 connectors, and 2
5151 │ └────────────┬────────────────────┬───────────────┘ │
5252 │ │ │ │
5353 │ v v │
54- │ ┌──────────────────┐ ┌──────────────────┐ │
55- │ │ store │ │ crypto │ │
56- │ │ SQLite backend │ │ Ed25519, vault, │ │
57- │ │ schema, queries │ │ signatures │ │
58- │ └────────┬─────────┘ └──────────────────┘ │
59- │ │ │
60- │ v │
61- │ ┌──────────────────┐ ┌──────────────────┐ │
62- │ │ core │ │ transport │ │
63- │ │ rule engine, │ │ Unix socket │ │
64- │ │ pipeline, │ │ (← crypto) │ │
65- │ │ router │ │ │ │
66- │ │ (zero deps) │ │ │ │
67- │ └──────────────────┘ └──────────────────┘ │
68- │ Library Crates │
69- └─────────────────────────────────────────────────────────┘
54+ │ ┌──────────────────┐ ┌──────────────────┐ │
55+ │ │ store │ │ crypto │ │
56+ │ │ SQLite backend │ │ Ed25519, vault, │ │
57+ │ │ schema, queries │ │ signatures │ │
58+ │ └────────┬─────────┘ └──────────────────┘ │
59+ │ │ │
60+ │ v │
61+ │ ┌──────────────────┐ ┌──────────────────┐ │
62+ │ │ core │ │ transport │ │
63+ │ │ rule engine, │ │ Unix socket │ │
64+ │ │ pipeline, │ │ (← crypto) │ │
65+ │ │ router │ │ │ │
66+ │ │ (zero deps) │ │ │ │
67+ │ └──────────────────┘ └──────────────────┘ │
68+ │ Library Crates │
69+ └────────────────────────────────────────────────────────- ─┘
7070```
7171
7272* Fig. 1. Crate dependency graph. Arrows point from dependent to dependency. ` core ` and ` crypto ` have zero internal dependencies.*
@@ -84,7 +84,7 @@ When something happens — a Kick stream goes live, a file changes, a cron timer
8484 │ │ 2. evaluate conditions │
8585 │ │ 3. run pipeline stages │
8686 │ │ 4. enqueue job │
87- │ │ 5. dispatch ───────────────── >│
87+ │ │ 5. dispatch ────────────────>│
8888 │ │ (capability check first) │
8989 │ │<──── result ──────────────────┤
9090 │ │ 6. log event │
@@ -124,13 +124,13 @@ Security and privacy are constraints, not features. Every decision is evaluated
124124 ├───────────────────────────────────────────────────────────┤
125125 │ WASM Sandbox — 10M fuel, 64MB memory, 30s timeout │
126126 ├───────────────────────────────────────────────────────────┤
127- │ Capability Model — exact-host matching, toxic pair block │
127+ │ Capability Model — exact-host matching, toxic pair block │
128128 ├───────────────────────────────────────────────────────────┤
129- │ Manifest Signing — Ed25519, verify on every load │
129+ │ Manifest Signing — Ed25519, verify on every load │
130130 ├───────────────────────────────────────────────────────────┤
131- │ Secret<T> — cannot log, clone, serialize; zeroed on drop │
131+ │ Secret<T> — cannot log, clone, serialize; zeroed on drop │
132132 ├───────────────────────────────────────────────────────────┤
133- │ Supply Chain — cargo-deny, cargo-audit, gitleaks │
133+ │ Supply Chain — cargo-deny, cargo-audit, gitleaks │
134134 └───────────────────────────────────────────────────────────┘
135135```
136136
@@ -139,19 +139,19 @@ Security and privacy are constraints, not features. Every decision is evaluated
139139### 3.2. Connector Isolation
140140
141141```
142- ┌─ Native (in-process) ─────────────────────────────────────┐
142+ ┌─ Native (in-process) ─────────────────────────────────────- ┐
143143 │ 7 first-party connectors │
144144 │ Trust: HIGH — audited, signed by Springtale team │
145145 │ Isolation: capability-checked at runtime │
146146 └────────────────────────────────────────────────────────────┘
147147
148148 ┌─ WASM (sandboxed) ────────────────────────────────────────┐
149- │ ┌──────────────────────────────────────────────────────┐ │
150- │ │ Wasmtime: 10M instr │ 64MB mem │ 30s timeout │ │
151- │ │ Host API: only declared capabilities exposed │ │
152- │ └──────────────────────────────────────────────────────┘ │
153- │ Trust: LOW — community-authored, untrusted │
154- └──────────────────────────────────────────────────────────── ┘
149+ │ ┌──────────────────────────────────────────────────────┐ │
150+ │ │ Wasmtime: 10M instr │ 64MB mem │ 30s timeout │ │
151+ │ │ Host API: only declared capabilities exposed │ │
152+ │ └──────────────────────────────────────────────────────┘ │
153+ │ Trust: LOW — community-authored, untrusted │
154+ └───────────────────────────────────────────────────────────┘
155155```
156156
157157* Fig. 4. Connector trust boundary. Native connectors run in-process. WASM connectors are sandboxed.*
@@ -283,20 +283,20 @@ Full quickstart with a worked example: [docs/QUICKSTART.md](docs/QUICKSTART.md)
283283 │
284284 v
285285 ┌──────────────────────────────────────────────┐
286- │ CI Pipeline │
287- │ │
286+ │ CI Pipeline │
287+ │ │
288288 │ ┌─────────┐ ┌─────────┐ ┌──────────────┐ │
289289 │ │ fmt │ │ clippy │ │ test │ │
290290 │ │ │ │ (SAST) │ │ nextest + │ │
291291 │ │ │ │ │ │ doc tests │ │
292292 │ └────┬────┘ └────┬────┘ └──────┬───────┘ │
293- │ │ │ │ │
294- │ ┌────v────┐ ┌────v────┐ ┌─────v─ ───────┐ │
293+ │ │ │ │ │
294+ │ ┌────v────┐ ┌────v────┐ ┌────-─v ───────┐ │
295295 │ │ deny │ │ audit │ │ gitleaks │ │
296296 │ │ license │ │ RustSec │ │ secrets │ │
297297 │ │ +advisory│ │ │ │ detection │ │
298298 │ └────┬────┘ └────┬────┘ └─────┬────────┘ │
299- └───────┼────────────┼─────────────┼──────────── ┘
299+ └───────┼────────────┼─────────────┼───────────┘
300300 v v v
301301 ALL PASS ──────────────> Merge Allowed
302302```
0 commit comments