Repository navigation
refactor(host,desktop): the agent ledger is fed from the live task list, and lists nothing on a clock - #3284
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
cbec1c9 to
ffb285d
Compare
7e1c3de to
265ae03
Compare
ffb285d to
8541392
Compare
265ae03 to
3ee823b
Compare
8541392 to
cd81a2d
Compare
3ee823b to
c5b9c64
Compare
cd81a2d to
7335635
Compare
c5b9c64 to
bbe5c74
Compare
7335635 to
3cbca8c
Compare
bbe5c74 to
710d7fa
Compare
3cbca8c to
b02eba7
Compare
710d7fa to
5d0c06b
Compare
ea6243b to
bd0ecfa
Compare
5d0c06b to
5a9a34c
Compare
65ab8cb to
5b179e4
Compare
827b2c5 to
3b02702
Compare
5b179e4 to
b17f29a
Compare
3b02702 to
36b084a
Compare
b17f29a to
e30e94a
Compare
36b084a to
98f9329
Compare
98f9329 to
f9bad5a
Compare
e30e94a to
f7f40e0
Compare
f7f40e0 to
a10add1
Compare
f9bad5a to
191addc
Compare
a10add1 to
5676471
Compare
191addc to
b1bab0a
Compare
…st, and lists nothing on a clock The tasks view carries every agent on a task as its task's own list names it, which main feeds the notices' ledger from: the thirty-second watch that listed each watched task's agents and read each agent with no task is gone, and so is every ask for the list again after an agent's start, end, or pull request, since the followed list moves by itself. A task the list drops takes its agents and their dots with it. Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
b1bab0a to
7199d3c
Compare
| observeFollowed: (agents, taskIds) => { | ||
| const held = new Set(taskIds); | ||
| forget((agent) => agent.taskId === null || held.has(agent.taskId)); | ||
| notices.observeAgents(agents); | ||
| }, |
There was a problem hiding this comment.
🟡 Archived agents keep unread dots
When an unseen agent is archived, observeFollowed keeps its unread dot because the task still exists. The filtered taskAgents list no longer includes the agent, so its dot remains after archiving.
Learn more
The live list excludes archived agents from taskAgents in taskAgentsOfLiveRows. The ledger retains agents as long as their task ID remains in taskIds; it never removes an agent merely because the list no longer contains that agent. Archiving a finished agent removes it from the live agent list but leaves the plan in the task list, so the archived agent's unread dot persists. An explicit observeTaskGone only handles an entire missing plan.
Example: Agent A finishes while the panel is away and receives an unseen dot. The developer archives A while keeping its plan. The next live list contains that plan but omits A; the ledger still reports A as unseen.
Recommended fix: Reconcile plan agents against the IDs in agents as well as taskIds, removing missing or archived agents and their unseen dots. Account for transient independent Realtime updates of plans and agents before pruning an agent absent from a partial snapshot.
Was this helpful? React with 👍 or 👎 to provide feedback.
Stack 2 · Task list and automations, piece 4. Stacked on #3276 (
luke/neon-realtime-plan-list-host).What: the agent-notices ledger is fed from the followed task list. The tasks view carries every agent on a task as its task's own list names it (
taskAgents, built bytaskAgentsOfLiveRows).Removed:
onTaskAgentsMoved, which made every start, end or PR askTASKS_REFRESHagain.observePublished.A task the list drops now takes its agents and their dots with it.
Tests:
taskAgentsOfLiveRowsequals each task's own agents endpoint, for the owner and a teammate.agent-notices: with agents coming from the list, nothing is listed on a clock or asked for again, an end the list carries is announced, and a dropped task clears its dots.