chore(release): 0.8.1 — duplicate adopt/open fix + fuzz harness bookkeeping
- version 0.8.0 -> 0.8.1 (bug-fix release; semver-checks 196 pass vs 0.8.0) - CHANGELOG 0.8.1: the manager_routing-found duplicate adopt/open fix, the fuzz harness, and the verification summary - publish exclude gains docs/research/ (internal research notes; fuzz/ was already excluded — package verified clean of both) - fuzzing.md §7.9: standing no-hosted-CI policy — corpus replay is the release-verification fuzz gate; campaigns manual via the detached runner; OSS-Fuzz out; no workflow files in this repo - AGENTS.md: corpus replay added to the verification checklist - lockfiles: alkcall 0.8.1 (root + fuzz) Verification: 684 tests; clippy -D warnings (main, wasm, fuzz/shared); fmt clean; doc clean; wasm32-unknown-unknown check+clippy clean; semver-checks 196 pass; publish --dry-run 116 files (no fuzz/research/ reviews/sdd/AGENTS in the tarball); fuzz corpus replay 5/5 green
This commit is contained in:
1 parent
77f7006e2e
commit
3bda29c419
6 files changed
+107
-10
No files matched your search
@@ -3,7 +3,12 @@
|
||||
**Status:** steps 1–3 of §7.4 adopted — `fuzz/` workspace, five targets,
|
||||
committed seeds, detached runner, two-tier campaigns run; one real
|
||||
finding (duplicate adopt/open destroying the live channel) fixed with
|
||||
regression tests. CI deferred until a platform exists (§7.8)
|
||||
regression tests. §7.2/§7.4's CI tiers are **not planned** — this repo
|
||||
will not run hosted CI (the git host is a minimal gitea that serves git
|
||||
only; see §7.9). CI's two deliverables are covered instead: the stable
|
||||
side's corpus replay (`cargo test --manifest-path fuzz/shared/Cargo.toml`)
|
||||
runs as part of every release's verification checklist (AGENTS.md), and
|
||||
campaigns run manually via the detached runner (§7.6)
|
||||
**Date:** 2026-09-27
|
||||
**Research inputs:** web survey of the 2025–2026 Rust fuzzing ecosystem, survey
|
||||
of fuzzing practice in comparable Rust protocol crates (rustls, quinn, quiche,
|
||||
@@ -380,11 +385,15 @@ comparisons), and a `-dict` of JSON tokens for the envelope targets.
|
||||
found; triage §6.2 candidates with targeted corpus entries.
|
||||
**Done for targets 1–2 — see §7.7.**
|
||||
3. Add targets 3–5, the smoke CI job, and `.gitignore` entries.
|
||||
**Targets 3–5 done, campaigns clean — see §7.8. CI deferred (no CI
|
||||
platform exists in this repo yet; the stable-side corpus replay
|
||||
`cargo test --manifest-path fuzz/shared/Cargo.toml` is the drop-in
|
||||
smoke gate when a platform is chosen).**
|
||||
4. Scheduled campaign tier; then OSS-Fuzz application.
|
||||
**Targets 3–5 done, campaigns clean — see §7.8. The CI job will not
|
||||
exist — see §7.9 (no hosted CI policy); the stable-side corpus
|
||||
replay `cargo test --manifest-path fuzz/shared/Cargo.toml` is in
|
||||
the release verification checklist instead (AGENTS.md).**
|
||||
4. ~~Scheduled campaign tier; then OSS-Fuzz application.~~ **Not
|
||||
planned — see §7.9.** Long campaigns are run manually via the
|
||||
detached runner (§7.6) when wanted; OSS-Fuzz is out (it requires
|
||||
hosted infrastructure and a public repo posture this project does
|
||||
not have).
|
||||
|
||||
### 7.5 Relationship to existing tests
|
||||
|
||||
@@ -733,6 +742,33 @@ artifacts directory — no crashes, hangs, OOMs, or leaks.**
|
||||
and held; §6.2-3 confirmed bounded at the parser level (§7.7). The
|
||||
stateful coverage §7.4 step 3 called for exists and is clean.
|
||||
|
||||
---
|
||||
|
||||
## 7.9 No hosted CI — the standing policy (2026-09-28)
|
||||
|
||||
§7.2's two CI tiers (per-push smoke, scheduled campaign) and the
|
||||
OSS-Fuzz step assume a hosted CI platform. This repo has none and will
|
||||
not get one: the git host is a minimal gitea that serves git and
|
||||
nothing else, deliberately — gitea/gitlab have had full-compromise CVEs
|
||||
(app.ini and any plaintext DB tokens exfiltrated in one real incident
|
||||
elsewhere), so the attack surface stays minimal. All verification and
|
||||
campaigns are **manual, run from the separate publishing server**:
|
||||
|
||||
- **Corpus replay is the fuzz gate, as plain `cargo test`:**
|
||||
`cargo test --manifest-path fuzz/shared/Cargo.toml` replays every
|
||||
committed seed through the same invariant functions the fuzzer runs
|
||||
— on stable, no nightly, no cargo-fuzz. It is part of the release
|
||||
verification checklist (AGENTS.md). This is CI tier 3's deliverable
|
||||
(§7.2), minus the automation.
|
||||
- **Campaigns** run via the detached runner (§7.6) when wanted —
|
||||
e.g. before a release, or after touching `src/protocol/wire.rs`,
|
||||
`src/channels/wire.rs`, the demux loop, or `ChannelManager`.
|
||||
- **OSS-Fuzz is out**: it requires hosted infrastructure and a public
|
||||
repo posture this project does not have.
|
||||
- Do not add Actions/Gitea-Actions/workflow files anywhere in this
|
||||
repo, and do not reintroduce "when CI exists" language into docs —
|
||||
point at this section instead.
|
||||
|
||||
## 8. Answering the "if / how" directly
|
||||
|
||||
- **If?** Yes — justified by position in the dependency graph, two stable
|
||||
|
||||
Reference in new issue
Block a user