Skip to content

Commit f16b21f

Browse files
mpstatonclaude
andcommitted
new(context-v, issues): the search-results queue — concurrent agent searches, dealt with as they come
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UvYzx7vDWeafnkAi2nEQeb
1 parent 56191ce commit f16b21f

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
---
2+
title: "Concurrent agent searches queue into a search-results column — fire many, deal with them as they come"
3+
lede: "Agent searches take minutes, and today each one hijacks a single column the operator must babysit. Wanted: a search-results microfrontend on the far right — every fired search appends a collapsed card with status, progress, and expected wait; a signal fires when results land; expand to act, mark complete to clear. Run several at once, triage on arrival."
4+
date_created: 2026-07-24
5+
date_modified: 2026-07-24
6+
authors:
7+
- Michael Staton
8+
augmented_with:
9+
- Claude Code on Claude Fable 5
10+
semantic_version: 0.0.0.1
11+
tags:
12+
- Issue
13+
- Usability
14+
- Augment-It
15+
- Didi-Crawl
16+
- Search-And-Add
17+
- Microfrontends
18+
- Concurrency
19+
status: Open · Jotted
20+
---
21+
22+
# The search-results queue
23+
24+
## The two-part observation (operator, 2026-07-24 evening)
25+
26+
1. **Waiting is blind.** Crawls run 60–210s with one frozen status line —
27+
no liveness, no progress, no expected wait. Already flagged
28+
([[Crawl-Progress-Is-A-Black-Box-Needs-Traces-The-Operator-Can-Watch]]),
29+
but the deeper problem is the interaction model, not just the missing
30+
spinner detail:
31+
2. **One search monopolizes the surface.** The operator should click agent
32+
search in several places — links here, streams there, a team crawl on a
33+
third org — and have each land in the **furthest-right column** as its
34+
own entry, running simultaneously. Serial babysitting of a minutes-long
35+
operation is the real usability failure.
36+
37+
## The design (operator-specified)
38+
39+
- **Its own microfrontend — `search-results`** — the rightmost column: a
40+
queue of search cards, newest appended as fired, from ANY door (the 🤖
41+
buttons, 🔍 manual searches eventually, chat-fired crawls).
42+
- **Collapsed by default.** Each card/row shows: what's searching (target ·
43+
org), **status** (queued / running / done / failed), **progress**, and
44+
**how long the wait might be** (live timings exist: links ~90s, team
45+
147–211s observed — show elapsed vs. typical).
46+
- **Arrival signal.** When results land, the card signals (badge / pulse /
47+
count) — the operator notices without polling it.
48+
- **Expand to act.** Toggling a card open reveals the results and their
49+
actions — the per-row ➕ accepts for links/streams, the staged-people
50+
accept gates for team crawls.
51+
- **Mark complete.** An explicit done action clears the card. The queue is
52+
the operator's worklist; cards persist until dismissed, so nothing
53+
silently vanishes and nothing stale masquerades as current.
54+
55+
## What this absorbs and builds on
56+
57+
- **Supersedes [[Search-Column-Holds-Stale-Results-New-Agent-Searches-Dont-Reload-It]]**
58+
(#36): the reload-vs-stale question dissolves — every search is its own
59+
card with its own provenance; there is no single column to go stale.
60+
- **Gives #35's progress traces their home**: the per-card progress line is
61+
where `organization.crawl.progress` frames render.
62+
- **Enabled by the claim protocol** (#41): concurrent minutes-long invokes
63+
surviving reconnects is the substrate that makes a queue of them viable.
64+
- **Feeds #22** (component library): search cards, result rows, and accept
65+
gates shared across targets is exactly the component-extraction case.
66+
67+
## Open questions
68+
69+
- [ ] Where does queue state live — the new remote's own runes state
70+
(lost on remount), localStorage, or workspace frames (survives)? Lean
71+
workspace-backed: the queue IS operator state worth surviving a refresh.
72+
- [ ] Does the team crawl's staged-people flow move INTO the expanded card,
73+
or stay on the workbench People section with the card deep-linking to it?
74+
- [ ] Do manual 🔍 searches join the queue too (unifying all search into
75+
one surface), or only agent searches in v1?
76+
- [ ] Wait estimates: hardcode from observed timings per target, or track a
77+
rolling per-target average server-side?

0 commit comments

Comments
 (0)