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

130 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: fork-provenance-and-floor
name: Fork provenance register completion + inherited-test floor green
status: completed
depends_on: [fork-port-connection-watcher, fork-rederive-queue-ops]
scope: narrow
risk: low
impact: component
level: implementation
tags: [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
- [x] `PROVENANCE.md` register complete: every delta categorized and
cited; no unregistered divergence from the lineage
- [x] License notice accurate; revision citation verified
- [x] Full substrate test floor green in one run; changed inherited
tests documented in the register
- [x] 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.