Skip to main content

max / makenotwork

Drop the audit_review.md citations Same cleanup as the server side: `docs/audit_review.md` was gitignored and is gone, so the comments and test docstrings citing it pointed nowhere. The regression each test guards is already described in the line after the citation, so removing the pointer costs nothing. The crate header now says where findings actually live, which is GoingsOn. Cargo.lock picks up the patch-section entries a build writes back.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-05 13:55 UTC
Signed with PGP, not checked
Commit: 2cfee035bffc033df52bf2ad59013088be855f20
Parent: d9e1551
7 files changed, +16 insertions, -17 deletions
@@ -5009,6 +5009,14 @@
5009 5009 source = "registry+https://github.com/rust-lang/crates.io-index"
5010 5010 checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
5011 5011
5012 + [[patch.unused]]
5013 + name = "synckit-client"
5014 + version = "0.6.0"
5015 +
5016 + [[patch.unused]]
5017 + name = "synckit-config"
5018 + version = "0.1.2"
5019 +
5012 5020 [[patch.unused]]
5013 5021 name = "supernote-push"
5014 5022 version = "0.1.0"
@@ -5020,11 +5028,3 @@
5020 5028 [[patch.unused]]
5021 5029 name = "painhours"
5022 5030 version = "0.1.0"
5023 -
5024 - [[patch.unused]]
5025 - name = "synckit-client"
5026 - version = "0.6.0"
5027 -
5028 - [[patch.unused]]
5029 - name = "synckit-config"
5030 - version = "0.1.2"
@@ -382,7 +382,7 @@
382 382 // into the users table so *other* users' posts JOIN against the current author
383 383 // row, not a login-time freeze. This reuses the exact login upsert, including
384 384 // the stale-username vacate, so "refresh" and "login" can never drift into two
385 - // different mirror shapes (audit_review.md: apply_userinfo stale mirror).
385 + // different mirror shapes.
386 386 // Best-effort: rendering tolerates a momentarily stale row.
387 387 if let Err(e) = upsert_login_user(&state.db, info).await {
388 388 tracing::warn!(error = %e, "failed to mirror refreshed identity to users table");
@@ -3,7 +3,8 @@
3 3 //! # Design
4 4 //!
5 5 //! The competitive positioning, moderation policy, and rollback runbook live in
6 - //! the maintainer wiki; the risk history is in the gitignored `docs/audit_review.md`.
6 + //! the maintainer wiki; audit and fuzz findings are tracked as problems in
7 + //! GoingsOn.
7 8 //! <!-- wiki: mt-overview -->
8 9
9 10 pub mod auth;
@@ -100,8 +100,7 @@
100 100 // afterwards. The `/p/{slug}/upload` route already carries a `DefaultBodyLimit`
101 101 // (routes/mod.rs), but that is a separately-configured layer that could drift;
102 102 // enforcing the same cap here keeps the handler self-defending against a
103 - // memory-DoS regardless of the routing setup. See audit_review.md (uploads
104 - // buffer-before-cap).
103 + // memory-DoS regardless of the routing setup.
105 104 let mut data: Vec<u8> = Vec::new();
106 105 loop {
107 106 match field.chunk().await {
@@ -529,7 +529,7 @@
529 529 );
530 530 }
531 531
532 - /// Regression (audit_review.md N3, verify_quotes scope gap): a `[quote:UUID:HASH]`
532 + /// Regression (verify_quotes scope gap): a `[quote:UUID:HASH]`
533 533 /// marker must only verify against a post *in the same community*. Quoting a post
534 534 /// that lives in another community, even with the exact text and correct hash,
535 535 /// must be rejected, closing the cross-community matching-oracle.
@@ -26,7 +26,7 @@
26 26 assert_eq!(tags[0].slug, "bug");
27 27 }
28 28
29 - /// Regression (audit_review.md, settings suspended authz gap): a suspended
29 + /// Regression (settings suspended authz gap): a suspended
30 30 /// community's owner must be blocked from *mutating* settings, not just from
31 31 /// viewing the settings page. Prior to the fix `require_owner` let every write
32 32 /// handler through because only the GET page checked `suspended_at`.
@@ -114,9 +114,8 @@
114 114 /// Also rejects a suspended community (403): a suspended-community owner must not
115 115 /// be able to reach any settings route, GET or POST. All `require_owner` callers
116 116 /// are owner-only settings handlers, so the suspension gate belongs here rather
117 - /// than duplicated per handler, see `docs/audit_review.md` (settings suspended
118 - /// authz gap). The platform admin acts on suspended communities via the `_admin`
119 - /// routes, not these.
117 + /// than duplicated per handler. The platform admin acts on suspended communities
118 + /// via the `_admin` routes, not these.
120 119 #[tracing::instrument(skip_all)]
121 120 pub(crate) async fn require_owner(
122 121 state: &AppState,