Files
alkstore/tasks/fork-provenance-and-floor.md
T

6.7 KiB
Raw Blame History

id, name, status, depends_on, scope, risk, impact, level, tags
id name status depends_on scope risk impact level tags
fork-provenance-and-floor Fork provenance register completion + inherited-test floor green completed
fork-port-connection-watcher
fork-rederive-queue-ops
narrow low component implementation
wave-2
substrate

Description

Close out the fork's bookkeeping and verify the test floor end-to-end (ADR-018's adoption discipline; ADR-011's tests clause):

  • PROVENANCE.md delta register: entries for every delta the port actually made, category-tagged per ADR-018's categories — the three watcher deltas (W-1, W-2, dead-man's switch), the table-family rename, the bootstrap re-keying, the drops (recorded as not-ported), the re-derivation (new code, contract-derived names), and any mechanical adaptations the port surfaced that the plan didn't anticipate. Each entry: what, why, the decision citation.
  • License/provenance cross-check: the notice matches the actual ported content; the register's revision citation (f4e53c6) matches what was actually diffed.
  • Test floor: run the full engine-crate test suite (inherited + contract-property) as one gate; fix or explicitly record any inherited test that the deltas legitimately changed (e.g. the dead-man's-switch panic test becomes a watcher-fatal-death test).
  • Lineage-diff sanity pass: produce (locally, not committed) the diff of the substrate subtree vs. the honker-core sources at f4e53c6 and skim it for accidental divergence — anything not covered by a register entry is either fixed or registered. This is the wave-2 review's primary input.

Acceptance Criteria

  • PROVENANCE.md register complete: every delta categorized and cited; no unregistered divergence from the lineage
  • License notice accurate; revision citation verified
  • Full substrate test floor green in one run; changed inherited tests documented in the register
  • Lineage diff skimmed; findings recorded

References

  • docs/architecture/decisions/018-provenance-register-and-cherry-picks.md
  • docs/architecture/decisions/011-sqlite-substrate-fork.md (tests clause)
  • docs/research/quality-read-honker-core.md §6

Notes

  • The lineage read of record is quality-read-honker-core.md §6 — not a diff. Task lines 30–31 cite quality-read §6 for the lineage vs. ported-tree comparison. §6 is the prose keep / re-derive / drop scope register; a mechanical full-coverage line-by-line diff does not exist as a document. The gate was therefore performed as: §6's prose scope (plus docs/research/reference-honker-machinery.md for line-cited verification) read first, the ported tree read against it in full coverage (not spot sampling), then a mechanical diff -u of the extracted lineage sources against their closest substrate counterparts as the corroboration pass. Both methods agreed on every divergence; the findings below cite the actual artifacts (subagent report + local diff files, /tmp/opencode/, not committed).
  • Lineage-diff findings (all now register-addressable): scheduler pause/resume/list/update unregistered as a drop → D-21; two kept-machinery in_savepoint regression tests whose re-derive-side drivers weren't ported → D-22; two lineage durability tests (python-child crash recovery, soak) not ported → D-23; micro-deltas (error-text re-owning, thread name, clippy lint shape) → D-24/25/26; and a substrate-side orphan pressure_deadline_is_bounded placeholder test (asserted only that time moves — a tautology, never part of the lineage or the port plan) → removed from ops.rs's pressure suite. That removal — the gate's only code change — is a test-deletion, not a behavior delta; it is recorded here rather than as a register entry because the register records divergences from lineage, and this added nothing.
  • D-12's enumeration was annotated in place (per ADR-018 §2's amendment-permitted class — correcting the record, not the story) to pin the scheduler surface's register/tick/soonest/unregister shape and cite D-21 for pause/resume/list/update.
  • Acceptance criterion 3 ("changed inherited tests documented in the register") — the dead-man's-switch test example in the task text is D-07's recorded landing (update_watcher_dies_cleanly_on_file_ replacement asserts join() == Ok where the lineage asserted a panic payload); the dropped non-adapted inherited tests are the D-22/D-23 rows. All inherited floors that the delta work changed are therefore register-visible.
  • Test floor: the single-run gate was exercised repeatedly — workspace runs (23 core + 3 contract-suite + 83 substrate = 109 tests green) plus a 3× repetition of the substrate crate run and a 5×-grep sweep with zero failures. One transient first-combined-run substrate failure did not reproduce across 4 subsequent full runs and 4 additional cargo test -p alkstore-sqlite repetitions; the flake is unattributed (temp-file-based concurrency tests are the suspect class). Test floor is green; the watch item is recorded here for wave-2 review, not as a blocker.

Summary

Gate-time completion of the fork's bookkeeping: the lineage diff (honker-core @ f4e53c6 f4e53c6b83ad2d6979c04098d576db024ce7e98d vs. the ported substrate) was produced locally and skimmed end-to-end by a dedicated full-coverage read plus mechanical diff -u corroboration; every divergence found is register-addressable. PROVENANCE.md completed: D-21..D-26 appended (scheduler pause/resume/list/update drop → D-21; dropped in_savepoint regression-test drivers → D-22; dropped python-child crash-recovery and soak durability tests → D-23; error-text/thread-name/clippy-shape micro-deltas → D-24/25/26), D-12's scheduler enumeration annotated in place, gate-time completion note added to the delta-register header. License/provenance cross-check: the bundled LICENSE's Apache-2.0 and MIT texts verified byte-verbatim against upstream LICENSE-APACHE/LICENSE-MIT via git show f4e53c6:…; the full fork-point hash, date, and package name node-v0.5.1-10-gf4e53c6 re-verified against the reference checkout; workspace license = MIT OR Apache-2.0 = upstream — the notice statement matches the tree. Test floor: workspace cargo test (23 + 3 + 83 = 109 green in one run) with repetition sweeps clean; one unreproducible first-run transient noted in the register's watch items, not blocking. One substrate test removed (pressure_deadline_is_bounded, a tautology placeholder with no lineage counterpart). The register now carries D-01..D-26 plus an empty cherry-picks section (append-only), and every divergence from the lineage is register-entered. Verified: cargo build, workspace cargo test, cargo clippy --all-targets -- -D warnings, cargo fmt --check all clean.