Skip to main content

max / balanced_breakfast

Strip AI tells from comments, docs and UI copy Em dashes, arrow glyphs, ellipsis characters and false-contrast phrasing removed across Rust comments, docs, shell scripts and lint messages. No behavior change.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-26 22:16 UTC
Signed with PGP, not checked
Commit: 7ad18bd7184c67d5be6ac944db3e3665a2d64e61
Parent: 5bcddc4
48 files changed, +265 insertions, -297 deletions
M CONTRIBUTING.md +1 -1
@@ -244,7 +244,7 @@
244 244
245 245 ### Full Pipeline
246 246
247 - Always verify: plugin fetch → DB upsert → command response → JS render. A bug in any layer can appear as a symptom in another.
247 + Always verify: plugin fetch -> DB upsert -> command response -> JS render. A bug in any layer can appear as a symptom in another.
248 248
249 249 ## When Adding a New Source Type
250 250
M Cargo.toml +1 -1
@@ -38,7 +38,7 @@
38 38
39 39 # Keychain access
40 40 # Pinned to the v1 store bundle explicitly: Apple Keychain, Windows credential
41 - # manager, and Secret Service on Linux. Do not enable `linux-keyutils-keyring-store` —
41 + # manager, and Secret Service on Linux. Do not enable `linux-keyutils-keyring-store`;
42 42 # that backing store is in-memory and drops every entry on reboot, which silently
43 43 # destroyed stored secrets before keyring 4 moved the default to Secret Service.
44 44 keyring = { version = "4", default-features = false, features = ["v1"] }
M synckit.toml +1 -1
@@ -1,4 +1,4 @@
1 - # SyncKit configuration — embedded in distribution builds.
1 + # SyncKit configuration, embedded in distribution builds.
2 2 # The API key is a client identifier (not a secret). It identifies this app
3 3 # to the MNW server. User authentication happens via OAuth2 PKCE.
4 4 #
@@ -18,24 +18,24 @@
18 18
19 19 1. **Feed shows red (circuit broken)?**
20 20 - Check `last_error` in feed details for the error category
21 - - **Auth error** → Fix API key/credentials in feed config, then "Reset & Retry"
22 - - **Config error** → Verify feed URL exists and is accessible, delete and re-add
23 - - **10+ transient failures** → Wait for service recovery, then "Reset & Retry"
21 + - **Auth error**: Fix API key/credentials in feed config, then "Reset & Retry"
22 + - **Config error**: Verify feed URL exists and is accessible, delete and re-add
23 + - **10+ transient failures**: Wait for service recovery, then "Reset & Retry"
24 24
25 25 2. **Feed shows yellow (degraded)?**
26 26 - System retries automatically
27 27 - If persistent: verify URL, check API key, try manual retry
28 28
29 29 3. **Feed never updates?**
30 - - Plugin `.rhai` file missing from `plugins/` → restart app
31 - - Auto-fetch disabled → check settings
32 - - Circuit breaker tripped → see above
30 + - Plugin `.rhai` file missing from `plugins/`: restart app
31 + - Auto-fetch disabled: check settings
32 + - Circuit breaker tripped: see above
33 33
34 34 ## Circuit Breaker
35 35
36 36 - **Threshold:** 10 consecutive failures for transient/parse errors. Auth/config errors trip immediately.
37 37 - **Rate-limited errors** do NOT increment the failure counter.
38 - - **Reset:** Feed menu → "Reset & Retry" (calls `reset_circuit_breaker_and_fetch`)
38 + - **Reset:** Feed menu -> "Reset & Retry" (calls `reset_circuit_breaker_and_fetch`)
39 39 - **What reset does:** Sets `circuit_broken=false`, `consecutive_failures=0`, clears `last_error`, attempts fresh fetch
40 40
41 41 ## OPML Import Issues
@@ -26,26 +26,26 @@
26 26
27 27 # 1. no-raw-hex
28 28 # No raw hex literals in JS or source HTML. HTML entities (&#NNNN;) and the
29 - # themes.js theme engine are exempt — themes.js is the only place that
29 + # themes.js theme engine are exempt. themes.js is the only place that
30 30 # builds CSS values via string concatenation, by charter.
31 31 hits=$(grep -rnE '#[0-9a-fA-F]{3,8}\b' "$SRC_JS" "$SRC_HTML" 2>/dev/null \
32 32 | grep -vE '&#[0-9]+;' \
33 33 | grep -v 'js/themes.js' \
34 34 | grep -v 'js/tests/' \
35 35 || true)
36 - report "no-raw-hex" "Raw hex literal in JS/HTML — use a CSS class or themed token." "$hits"
36 + report "no-raw-hex" "Raw hex literal in JS/HTML. Use a CSS class or themed token." "$hits"
37 37
38 38 # 2. no-csstext
39 - # style.cssText injection is forbidden — it usually means color/border/font
39 + # style.cssText injection is forbidden. It usually means color/border/font
40 40 # values are being set from JS and the result is unthemeable.
41 41 hits=$(grep -rn 'cssText' "$SRC_JS" 2>/dev/null | grep -v 'js/tests/' || true)
42 - report "no-csstext" "style.cssText injection — move styles into a CSS class." "$hits"
42 + report "no-csstext" "style.cssText injection. Move styles into a CSS class." "$hits"
43 43
44 44 # 3. no-var-fallback-hex
45 45 # No var(--token, #fallback). Fallback hex bypasses the theme contract.
46 46 hits=$(grep -rnE 'var\(--[a-z-]+,\s*#' "$FRONTEND" \
47 47 --include='*.js' --include='*.html' --include='styles.css' 2>/dev/null || true)
48 - report "no-var-fallback-hex" "var(--token, #fallback) — drop the fallback; it bypasses themes." "$hits"
48 + report "no-var-fallback-hex" "var(--token, #fallback): drop the fallback; it bypasses themes." "$hits"
49 49
50 50 # 4. no-styled-attrs
51 51 # No inline style="..." that touches color / background / border / shadow /
@@ -53,7 +53,7 @@
53 53 # tolerated; the goal is zero on the color and typography axes.
54 54 hits=$(grep -rnE 'style="[^"]*(color|background|border|shadow|font-size|font-family|padding)' \
55 55 "$SRC_JS" "$SRC_HTML" 2>/dev/null || true)
56 - report "no-styled-attrs" "Inline style= with color/background/border/shadow/font/padding — use a class." "$hits"
56 + report "no-styled-attrs" "Inline style= with color/background/border/shadow/font/padding. Use a class." "$hits"
57 57
58 58 # 5. no-style-color-from-js
59 59 # No .style.<color-axis-property> assignments. Dynamic positioning
@@ -61,16 +61,16 @@
61 61 # color, background, border, font, padding values must come from CSS.
62 62 hits=$(grep -rnE '\.style\.(color|background|backgroundColor|borderColor|font|fontFamily|fontSize|paddingTop|paddingBottom|paddingLeft|paddingRight|margin|marginTop|marginBottom|marginLeft|marginRight|gap|opacity)\b' \
63 63 "$SRC_JS" 2>/dev/null | grep -v 'js/tests/' || true)
64 - report "no-style-color-from-js" "JS-set color/background/border/font/margin/padding/gap/opacity — use a class." "$hits"
64 + report "no-style-color-from-js" "JS-set color/background/border/font/margin/padding/gap/opacity. Use a class." "$hits"
65 65
66 66 # 6. no-native-dialogs
67 - # window.confirm / window.prompt / window.alert are banned — they're
67 + # window.confirm / window.prompt / window.alert are banned. They're
68 68 # unstyled on every platform and disabled in iOS WKWebView. Use the
69 69 # BB.ui.show{Confirm,Prompt}Dialog / BB.ui.showToast helpers instead.
70 70 hits=$(grep -rnE '\b(window\.)?(confirm|prompt|alert)\s*\(' "$SRC_JS" 2>/dev/null \
71 71 | grep -vE 'showConfirmDialog|showPromptDialog|confirmAction|confirmDelete|confirmBtn|\.confirm-message|/\*|\*\s|// ' \
72 72 | grep -v 'js/tests/' || true)
73 - report "no-native-dialogs" "window.confirm/prompt/alert are banned — use BB.ui.show{Confirm,Prompt}Dialog or showToast." "$hits"
73 + report "no-native-dialogs" "window.confirm/prompt/alert are banned. Use BB.ui.show{Confirm,Prompt}Dialog or showToast." "$hits"
74 74
75 75 # 7. theme-token-coverage
76 76 # Every :root token must self-declare its nature on its declaration line: