From 169b914e1f16b18bb03c534ac8e486c4a0c9a7ae Mon Sep 17 00:00:00 2001 From: Stephen Waits Date: Thu, 29 Oct 2026 15:25:37 -0600 Subject: [PATCH] fix: what wave 1's gate found: B-43 speaks CHOICE, a Linux-only socket test is Linux-only GitHub's check on f043db35: bookspec's `rules_md_carries_every_id` refuses "DECISION" in docs/spec/rules.md (bookspec's word is CHOICE, P13 step 3); P4's B-43 wrote "DECISION D-47" twice. The portable macOS job: `a_socket_with_no_other_end_names_no_process_and_isnt_us` uses `SOCK_CLOEXEC` and Linux's answer for a peerless socket; it is gated to Linux, which is what it tests. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01HS8WZziDnyxunC23MUxrLp --- crates/ledger-mcp/src/local.rs | 4 +++- docs/spec/rules.md | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/ledger-mcp/src/local.rs b/crates/ledger-mcp/src/local.rs index 4511b2e..256619f 100644 --- a/crates/ledger-mcp/src/local.rs +++ b/crates/ledger-mcp/src/local.rs @@ -2640,7 +2640,9 @@ mod tests { /// A socket with no other end: the system answers for it (Linux: no /// process, no user), and that answer names neither this process nor - /// this account; the client's check refuses it. + /// this account; the client's check refuses it. Linux only: the + /// answer and `SOCK_CLOEXEC` are Linux's (the portable job found it). + #[cfg(target_os = "linux")] #[test] fn a_socket_with_no_other_end_names_no_process_and_isnt_us() { use std::os::fd::FromRawFd; diff --git a/docs/spec/rules.md b/docs/spec/rules.md index ff76422..585f1bd 100644 --- a/docs/spec/rules.md +++ b/docs/spec/rules.md @@ -3436,7 +3436,7 @@ The Lean step is `Documents.Step.document` with every control line tagged **bookspec:** `BS-entry-5` **Status:** AUTHORITY (the evidence a draft waits for, Pub. 583 and Rev. -Proc. 98-25); DECISION D-47 (owner-adopted recommendation, 2026-10-26: +Proc. 98-25); CHOICE D-47 (owner-adopted recommendation, 2026-10-26: reversals stay posted and need no evidence of their own); CONVENTION (the two states, and discarding a draft rather than posting and reversing it). @@ -3448,7 +3448,7 @@ GOAL: no entry the receipt policy covers posts without the document that SOURCE: IRS Pub. 583 (docs/spec/sources/irs-records.md: "you must keep supporting documents ... they support the entries in your books"); Rev. Proc. 98-25 ยง5.01 (the records must let the books be - demonstrated); DECISION D-47 (a reversal's evidence is its + demonstrated); CHOICE D-47 (a reversal's evidence is its original's, D-12); CONVENTION (a draft's state is a note: it moves no figure). INVARIANTS: