hooks\agentpane.test.ts: (pass) agents > first seen and end times carry over from what the pane knew [2.46ms] (pass) agents > the list keeps every running agent and the eight that finished last, by when they ended [0.55ms] (pass) agents > agents group under their parents; hiding finished ones lifts their running children out [0.60ms] (pass) agents > tool calls read in a few words [0.55ms] (pass) agents > token use sums over an agent's responses; context is the latest request [0.36ms] (pass) agents > finishing agents make one toast: by name when alone, counted when several [0.49ms] (pass) agents > durations read as Claude Code writes them [0.21ms] (pass) agents > model ids read as their names [0.51ms] (pass) agents > settings fall back to their defaults and stay in range [0.55ms] (pass) agents > the latest batch begins after a quiet minute, and a running agent holds it open [0.65ms] (pass) agents > a finished batch says how long it took, how much ran side by side and what it used [1.36ms] (pass) agents > the status line counts the batch while it runs, and clears when it is done [0.58ms] (pass) agents > lanes share one axis, to now while one runs and to the last end once all have ended [0.67ms] (pass) agents > a spawn is listed at once, keeps its model past the next poll, and waits a moment for the list [0.41ms] (pass) agents > loops no agent claims are counted by request [0.23ms] (pass) agents > responses cut at the output limit are counted [0.46ms] (pass) transcript > wrapping breaks at spaces and counts wide characters as two [0.47ms] (pass) transcript > injected reminders, controls and bidi marks are left out [0.24ms] (pass) transcript > a conversation reads as its brief, replies, and each run of tool calls as one group [0.86ms] (pass) transcript > a call an ended agent never answered reads as interrupted, not running [0.50ms] (pass) transcript > arguments and result lines are cut to length, so no drawn text nears the engine's limit [2.89ms] (pass) transcript > the blocks drawn stay within the count and the text budget, newest when live, from the top when scrolled [0.44ms] (pass) transcript > a result previews its first three non-empty lines [0.22ms] (pass) review fixes > a result's preview reads its head and counts the rest [0.28ms] (pass) review fixes > an opened run keeps its newest calls within budget, always at least one [0.41ms] hooks\pane.test.tsx: (pass) a running agent opens the pane, lists what it does, and the pane folds once it is done [143.77ms] (pass) in the desktop app nothing opens, toasts or shows unasked [57.95ms] (pass) a new agent unfolds a pane folded by hand [65.81ms] (pass) pressing an agent shows its conversation, and back returns to the list [60.74ms] (pass) closed by hand while agents run, the pane stays shut until a new agent starts [56.95ms] (pass) the ▸ handle hides the pane, and the tab above the prompt brings it back [62.98ms] (pass) an agent that finishes says so in a toast [46.03ms] (pass) Stop asks once more, then stops the agent with TaskStop on the person's say-so [54.97ms] (pass) "done" in the header hides the finished agents and shows them again [51.89ms] (pass) a pane folded by hand and reopened from the tab after the agents finished stays open [74.24ms] (pass) inline, a pane the person opened is never closed by the mod [54.00ms] (pass) /agentpane shows a pane that waits unplaced, rather than closing it [43.32ms] (pass) a Stop pressed once does not stay armed past closing the pane [49.30ms] (pass) a Stop the tool refuses says why [56.33ms] (pass) the Stop consent names the agent by type and id [46.30ms] (pass) hiding finished agents keeps a running child of a finished parent in sight [43.09ms] (pass) a huge command or reply never stops the pane from drawing [55.78ms] (pass) scrolled back, the view holds its place as new blocks arrive [54.95ms] (pass) a new agent opens the folded pane on the list, not on the conversation left open [46.37ms] (pass) the tab counts failed agents apart from the ones that succeeded [66.62ms] (pass) a spawned agent is listed at once with its model, before the next poll [44.00ms] (pass) the model and effort its requests name show, the model winning over the spawn alias [56.08ms] (pass) the live line counts on by itself on the surface clock, the pane not redrawn [46.78ms] (pass) a response cut at max_tokens is flagged on the agent [53.67ms] (pass) model loops no agent claims are counted under the list [45.40ms] (pass) the agent open in the main view is marked in the list [49.33ms] (pass) above the prompt, the pane is a summary of at most eight rows [57.47ms] (pass) with autoOpen off, an agent does not open the pane [38.78ms] (pass) with foldAfter 0 and toasts off, the pane stays open and says nothing [117.97ms] (pass) the list and a conversation draw on every surface and width [169.58ms] (pass) two agents run on one time axis that grows on the surface clock, and the batch ends with its receipt [55.75ms] (pass) where a surface has no clock of its own, the time axis is drawn still [47.58ms] (pass) while the pane is not on screen, the status line counts the running agents, and clears when they are done [37.51ms] (pass) with the pane on screen, or the status line turned off, there is no status line [34.49ms] (pass) with statusLine off, a folded pane leaves the status line alone [42.67ms] (pass) an agent listed at its spawn still unfolds a pane that folded after the last batch [53.07ms] (pass) an agent spawned while a sync reads the list still unfolds the pane [62.64ms] (pass) an agent spawned while a sync writes keeps its model [49.85ms] (pass) with autoOpen off, a new agent leaves a pane folded by hand folded, its tab in place [52.48ms] (pass) above the prompt, a running child of a finished parent has its row [52.74ms] (pass) an opened run of hundreds of calls draws its newest ones, and the pane still draws [67.55ms] (pass) a conversation left open on an agent no longer listed goes back to the list, and the pane folds [99.01ms] 67 pass 0 fail Ran 67 tests across 2 files. [2.73s]