Skip to main content

max / goingson

Adopt lint block, pin stable toolchain, cargo fmt, fix clippy Wire the shared clippy::pedantic block across all members, pin channel=stable, normalize with cargo fmt, and reach green under -D warnings: #[must_use] on builders, write! over format!-push, let-else, by-value Copy sort keys, Path-based ext checks. Scoped #[allow]s (with reasons) for Tauri command-handler args, map_err callbacks, ToString builders, and exact float compares in tests.
Co-Authored-By
Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-24 15:28 UTC
Signed with PGP, not checked
Commit: fb5dc3bee94ce0efe9f59c6a00d22f92ebf88ad4
Parent: 78b5a09
248 files changed, +2047 insertions, -2201 deletions
M Cargo.toml +32
@@ -118,3 +118,35 @@
118 118 # Internal crates
119 119 goingson-core = { path = "crates/core" }
120 120 goingson-db-sqlite = { path = "crates/db-sqlite" }
121 +
122 + [workspace.lints.rust]
123 + unused = "warn"
124 + unreachable_pub = "warn"
125 +
126 + [workspace.lints.clippy]
127 + pedantic = { level = "warn", priority = -1 }
128 + # Allow-list tuned from a measured breakdown across server/multithreaded/pter
129 + # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything
130 + # else in `pedantic` stays a warning. Keep this block identical across repos.
131 + module_name_repetitions = "allow"
132 + # Doc lints. No docs-completeness push is underway.
133 + missing_errors_doc = "allow"
134 + missing_panics_doc = "allow"
135 + doc_markdown = "allow"
136 + # Numeric casts. Endemic and mostly intentional in size and byte math.
137 + cast_possible_truncation = "allow"
138 + cast_sign_loss = "allow"
139 + cast_precision_loss = "allow"
140 + cast_possible_wrap = "allow"
141 + cast_lossless = "allow"
142 + # Subjective structure and style nags. High churn, low signal.
143 + must_use_candidate = "allow"
144 + too_many_lines = "allow"
145 + struct_excessive_bools = "allow"
146 + similar_names = "allow"
147 + items_after_statements = "allow"
148 + single_match_else = "allow"
149 + # Frequent false-positives in TUI and router-heavy code.
150 + match_same_arms = "allow"
151 + unnecessary_wraps = "allow"
152 + type_complexity = "allow"
@@ -1,5 +1,5 @@
1 1 #!/usr/bin/env bash
2 - # build-keychain.sh -- ephemeral Developer ID build keychain for headless signing.
2 + # build-keychain.sh: ephemeral Developer ID build keychain for headless signing.
3 3 #
4 4 # Why this exists: over SSH the Mac's login.keychain is locked
5 5 # ("User interaction is not allowed"), so `security find-identity` reports
@@ -10,7 +10,7 @@
10 10 #
11 11 # Team-agnostic on purpose: it signs with whatever identity the .p12 contains.
12 12 # That means remote signing works BEFORE the Apple Developer org transfer to the
13 - # LLC is finished -- the team only matters at the notarization step, which is a
13 + # LLC is finished; the team only matters at the notarization step, which is a
14 14 # separate concern (see release-macos.sh --sign-only).
15 15 #
16 16 # This is the first concrete piece of Bento (the app-release orchestrator).
@@ -26,7 +26,7 @@
26 26 #
27 27 # --- Usage (standalone, for inspection/debugging) ---
28 28 # # setup + teardown run as SEPARATE processes, so pin the keychain path so
29 - # # both agree (the default is unique per process — see BUILD_KEYCHAIN below):
29 + # # both agree (the default is unique per process, see BUILD_KEYCHAIN below):
30 30 # export BUILD_KEYCHAIN="${TMPDIR:-/tmp}/bento-build.debug.keychain-db"
31 31 # ./dist/build-keychain.sh setup # leaves the keychain in place
32 32 # ./dist/build-keychain.sh identity # print the Developer ID identity it holds
@@ -37,8 +37,8 @@
37 37 # BUILD_P12_PASSWORD password protecting that .p12
38 38 # BUILD_KEYCHAIN_PASSWORD password for the temp keychain (ephemeral; any value)
39 39 #
40 - # One-time prerequisite (cannot be done over SSH -- needs a GUI Terminal on the
41 - # Mac with login.keychain unlocked) -- export the cert + private key to a .p12:
40 + # One-time prerequisite (cannot be done over SSH, needs a GUI Terminal on the
41 + # Mac with login.keychain unlocked): export the cert + private key to a .p12:
42 42 # security find-identity -v -p codesigning | grep "Developer ID Application"
43 43 # # then, in Keychain Access: right-click the "Developer ID Application" identity
44 44 # # -> Export -> .p12 -> set a password -> save to ~/Code/_private/developer-id.p12
@@ -131,7 +131,7 @@
131 131 # shellcheck disable=SC2086 # word-splitting the list is intentional
132 132 security list-keychains -d user -s "$BUILD_KEYCHAIN" $orig
133 133
134 - echo "build-keychain: ready -- identity: $(bk_identity_name || echo '??')" >&2
134 + echo "build-keychain: ready; identity: $(bk_identity_name || echo '??')" >&2
135 135 # NOTE: keychain setup is now correct, but codesign STILL needs to run in the
136 136 # console GUI (Aqua) security session to USE the private key. A pure SSH session
137 137 # can enumerate the identity but not sign with it ("no identity found"). Drive
@@ -125,3 +125,6 @@
125 125 [features]
126 126 default = ["custom-protocol"]
127 127 custom-protocol = ["tauri/custom-protocol"]
128 +
129 + [lints]
130 + workspace = true
@@ -28,5 +28,5 @@
28 28
29 29 fn main() {
30 30 materialize_themes();
31 - tauri_build::build()
31 + tauri_build::build();
32 32 }
@@ -19,3 +19,6 @@
19 19 sqlx = { workspace = true, features = ["sqlite", "uuid"], optional = true }
20 20 tagtree = { workspace = true }
21 21 sha2 = { workspace = true }
22 +
23 + [lints]
24 + workspace = true
@@ -16,3 +16,6 @@
16 16
17 17 [dev-dependencies]
18 18 tokio = { workspace = true, features = ["rt-multi-thread", "macros"] }
19 +
20 + [lints]
21 + workspace = true