-
Fix SEC-S2: harden YARA corpus floor + expand conservative ruleset
-
Fix PAY-S1: release a pending-refund claim when processing fails
-
Retire audit docs from the repo (treat-as-public)
-
test-fuzz: cover all 8 storage confirm failure branches via DB fault injection
-
test-fuzz Phase 2: pin storage CAS guards + session/report negative paths
-
Fix clippy gate: prefer contains/as_ref, drop needless Ok(?)
-
Default items.scan_status to clean so fileless items are discoverable
-
Preserve input on non-HTMX join-wizard validation; add field id to ValidationError
-
Add global request timeout; background the content export
-
Derive media folder/filename from S3 key; sniff real content type; clamp storage SUMs
-
Scan archive interiors recursively; close OAuth/admin gaps
-
Make Fan+ renewal credit issuance idempotent per invoice period
-
bento: expose recipe context + generalize version resolution
-
Add git personal-access-tokens for HTTPS clone and push
-
Require a claim link for free guest claims too
-
Reconcile git HTTP read access with SSH (honor collaborators)
-
Perf: shared HTTP client; bounded-parallel admin bulk actions
-
Perf: batch bundle lookup; stop gating git info/refs on the clone budget
-
Require a claim link for guest purchases (no email auto-attach)
-
Cap git upload-pack child lifetime to bound permit starvation
-
Remediate Run #21 moderate/low findings
-
Fail closed when ClamAV can't fully scan (CHRONIC S1)
-
Prune processed-webhook dedup markers (bounded growth)
-
Clear Run #20 low/minor audit items
-
Stream git clone packfile and gate clone concurrency
-
Stop cover-image replace from taking published tracks offline
-
test: fix fan_plus_checkout_requires_login for CSRF origin gate
-
OAuth maturation + HMAC method+path+nonce (close MT S13)
-
Remove now-dead KNOWN_PREAUTH_CSRF_GAPS const
-
Close CHRONIC A': posture-independent CSRF origin gate + drop pre-auth skip