ADR-012: forked-substrate design — contract-blind boundary, fidelity posture, port deltas
Follow-through on OQ-06/ADR-011: pin the fork's structural decisions (alkstore-substrate as a vendored path-dep crate, contract-blind API boundary with contract formulas computed engine-side and pinned equivalent by the contract suite, keep-the-kept-half API fidelity for cheap cherry-picks, the W-1/W-2/dead-man's-switch/W-4 port deltas decided per item, bootstrap re-keying off error-string matching, no rename migration, deliberate upstream tracking). Consistency sweep across the doc set for the fork: annotate ADR-003/ 005/009/010 and core-contract for superseded ownership facts, fix schedule-storage table naming (ADR-009 §5, queues.md), re-key ADR-010 §6's notifications hygiene to the at-attach cap the fork scope realizes, add OQ-11 (scaffold-time residue), and complete both ADR indexes. Independent review: 0 critical, warnings addressed.
This commit is contained in:
1 parent
befbe2e714
commit
2949612e2c
18 files changed
+491
-117
No files matched your search
@@ -24,7 +24,8 @@ The evidence for the decision:
|
||||
consumer-inventory.md](../../research/consumer-inventory.md) — needs
|
||||
"run the sweep every N ticks with leader election across a fleet."
|
||||
An interval, not a schedule object.
|
||||
- **alkfs (orphan reaping)** — [recalled: OQ-FS-07] — a periodic
|
||||
- **alkfs (orphan reaping)** — [recalled: alkfs OQ-FS-07,
|
||||
`/workspace/@alkdev/alkfs/docs/research/phase-0.md`] — a periodic
|
||||
orphan-cleanup pass. An interval.
|
||||
- No consumer document (pinned, documented, or operator-authority)
|
||||
names any of: wall-clock cron expressions, per-schedule timezones,
|
||||
@@ -166,10 +167,13 @@ resolving the transfer from [ADR-008](008-contract-v1-pinning.md) §7:
|
||||
|
||||
### 5. Schedule storage is engine-internal
|
||||
|
||||
Schedule rows live in engine-owned storage (SQLite: honker's
|
||||
`_honker_scheduler_tasks` — reused as-is, its `cron_expr` column
|
||||
carrying `@every` specs; Postgres: the engine-owned schema per
|
||||
[ADR-010](010-queue-semantics-depth.md) §8). Not consumer namespace;
|
||||
Schedule rows live in engine-owned storage (SQLite: the forked
|
||||
substrate's `__alkstore_scheduler_tasks` table per
|
||||
[ADR-011](011-sqlite-substrate-fork.md) — honker's scheduler-task
|
||||
table re-owned and renamed, carrying `@every` specs in its spec
|
||||
column, the cron machinery not ported; Postgres: the engine-owned
|
||||
schema per [ADR-010](010-queue-semantics-depth.md) §8). Not consumer
|
||||
namespace;
|
||||
schedule *names* take the same validation as queue names
|
||||
(§1 — non-empty, reserved-prefix rejected). No registry
|
||||
validation against queue names — enqueuing into a queue nobody has
|
||||
@@ -240,5 +244,8 @@ respawning; distinct from clean stop, §1).
|
||||
surface (`packages/honker-rs/src/lib.rs`, `honker-core/src/honker_ops.rs`),
|
||||
`@every` grammar and local-TZ brittleness (`honker-core/src/cron.rs`),
|
||||
tick/leader mechanics.
|
||||
- [ADR-011](011-sqlite-substrate-fork.md) — the SQLite-side schedule
|
||||
storage this §5 describes is the forked substrate's; cron machinery
|
||||
not ported.
|
||||
- [core-contract.md](../core-contract.md) — the spec carrying this
|
||||
surface.
|
||||
Reference in new issue
Block a user