fuzz-parser-exposure: doc-hidden re-exports of the @every parsers + skip_forward (three engines); visibility-only — sqlite substrate facade mod.rs line + PROVENANCE D-37; compile-level reachability pins per engine

This commit is contained in:
glm-5.3-flash committed 2026-10-10 21:30:46 +00:00
1 parent 860c5d6129
commit 21ab6fe564
12 files changed
+143 -22

No files matched your search

+67 -11
View File
@@ -1,7 +1,7 @@
---
id: fuzz-parser-exposure
name: Parser exposure — `#[doc(hidden)]` narrow surface for the three `@every` parsers + boundary arithmetic
status: pending
status: completed
depends_on: []
scope: narrow
risk: low
@@ -73,23 +73,26 @@ differential runs on the exposed functions.
## Acceptance Criteria
- [ ] All three engines re-export their `parse_every_interval` and
- [x] All three engines re-export their `parse_every_interval` and
`skip_forward` from the crate root, `#[doc(hidden)]`, with the
fuzz/test-only doc note
- [ ] `alkstore-sqlite/src/substrate/**` diff is **visibility-only**:
- [x] `alkstore-sqlite/src/substrate/**` diff is **visibility-only**:
exactly the two keywords in `queue_ops.rs` (`parse_every_interval`
→ `pub`, `skip_forward` → `pub`); the lineage body
(`watcher.rs`, `connection.rs`, `ops.rs`, `schema.rs`, `mod.rs`)
untouched; a PROVENANCE.md delta entry records the change
- [ ] pg/mem `scheduler.rs` diffs are visibility-only (two keywords
(`watcher.rs`, `connection.rs`, `ops.rs`, `schema.rs`) untouched;
a PROVENANCE.md delta entry records the change
*(amended at implementation, 2026-10-10 — `mod.rs` was in this
list, but a second mechanical constraint forced one facade line
there: see Notes. No lineage-body file was touched.)*
- [x] pg/mem `scheduler.rs` diffs are visibility-only (two keywords
each: parser → `pub`, `skip_forward` → `pub`) plus nothing else
- [ ] The re-exports are reachable from an external crate (pinned by a
- [x] The re-exports are reachable from an external crate (pinned by a
compile-level test or the `fuzz-target-every-parse` build itself;
record which)
- [ ] No behavior change: workspace gates green (`cargo build`,
- [x] No behavior change: workspace gates green (`cargo build`,
`cargo test`, clippy `-D warnings`, fmt); the engines' own
scheduler/parser test suites untouched and green
- [ ] `cargo check --target wasm32-unknown-unknown -p alkstore-mem`
- [x] `cargo check --target wasm32-unknown-unknown -p alkstore-mem`
still clean (visibility widening is wasm-neutral, pinned anyway)
## References
@@ -112,8 +115,61 @@ differential runs on the exposed functions.
## Notes
> To be filled by implementation agent
Decisions of record the implementation made that the description didn't
pin:
- **Second mechanical amendment — `mod.rs` could not stay untouched.**
Widening `queue_ops.rs`'s two functions to `pub` is necessary but not
sufficient: `lib.rs` cannot name the path `substrate::queue_ops::…`
at all — `mod substrate` is private *to `substrate`'s subtree* for
`queue_ops` purposes, so a through-the-path re-export fails E0603,
and `skip_forward` had **no `mod.rs` export** whatsoever (it was not
in the `pub(crate) use` list). The only route is the facade: `mod.rs`
gained `pub use queue_ops::{parse_every_interval, skip_forward};`
(one line; `parse_every_interval` moved out of the `pub(crate)` list
into it — a duplicate binding would be E0252), compile-probed clean.
This remains visibility-only — zero logic, zero signatures, zero
names; lineage body (`watcher.rs`/`connection.rs`/`ops.rs`/
`schema.rs`) untouched; containment holds (`mod substrate` private).
- **`mod.rs`'s boundary-doc sentence amended.** "Nothing here is
re-exported through the engine crate's public API" would have become
stale the moment the facade landed; the sentence now names this sole
exception inline, and the full story is registered as **PROVENANCE.md
D-37** (category `re-derivation`, per this task's amendment).
- **Reachability pin (criterion 4): compile-level test.** Each engine
gained `src/fuzz_surface_tests.rs` (`#[cfg(test)]`, declared in
`lib.rs`) — `doc_hidden_reexports_reach_the_crate_root` drives both
re-exports through the crate-root path (one accept case + one
`skip_forward` assertion each). Compile of the `pub use` itself is
the E0364-class pin; the true external-crate consumption arrives with
`fuzz-target-every-parse`'s build (its `shared` crate path-depends on
all three engines). Neither engine's existing suite files were
touched — the pin is a separate module.
- **Semver note (recorded per the description):** doc-hidden `pub`
items are still public API — removal is technically breaking; the
same commitment core's four `#[doc(hidden)]` constructors made,
bounded to a fuzz/test purpose.
## Summary
> To be filled on completion
Landed (2026-10-10): the `#[doc(hidden)]` narrow fuzz/test surface for
the three engines — `parse_every_interval` + `skip_forward` re-exported
from each crate root with the one-line fuzz/test-only doc note
(`Job::from_row` doc-posture style).
- **alkstore-sqlite**: `substrate/queue_ops.rs` two keywords widened to
`pub`; `substrate/mod.rs` gained the facade `pub use` line + the
boundary-doc exception sentence; `substrate/PROVENANCE.md` D-37
registered; `lib.rs` `#[doc(hidden)] pub use substrate::…` ×2.
- **alkstore-postgres / alkstore-mem**: `scheduler.rs` two keywords
each widened to `pub`; `lib.rs` `#[doc(hidden)] pub use scheduler::…`
×2. No provenance concern (engine-owned files).
- **Reachability pins**: `src/fuzz_surface_tests.rs` ×3 — one test per
engine driving both crate-root re-exports.
Verified: `cargo build` clean; `cargo test` green (all suites; the
three new pins pass; no engine suite touched); `cargo clippy
--all-targets -- -D warnings` clean; `cargo fmt --check` clean;
`cargo check --target wasm32-unknown-unknown -p alkstore-mem` clean.
Diff audited against the (twice-amended) criteria: engine
`scheduler.rs`/`queue_ops.rs` diffs are visibility keywords only.