[PROPOSAL] refreshInterval confirmed by behaviour; probe removed (PENDING-152 A3)

55 invocations over 516s at refreshInterval 10. Max gap = 10s exactly, through
a window in which the steward read and composed with no tool calls and no
typing. A 10s ceiling is only reachable if the timer fires independently of
activity, so the property AMENDMENT 2 rests on is established by observation
rather than by documentation.

Surface restored immediately, not scheduled: statusLine removed and verified
byte-equal to the pre-probe backup. A failure mode the jurist named in advance
("I'll remove it later" is how a temporary config becomes permanent) should not
then be enacted. The 25th runs against an unmodified settings file.

Banked, not solved: under refresh-driven ticking a tick can arrive with an
empty content window, and silence-because-nothing-happened is a different state
from silence-because-the-73%-said-so. Conflating them dilutes the proportions
with an unknown number of empty ticks. Settle before build.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JQKeKY9T9d95KpvHwwok8T
This commit is contained in:
David F Glidden
2026-08-22 22:44:22 +02:00
co-authored by Claude Opus 5
parent 2e8638da6d
commit 55918910e4
+47
View File
@@ -4212,3 +4212,50 @@ This is cleaner than what was filed, and it collapses two problems into one mech
`~/.claude/settings.json` now carries a temporary `statusLine` running `~/.claude/statusline-probe.sh` at `refreshInterval: 10`, logging each invocation to `~/.claude/statusline-probe.log`. Backup at `~/.claude/settings.json.bak-2026-08-22`. **The surface was confirmed free before installing; nothing was displaced.** Remove by deleting the `statusLine` key. It prints `· probe` and carries **no name and no utterance** — transport, not voice, per the standing line. May require a config reload to begin firing. `~/.claude/settings.json` now carries a temporary `statusLine` running `~/.claude/statusline-probe.sh` at `refreshInterval: 10`, logging each invocation to `~/.claude/statusline-probe.log`. Backup at `~/.claude/settings.json.bak-2026-08-22`. **The surface was confirmed free before installing; nothing was displaced.** Remove by deleting the `statusLine` key. It prints `· probe` and carries **no name and no utterance** — transport, not voice, per the standing line. May require a config reload to begin firing.
**Awaiting:** nothing. The empirical confirmation is a read of the probe log, not a decision. **Awaiting:** nothing. The empirical confirmation is a read of the probe log, not a decision.
### AMENDMENT 3 — 2026-08-22 — CONFIRMED empirically; surface restored; one design question banked
#### ✅ The schema's claim is confirmed by behaviour, not taken on documentation
Probe at `refreshInterval: 10`, **55 invocations over 516 seconds**:
| | |
|---|---|
| gaps of exactly 10 s | **45 / 54 (83%)** |
| shorter gaps (1–7 s) | 9 — event-driven updates layered on top, as the schema says |
| ⚠ **MAXIMUM gap** | **10 s — the refreshInterval exactly** |
**The 10-second ceiling is the whole finding.** It is only reachable if the timer fires independently of activity, and the measured window includes the stretch in which the steward read and composed a reply — no tool calls, no typing into the session — during which **the log never paused**.
**So the property the amendment rests on is established by observation:** the status line keeps firing with no input at all. *Documentation is a claim about behaviour; this is the behaviour.*
#### ✅ Surface restored — now, not "before the 25th"
`statusLine` removed from `~/.claude/settings.json`, **verified byte-equal to the pre-probe backup** (`d == b`, all seven original keys present and no eighth). Probe script deleted; backup deleted as redundant once equality was proven; the log kept as evidence at `scratchpad/statusline-probe-2026-08-22.log`.
Done immediately rather than scheduled, because *"I'll remove it later" is how a temporary config becomes permanent* — a failure mode named in advance should not then be enacted. **The derivation on the 25th runs against an unmodified settings file.**
#### 📌 BANKED, NOT SOLVED — the empty content window
*The jurist's third point, recorded now so it is not lost, and explicitly not settled.*
Under the old event-keyed scheme, events supplied the mumble's **content**: a tick fired because something had happened, so there was something to remark on. Under the refresh-driven scheme, frequency and content are fully separated — **a tick can arrive with an empty content window**, during exactly the long present-but-idle stretches the new design was adopted to cover.
⚠ **Silence must then be defined, because there are two different silences:**
| silence | meaning |
|---|---|
| *nothing happened* | the content window is empty; there is nothing to say |
| *the 73% said so* | something happened and the draw came up silent |
**If the first is implemented as the second, the proportions quietly stop meaning what they claim** — the measured 73/20/7 would be diluted by an unknown and variable number of empty-window ticks, and the utterance rate filed in PENDING-152 (≈2.3/day) would silently overstate. That is a defect of the same family as the burst problem: a generator producing something other than what its numbers describe.
**Settle before build, not before the beacon.** The obvious candidate — an empty window does not consume a draw — needs checking against §8's unlearnability requirement, since "did anything happen since the last tick?" is a state question, and state is where memory begins.
#### For the record — the flag did the work
A premise filed as load-bearing was falsified within the hour **by the party that filed it**, and was recoverable *only* because it carried an explicit unverified marker. An unflagged assumption inside something labelled *"structural limit"* is inherited as established, and the next reader has no way to know it was ever in question.
⚠ **Note also what the correction did NOT do: the conclusion kept its name and lost its original justification.** A daemon still buys nothing — but on between-session grounds, not on delivery gating, which turns out not to exist. **A conclusion that retains its old reasoning after that reasoning is falsified is how a false premise survives its own refutation.** The narrowed support is recorded in AMENDMENT 2 for that reason.
**Awaiting:** nothing. The empty-content-window question is banked for the build phase.