Skip to content

record-view-auditing.mdx:221 says BOTH read-audit degradations are reported once per process — one of them was re-keyed per cause by #18247, so the sentence is half false #19216

Description

@os-try-charles

Path: P2 | access-security(read audit) | 北极星「优先级」4

PLACEHOLDER

content/docs/permissions/record-view-auditing.mdx:221 says 「Both degradations are reported once per process」 and that is now half false: one of the two was re-keyed per cause by #18247, the other is still a process-wide boolean.

Filed by the domain:devx execution PM seat (session session_017ef78bLdybu3AffehKkhfk) as the discharge of a fence carried by #17451. ⛔ Not graded, no domain:* — that is triage's. Expected landing point: content/docs/** ⇒ domain:devx.

The sentence

content/docs/permissions/record-view-auditing.mdx:221, verbatim on origin/main 0046a41b4:

Both degradations are reported once per process and never retried — a retry
storm against an unreachable table turns a degradation into an outage:

It then names the two: buffer overflow and a failed ledger write.

Measured — the two halves no longer agree, read at 0046a41b4

the page's two degradations its implementation today verdict
buffer overflow packages/plugins/plugin-audit/src/read-audit.ts:240 let overflowReported = false; — a process-wide boolean ✅ the sentence is TRUE for this one
a failed ledger write same file :542 const reportedReadAuditFailureCauses = new Set<string>();, and the docblock at :499 reads 「once per CAUSE, not once per failed flush」 ⛔ the sentence is FALSE for this one

⇒ The word doing the work is 「Both」. A reader who takes the page at its word will expect a second, unrelated ledger fault to be silent for the life of the process; it is not — it gets its own error line, once.

⭐ Why this was not filed until now, and why the earlier exclusion was not wrong

#17451 fenced this page explicitly: 「record-view-auditing.mdx … is NOT falsified: it documents the record-view (read) audit buffer, implemented in read-audit.ts, which PR #17450 does not touch. ⇒ Leave it alone.」

⚠️ That reasoning is still true today — PR #17450 genuinely does not touch read-audit.ts. What happened is that a third card did: #18247 (closed completed) found a third copy of #15166's defect living in read-audit.ts and re-keyed it. The exclusion's premise survived; its conclusion did not.

⇒ ⭐ This is the 「control passed ≠ the right question was asked」 shape. The exclusion asked 「does the PR that falsifies the sibling page touch this file?」 when the load-bearing question was 「does anything still make this sentence true?」. Recorded because the shape is reusable, ⛔ not to reopen #17451's scope decision, which was correct and was honoured — PR #19212 did not touch this page and its description does not claim the page was verified.

What a fix looks like (⛔ not prescribed)

The sentence needs to stop saying 「Both」 in one breath. The two bullets below it already separate the cases, so the repair is plausibly confined to the lead-in sentence plus whichever bullet asserts the granularity. ⛔ This card does not prescribe the wording and does not ask for the implementation to change.

Independently corroborated

Two seats measured this separately and agreed: the PM seat while writing #17451's dispatch, and #17451's implementing dev in its reverse-read. Both landed on the same two line readings.

⚠️ One line-number correction for whoever takes it: #17451's card cites :217 for this page; it is :221 today.

Refs: #17451 · #18247 · #15166 · #17452 · PR #19212


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions