calibrate salience, and stop scrolling an unchanging room - #16
Conversation
A real run, once the summaries were sentences:
[glance] sal=0.7 A man is sitting at a desk, appearing to be working.
[glance] sal=0.8 A man is sitting at a desk and appears to be typing.
[glance] sal=0.8 A man is sitting at a desk and appears to be working.
Forty lines of that, every one of them accurate, and every one 0.7-0.8. A number
that is 0.8 for a man sitting still has stopped carrying information: Focus is
handed "this is interesting" for a scene where nothing has happened, and the one
tick that matters looks exactly like the other 3,599.
So `salience` gets anchors rather than an adjective. Someone working, reading or
walking through is 0.1, including the first time. 0.9+ is something wrong. Not
being able to tell what's happening is 0.1 and a summary that says so, since
uncertainty was reading as interest. It says out loud that if nearly every
glance lands above 0.5 the number has stopped working, because that's the
failure this is fixing.
And the log stops scrolling a scene that isn't changing: a quiet tick overwrites
the last quiet one. Escalations, Focus verdicts and errors still scroll, because
those are the record. Not a terminal means it's a log someone reads later, so
piping keeps every tick, now always flushed: an agent that runs for hours
shouldn't lose it to a block buffer when someone kills it.
The salience change is unmeasured here: evals need a real Glance model and this
box has the stub. `python -m saccade.evals` on a machine with one is the check.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 13 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
From a real run, once the summaries were sentences instead of
man:Forty lines of that. Every one accurate, every one 0.7-0.8.
The number had stopped meaning anything
A salience of 0.8 for a man sitting still is not a small error. Focus is handed
"this is interesting" for a scene where nothing has happened, and the one tick
that matters looks exactly like the other 3,599. The prompt described
salienceas "how much this stands out as worth attention" and left the model to invent a
scale.
Anchors instead:
Someone at a desk is 0.1, including the first time you see them. Not being able
to tell what's happening is also 0.1 with a summary that says so, because
uncertainty was reading as interest. And it says out loud that if nearly every
glance lands above 0.5 the number has stopped working, since that's the failure
being fixed.
The log stops scrolling a scene that isn't changing
A quiet tick now overwrites the last quiet one. An hour of an empty room was
3,600 near-identical lines, which buries the few that meant something and, when a
screen is one of the sensors, feeds straight back in as its own input.
Escalations, Focus verdicts and errors still scroll: those are the record. Not a
terminal means it's a log someone reads later, so piping keeps every tick, now
always flushed. At ~1 Hz flushing costs nothing, and an agent that runs for hours
shouldn't lose its log to a block buffer when someone kills it.
Unmeasured, and saying so
Evals score Glance against labeled scenes with the configured backend, and this
box only has the stub, which ignores the prompt. So the salience change is
reasoned, not measured.
python -m saccade.evalson a machine with a real Glancemodel is the check that matters.
make checkgreen: 191 passed, 7 skipped, ruff andmypy --strictclean.🤖 Generated with Claude Code