frontend/agent: drop JS dispatch tables, read backend _icon/_summary/_category
Phase 2 of hyperhive#2196. The backend now pre-computes enrichment fields on every SSE event (stream_enrich.rs); the frontend reads them directly instead of running its own dispatch logic. Removed (~330 lines of JS): - fmtArgsGeneric / TOOL_ICONS / toolIcon / fmtRoom / fmtUser / fmtToolUse renderStream changes: - system events: dispatch on v._category (drop/thinking_tok/note/details) + v._summary / v._body instead of per-subtype if-chains; status tick still overrides label client-side when stateName === 'compacting' since elapsed time is a wall-clock value the backend cannot know at emit time - tool_use: use c._category === 'rich' for rich-renderer routing, c._icon / c._summary for flat rows renderRichToolUse: toolIcon(name) -> c._icon (from backend enrichment) stream_enrich.rs: also stamp _category: 'drop' on top-level type=result / type=rate_limit_event so the frontend can use a single _category check instead of separate type-based early returns
This commit is contained in:
parent
ae3f011eb3
commit
0f5367f948
3 changed files with 196 additions and 437 deletions
|
|
@ -84,7 +84,7 @@ pub(super) async fn events_stream(
|
|||
// (`_icon`, `_summary`, `_category`) so the frontend doesn't need to
|
||||
// duplicate the dispatch logic. The DB stores raw events; enrichment
|
||||
// is applied here so both the live tail and the history endpoint
|
||||
// deliver the same shape (see `events_history` below).
|
||||
// deliver the same shape (see `events_history` above).
|
||||
if let crate::events::LiveEvent::Stream(ref mut v) = ev.event {
|
||||
crate::stream_enrich::enrich(v);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue