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: CLAUDE.md
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -109,3 +109,21 @@ Type-specific decoders invoked by the message formatter for custom Apple log obj
109
109
### Oversize String Handling
110
110
111
111
A key complexity: some log entries reference oversize strings stored in different tracev3 files. The example binary demonstrates the pattern — accumulate oversize entries across files, then re-process any entries that had missing data in a second pass.
112
+
113
+
## Pre-Commit Checklist
114
+
115
+
Run these in order before every commit. All must pass:
-**`#[deny(cast_lossless)]`** — Do not use `as` for widening casts (e.g., `u8 as u64`). Use `.into()` instead. Clippy will reject the PR otherwise.
126
+
-**`#![forbid(unsafe_code)]`** — This is workspace-wide. No `unsafe` blocks anywhere, including new modules.
127
+
-**Oversize entries span files** — A single log entry's oversize string may live in a different tracev3 file. Always accumulate oversize entries across all files before final log reconstruction. See `examples/` for the two-pass pattern.
128
+
-**Test data is external** — Tests will fail without downloading test data first (`cd tests && wget ...`). Don't assume test failures mean code is broken until you verify test data exists.
129
+
-**CI runs on macOS only** — x86_64 + aarch64. Linux builds work but CI doesn't test them.
0 commit comments