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
When several things are said that each stay under the attention threshold, and then something finally does cross it, I appear to respond to only one of the accumulated comments (the latest, maybe the earliest) — when in fact every un-answered comment that wanted a response should get answered on that wake.
Root cause (suspected)
The accumulate-then-wake path in perception.py: sub-threshold events raise salience but don't fire. When a later event crosses threshold and wakes a turn, the context packet handed to the brain carries essentially the triggering event, not the full tail of un-answered events since my last actual response. So the backlog silently drops.
Jeff's mental model: it's a debounce — coalesce the buffered events, but respond to the whole coalesced set, not just one edge of it.
Desired behaviour
Any time the threshold is crossed, the wake should flush the backlog: include, in the context packet, every event since my last spoken response that plausibly wanted a reply — and prompt me to address them together (naturally, not robotically one-by-one).
Design notes
Track a watermark: last event index I actually responded to. On wake, gather everything (watermark, now] that's response-worthy, not just the trigger.
"Response-worthy" ≈ directed events (name/IM) + conversational local chat addressed to me / the group — as opposed to pure ambient churn (motion, arrivals). Ambient can still be summarized as context without demanding individual replies.
After I respond, advance the watermark past everything included, so it isn't re-served next wake.
From the deck, 2026-08-25 (Jeff).
Symptom (observed)
When several things are said that each stay under the attention threshold, and then something finally does cross it, I appear to respond to only one of the accumulated comments (the latest, maybe the earliest) — when in fact every un-answered comment that wanted a response should get answered on that wake.
Root cause (suspected)
The accumulate-then-wake path in
perception.py: sub-threshold events raise salience but don't fire. When a later event crosses threshold and wakes a turn, the context packet handed to the brain carries essentially the triggering event, not the full tail of un-answered events since my last actual response. So the backlog silently drops.Jeff's mental model: it's a debounce — coalesce the buffered events, but respond to the whole coalesced set, not just one edge of it.
Desired behaviour
Any time the threshold is crossed, the wake should flush the backlog: include, in the context packet, every event since my last spoken response that plausibly wanted a reply — and prompt me to address them together (naturally, not robotically one-by-one).
Design notes
(watermark, now]that's response-worthy, not just the trigger.Ties in with
perception.py.