OQ-06 resolved: honker-core quality read fires the fork trigger (ADR-011)
Quality read of honker-core's watcher/transactional core cross-checked against the published crates.io artifact: the core itself is clean (Writer/Readers, polling-watcher failure handling, WatcherDeathGuard all verified), but published 0.5.0 predates upstream's unreleased fix train carrying the issue-#133 savepoint hardening (silent job loss in the dead-letter paths) and five .ok() error swallows — and ADR-010's queue depth requires engine-owned queue SQL in any posture. Resolution: fork honker-core at the reference revision, inherit the clean machinery and test suites, re-derive queue ops on contract v1, rename tables to __alkstore_*. - docs/research/quality-read-honker-core.md — full evidence - docs/architecture/decisions/011-sqlite-substrate-fork.md — decision - OQ-06 resolved in open-questions.md; ADR-003/005/008, engine-sqlite, queues, README annotated for consistency
This commit is contained in:
1 parent
79a135c934
commit
befbe2e714
10 files changed
+586
-74
No files matched your search
@@ -12,10 +12,14 @@ so far: **OQ-04 resolved** (2026-10-05,
|
||||
everything else hangs off); **OQ-09 + OQ-05 resolved** (2026-10-05,
|
||||
[ADR-009](decisions/009-scheduler-collapse.md) and
|
||||
[ADR-010](decisions/010-queue-semantics-depth.md) — the queue semantics
|
||||
track and the scheduler collapse/guarantee row). Next: OQ-06
|
||||
(the SQLite dependency gate — now carrying two concrete fork
|
||||
candidates from the queue-depth design), OQ-08 (rides the now-pinned
|
||||
trait shape), OQ-10 (versioning discipline for contract extensions).
|
||||
track and the scheduler collapse/guarantee row); **OQ-06 resolved**
|
||||
(2026-10-05, [ADR-011](decisions/011-sqlite-substrate-fork.md) — the
|
||||
fork trigger fired on the published-artifact facts). Next: OQ-08
|
||||
(rides the now-pinned trait shape and the ADR-011 substrate fork),
|
||||
OQ-10 (versioning discipline for contract extensions; note ADR-011
|
||||
changes its substrate-side facts for SQLite — the forked crate is
|
||||
versioned in the family workspace, so the engine/core contract pairing
|
||||
is what the discipline must track).
|
||||
|
||||
Resolved questions stay listed with their resolution; they are not
|
||||
deleted.
|
||||
@@ -182,24 +186,34 @@ narrowed to the pinning work its own record already scoped.)*
|
||||
|
||||
## Theme: Engines and dependencies
|
||||
|
||||
### OQ-06: honker-core quality read — does the default posture hold? *(== OQ-ST-06)*
|
||||
### OQ-06: honker-core quality read — does the default posture hold? *(== OQ-ST-06)* — **RESOLVED**
|
||||
|
||||
- **Origin**: [ADR-005](decisions/005-dependency-ownership.md),
|
||||
[engine-sqlite.md](engine-sqlite.md)
|
||||
- **Status**: open
|
||||
- **Status**: resolved (2026-10-05, Phase 1 —
|
||||
[ADR-011](decisions/011-sqlite-substrate-fork.md))
|
||||
- **Priority**: high (fork trigger is a gate on the SQLite engine's
|
||||
dependency posture)
|
||||
- **Resolution**: open. ADR-005 fixed the calculus and the trigger: the
|
||||
Phase 1 quality read of honker-core 0.5's watcher/transactional core
|
||||
(Writer/Readers/SharedUpdateWatcher/attach_*) — looking for defects
|
||||
the POCs wouldn't surface, unsafe assumptions in the watcher
|
||||
failure-handling, and schema-migration brittleness. Outcomes: posture
|
||||
holds (no ADR change), or a fork/patch need is named (fork is normal
|
||||
work per ADR-005).
|
||||
- **Cross-references**: ADR-003, ADR-005, OQ-05 (the queue-depth read
|
||||
handed it two concrete fork candidates: the expired-
|
||||
processing-row zombie fix and dead-row `get_job` visibility —
|
||||
complement-over-machinery vs fork is exactly its calculus).
|
||||
- **Resolution**: **The fork trigger fires.** Evidence:
|
||||
[quality-read-honker-core.md](../research/quality-read-honker-core.md).
|
||||
The read's original target is clean (Writer/Readers, the polling
|
||||
watcher's three-layer failure handling, `WatcherDeathGuard` — all
|
||||
verified in source, present in 0.5.0; schema migrations minor). But
|
||||
the published artifact is materially behind the reference revision:
|
||||
crates.io's honker-core 0.5.0 predates upstream's own fix train for
|
||||
its documented defect class (issue #133's savepoint hardening —
|
||||
silent job loss on mid-flight errors in the dead-letter paths; five
|
||||
`.ok()` error-swallows mapping every SQLite error to "no row"/"lock
|
||||
held"), stranded unreleased with no announced date. And contract v1's
|
||||
queue depth ([ADR-010](decisions/010-queue-semantics-depth.md) §3a/§5)
|
||||
requires engine-owned enqueue/claim/sweep/get_job SQL in any posture
|
||||
— making a post-fix ride a minority-shape, dual-owning the schema.
|
||||
Resolution: fork honker-core at the reference revision into owned
|
||||
code, inherit the clean watcher/transactional core + test suites,
|
||||
re-derive the queue ops on contract v1, drop cron/experimental
|
||||
backends, rename `_honker_*` → `__alkstore_*`. Recorded in
|
||||
[ADR-011](decisions/011-sqlite-substrate-fork.md); ADR-005's posture
|
||||
calculus applied, not renegotiated.
|
||||
|
||||
## Theme: Deployment and capabilities
|
||||
|
||||
@@ -240,6 +254,5 @@ narrowed to the pinning work its own record already scoped.)*
|
||||
## Deferred / Blocked
|
||||
|
||||
None currently. Every open OQ above is actionable Phase 1 architecture
|
||||
work (quality read, capability-surface shape, versioning discipline)
|
||||
with its evidence base complete — no external arrivals are being
|
||||
waited on.
|
||||
work (capability-surface shape, versioning discipline) with its
|
||||
evidence base complete — no external arrivals are being waited on.
|
||||
Reference in new issue
Block a user