Fields on structs that derive Serialize or Deserialize ARE read — by the macro, on every JSON round-trip — but the static check only looked for explicit `.field` references in the diff. Result: every new response/request struct shipped through `/v1/*` was flagged as "placeholder state without a consumer." PR #11 head 0844206 surfaced 8 such false positives across mode.rs, respond.rs, truth.rs, and profiles/memory.rs — same shape as the existing string-literal exemption for BLOCK_PATTERNS, just at a different syntactic layer. Two helpers added: - extractNewFieldsWithLine: keeps each field's diff-line index so the caller can locate the parent struct. - parentStructHasSerdeDerive: walks back ≤80 lines for a `pub struct` boundary, then ≤8 lines above it for `#[derive(...)]` lines containing Serialize or Deserialize. Stops on closing-brace-at-col-0 to avoid escaping the enclosing scope. Verified on PR #11's actual diff: unread-field warnings dropped from 8 → 0. Synthetic cases confirm the check still fires on plain (non-serde) structs with no in-diff reader, so the genuine-placeholder catch is preserved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
Rust-first object storage system
Languages
TypeScript
38.4%
Rust
35.8%
HTML
13.9%
Python
7.8%
Shell
2.1%
Other
2%