Skip to content

claude-ops: take the Windows Git Bash figures the hook logging pipeline owes (budget, appends, ls -t, late-EOF) #3757

Description

@kyle-sexton

Summary

Every figure behind #3750 was taken on a Linux CI container. Windows Git Bash is the host .claude/rules/hook-budget.md binds the budget to, and four behaviors the pipeline leans on are documented for it but unmeasured there. The Codex review on #3750 asked for the budget figure; the README says it is owed and the switch stays off by default until it is taken.

Claim Why it matters What to run on Windows
The always-on kill-switch read costs about one spawn floor (2.42 ms against 2.08 ms on Linux) on 30 events this is the cost every consumer pays with logging off; the parallel wall across the 30 producer rows plus the existing hooks is the budget number the fleet's hook fan-out harness, one PostToolUse and one Stop payload, logging off and on
Concurrent >> appends of one line under 4 KB do not interleave 33 producers can append to one session file in the same second session-event-log.test.sh's 33-parallel case, then the same shape with 4 KB lines (Linux: zero corruption at 4 KB, 376 of 990 corrupt at 16 KB)
ls -t orders by mtime at one-second resolution retention's "newest N" and the reader's session scope key on it two files written in the same second on NTFS; confirm the newer sorts first or document the tie
The late-EOF stall costs one idle slice, not the whole read bound the producer reads 4 KB slices with a balanced-brace stop and a quarter-bound idle slice the held-open-pipe case on Git Bash; 262 ms is the Linux figure, the 1 s idle bound the ceiling

Also unmeasured: the peer-reported 11 s cold cli-flag-verify run (Linux: 461.6 ms after #3747).

Fix

Run the four probes on a Windows Git Bash host, record the figures in plugins/claude-ops/README.md beside the Linux ones (the "Hook budget accounting" shape guardrails uses), and either confirm the default-off posture or adjust the slice bound and the retention ordering if a figure demands it.

Acceptance

Related

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

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.work-class: read-onlyAudits, research, reports. No repository mutation; tracker and queue writes only.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions