You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: PROJECT_STATUS.md
+71Lines changed: 71 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -556,3 +556,74 @@ fixed since the doc was already in this commit.
556
556
PVE console) and replay the live root-drop matrix as a post-S5 sanity
557
557
pass. Not blocking; chain is unchanged.
558
558
559
+
## Release v0.1.0 — 2026-04-30
560
+
561
+
**Tag:**`v0.1.0`. Built off `main` after release-prep commits land. Repo is **private**; release stays private until the maintainer manually flips visibility per `docs/PUBLISH-CHECKLIST.md`.
562
+
563
+
**Release artifacts (attached to GitHub release):**
| A9 | Binary `--help` runs cleanly on dev laptop | ✓ |
605
+
| A10 | Binary `--mode detect --check` runs cleanly on dev laptop (verdict UNKNOWN — Arch dev laptop kernel config unreadable, expected) | ✓ |
606
+
607
+
**Live VM verification deferred:** Test VM 10.40.20.51 SSH access still locked out from S5 carry-over. Per session brief, this is acceptable — S5/S6 binary chain is unchanged from S4 which had a full live VM matrix. Dev-laptop `--help` + `--mode detect --check` runs satisfy the "binary runs cleanly" gate.
608
+
609
+
**Code review findings (`feature-dev:code-reviewer` subagent on release files), all addressed:**
610
+
611
+
| # | Severity | Finding | Fix |
612
+
|---|----------|---------|-----|
613
+
| C1 | Critical |`docs/usage.md``--vector list` example used invented YAML format; actual binary emits a plain-text padded table | Rewrote with verified output captured from `target/x86_64-unknown-linux-musl/release/copyfail --mode exploit --vector list`|
614
+
| C2 | Critical |`docs/usage.md``--dry-run` example used invented YAML format | Rewrote with `[dry-run] requested vector: …` lines from real run |
| C4 | Critical |`docs/usage.md``--scan` example missed `CLEAN ({n}):` block + `Scanned {n} paths in {ms}ms` header + `VERDICT:` footer | Rewrote with real `scan_human` output |
617
+
| C5 | Critical |`docs/usage.md``--diff` example included a `clean:` summary line not emitted by `diff_human`| Removed |
618
+
| C6 | Critical |`README.md` second demo block invoked `--mode detect --diff /etc/pam.d/common-auth` — `--diff` actually takes a baseline JSON path; this command would error | Replaced with `--mode detect --scan` (the correct one-shot cache-vs-disk diff) |
619
+
| I7 | Important |`ci.yml``cargo test` cross-compiled to musl on ubuntu-latest cannot execute (no QEMU) — silently runs zero tests | Switched test job to native target with `musl-tools` apt install (matches local dev workflow) |
620
+
| I8 | Important | aarch64 + armv7 cross-build linker risk | Verified `.cargo/config.toml` already has `linker = "rust-lld"` for both — confirmed locally that rust-lld cross-links without external toolchain |
621
+
| I9 | Important | release-notes.md size claim "~108 KB" is plausible but should be re-verified vs actual `dist/`| Verified: 108,432 bytes / 108 KB ✓ |
622
+
| I11 | Important | dist/ artifacts not produced by CI — process gap for release attachments | Documented: dist/ assembled locally for v0.1.0; future releases can add a release-on-tag CI job (deferred to v0.1.1+) |
623
+
624
+
**Carry-overs to v0.1.1+ (deferred, not blocking v0.1.0):**
625
+
626
+
1. release-on-tag CI job that builds artifacts + uploads to the release page (avoids manual `gh release create` step)
627
+
2. SSH access restoration on test VM 10.40.20.51 (S5 carry-over) and live root-drop matrix re-run as smoke test
628
+
3. All S2/S2.7/S4/S6 follow-ups (already enumerated in TODO.md and prior PROJECT_STATUS.md sections)
-[x] CI workflow: fmt + clippy + test + 3-target build matrix
42
+
-[x] docs/usage.md + docs/threat-model.md
43
+
-[x] caveman README at top-level, BLOG.md long-form at root
44
+
-[x] release-notes.md + docs/PUBLISH-CHECKLIST.md
45
+
-[ ] git tag v0.1.0 + push + gh release create on private repo
46
+
47
+
## Post-launch (manual, after this session)
48
+
-[ ] Maintainer-only: review release artifacts on private repo, then run docs/PUBLISH-CHECKLIST.md steps
49
+
-[ ] Flip repo to public (`gh repo edit ... --visibility public`)
50
+
-[ ] Submit Show HN, X thread, /r/netsec
51
+
-[ ] Submit to Exploit-DB
37
52
38
53
## S1 follow-ups
39
54
-[x] Decide whether to amend `docs/spec.md` line 99 primitive API (`write_4_bytes` → `write_buffer`) — done in S2 (`write_buffer` + new `write_buffer_at`)
0 commit comments