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
PR #2521 (perf(rate-limit-guard): spool the statusline snapshot, drain it on a cadence, merged 2026-08-12) is a performance change whose headline measurement — render.sh alone 234.4 ms vs behind the wrapper 1047.1 ms (Windows/MSYS, n=9, same-window) — was produced by a benchmark harness that lives only in an untracked local scratch directory. git ls-files finds no trace of it on any branch. If that directory is deleted, the marketplace's only perf-sensitive render path has a merged optimization nobody can re-measure and no way to catch a regression that quietly reintroduces the cost.
Evidence
The scratch directory (D:/worktrees/rlg-scratch, not a git repo) holds seven files from the Aug-12 benchmarking session:
file
verdict
why
lib-bench.sh
keep
the methodological core: spawn-floor control (the MSYS process-creation floor that dominates every number and invalidates cross-run comparison when it moves), the canonical statusline payload fixture, now_ms/median helpers
bench-idle.sh
keep
the lane that produced the headline numbers: N sequential renders, floor before/after, median + mean
bench-load.sh
keep
the concurrency lane: N virtual sessions rendering once a second for M seconds — the shape that stresses the spool/drain election
trace-probe.sh
keep
the xtrace probe that verifies the non-elected render path stays fork-free before passthrough — the property #2521 exists to protect
gates.sh
discard
throwaway wrapper around repo CI gates, hardcoded to a worktree path that no longer exists; CI and scripts/run-plugin-tests.sh own this
pr-body.md
discard
byte-identical to #2521's merged body (the PR adds only a ## Related section)
gates.log
discard
empty
The four keepers still reflect the current tee: the spool path, .last-drain stamp, RLG_TEE_DRAIN_INTERVAL override, and {"e":…,"p":…} record shape all match plugins/rate-limit-guard/scripts/statusline-tee.sh at head.
Proposal
Commit the four scripts to plugins/rate-limit-guard/bench/ (sibling to scripts/, matching the tests//tools/ plugin-root precedent elsewhere in the repo), lightly adapted:
drop the machine-specific STATUSLINE_ENTRY default (~/.claude/statusline/entrypoint.sh) in favor of the repo's own tee in standalone mode, resolved relative to the bench dir — runnable from a clean checkout
default trace-probe.sh's tee argument to the repo copy the same way
Deliberately no CI wiring: a wall-clock benchmark on shared runners is noise, not a gate, and the repo's test runner discovers only plugins/**/*.test.sh — none of these use that suffix, so nothing new runs in CI. Plugin version bump + changelog entry per repo convention, since the plugin directory's shipped contents change.
Summary
PR #2521 (
perf(rate-limit-guard): spool the statusline snapshot, drain it on a cadence, merged 2026-08-12) is a performance change whose headline measurement —render.shalone 234.4 ms vs behind the wrapper 1047.1 ms (Windows/MSYS, n=9, same-window) — was produced by a benchmark harness that lives only in an untracked local scratch directory.git ls-filesfinds no trace of it on any branch. If that directory is deleted, the marketplace's only perf-sensitive render path has a merged optimization nobody can re-measure and no way to catch a regression that quietly reintroduces the cost.Evidence
The scratch directory (
D:/worktrees/rlg-scratch, not a git repo) holds seven files from the Aug-12 benchmarking session:lib-bench.shnow_ms/medianhelpersbench-idle.shbench-load.shtrace-probe.shgates.shscripts/run-plugin-tests.shown thispr-body.md## Relatedsection)gates.logThe four keepers still reflect the current tee: the spool path,
.last-drainstamp,RLG_TEE_DRAIN_INTERVALoverride, and{"e":…,"p":…}record shape all matchplugins/rate-limit-guard/scripts/statusline-tee.shat head.Proposal
Commit the four scripts to
plugins/rate-limit-guard/bench/(sibling toscripts/, matching thetests//tools/plugin-root precedent elsewhere in the repo), lightly adapted:STATUSLINE_ENTRYdefault (~/.claude/statusline/entrypoint.sh) in favor of the repo's own tee in standalone mode, resolved relative to the bench dir — runnable from a clean checkouttrace-probe.sh's tee argument to the repo copy the same waybench/README.mdrecording what perf(rate-limit-guard): spool the statusline snapshot, drain it on a cadence (0.7.0) #2521 measured, on what platform, with what discipline (spawn-floor bracketing), and how to re-run each lane — including how to isolate a run from the machine's live~/.claude/rate-limit-guard/contract fileDeliberately no CI wiring: a wall-clock benchmark on shared runners is noise, not a gate, and the repo's test runner discovers only
plugins/**/*.test.sh— none of these use that suffix, so nothing new runs in CI. Plugin version bump + changelog entry per repo convention, since the plugin directory's shipped contents change.