<feat(conversation-panel): user-applied conversati...
# proj-agent-canvas
Hello @breezy-kilobyte-39430 and @hundreds-twilight-32833, We have this pull request from @straight-dog-12443, which includes some UI changes, particularly to the conversation panel. Please refer to the video below for more details. You can also run the pull request locally if you’d like to review and verify the changes firsthand. Could you please take a look and let us know whether you’re comfortable with the proposed UI, or if there are any changes you’d recommend? Thank you very much for your feedback and help! thankyou
video.mov
s
Originally, it came in as a prototype. Yesterday, I corrected some markdown bugs in the issue for it. I'm not sure it got any kind of real green light to be merged as a real UI change if there's any process for that.
h
This is a great time to get some more eyes on it. I lean in favor of it (although maybe tweaking the conversation layout defaults). I've been tracking a few other in-flight things so I've not been able to socialize this much
c
re: the video. We don't have an ā€œadvancedā€œ now, right? I would love it if we could avoid adding it
h
Correct, thats new. My thinking was folks aren't scrolling all the way down in the options to even see there are other filterable things to use
c
For example, ā€œtagsā€ on the right click menu could enable both visible tags and filter by them maybe
I just think it's unlikely to be used, ā€œhidden ā€œ
b
Okay, I'll take a look today! šŸ™‚ @straight-dog-12443 We'll do it live!
šŸ˜‚ 2
Hey all, so I've made a number of small design and copy changes and an important mod to how old conversations works: Hiding conversations older than 1 hour is really restrictive for anyone other than people maybe using OpenHands as a automations monitor and wanting to see only things recently done in the past hour, otherwise it becomes a useless filter. I regularly return to a conversation older than an hour if I took a break. So I made this variable so it has more utility outside for people wanting to hide conversations that are older than a week or month. I still think there's some thought that needs to be given to this modal, some of the groupings I updated so they are more "with like kind". An improvement I think we can consider for another version is greying out options that will no longer work if another is selected (Active only will hide archived by default). The tag filter is interesting but it's not exactly clear how to add a tag to a conversation so it works but that can be addressed later. Here's everything that landed: Hide old conversations • ReplacedShow older conversationswithHide old conversations(toggle on = hide). • Interval dropdown on the same row: Over 1 hour, Over 1 day, Over 1 week, Over 30 days. • Cutoff is persisted separately (
olderConversationCutoff
, default 1 hour) so turning the toggle off and on keeps the last interval. • Existing`showOlderConversations`preference is unchanged under the hood — only the UI is inverted. • View presets (Recent, Active, Compact) still turn hide on. • Shared dropdown menu for the list; compact chip for the trigger (tighter padding, quieter colors). More options information architecture • SplitThreads(All threads / Active only) fromAdditional(archived, hide-old, filter-by-tags). • Showheading →Additional. • Tags→Filter by tagsso it is not confused withShow tags(chips on the row). • Automations first radio:Shown with all. • Only automation runsuses the automations icon, not Lucide Workflow. View menu copy and icons • Heading:View. • Presets:Recent,Active,Compact. • Trigger icon:`ListFilter`. Compact preset icon:`Shrink`. • More options row:More options. • Empty tag state:No tags yet. Other copy • Chronological organize:By date. • Thread scope:Active only. • Metadata:Show tags,Details on hover. • Modal description: ā€œChoose how conversations are grouped and what each row shows. Changes save automatically.ā€ • Edit-tags wording: Name / Value, ā€œtag namesā€ instead of ā€œtag keysā€. Modal polish • Width`md`(520px). • Shared close X in the top-right (footer Close still there). • Full-width 1px lines at the scroll edges. • Mini toggles: shared`ToggleSwitchVisualsm`(14Ɨ24, 3px padding, no border). • Destructive menu-row icons stay danger-colored on hover. Tests • New modal tests, cutoff helper tests, store persist for the interval, scroll-edge helper tests. • Panel hide-toggle`aria-checked`inverted to match the new on = hide meaning.
😲 1
s
Hiding conversations older than 1 hour is really restrictive for anyone other than people maybe using OpenHands as a automations monitor and wanting to see only things recently done in the past hour, otherwise it becomes a useless filter. I regularly return to a conversation older than an hour if I took a break
have you considered just not taking breaks?
b
You're right, my work ethic is flawed. šŸ™‚
šŸ˜‚ 1
h
I don't think there is anything I disagree with in your changes
Can you have an agent (or manually 😬 ) fold that branch into yours @straight-dog-12443? I can pull down and poke around it at for feedback as well but it looks solid. What do you think @calm-artist-7206
šŸ‘ 1
s
I think the behavior I expect from 'recent' typically is last N entries from the top of the stack. I sorta expect the number of entries to be defined by my viewport not a wall clock
šŸ‘€ 1
h
There was another conversation recently around recent and paging being wonky that would touch on that too. I think we need to relook how load more works within workspace grouping. But the configurable recent bucket is a nice short term? This will also need to be looked at as we migrate more away from local storage which will be a known initial tech debt.
b
I don't think I touched that
h
Yep, it wasn't in this scope. Separate from this
b
Oh gotcha
c
LGTM! A few thoughts • ā€œfilter by tagsā€ is in both windows, maybe we could place it only in the first, default menu • I'd be curious if people use the second window, more than ~once. šŸ˜…
b
The filter by tags in the modal turns it on or off in the dropdown.
c
Is that necessary?
b
Good question! I tried to stay true to the original PRs intent, without going too deep into the weeds of rethinking it.
BRB, need to drop my car at the mechanic down the road.
c
I think tags might prove useful, so I’d love to see them enabled/disabled close enough to where the user is looking (default menu), and we’ll see if they get used or not. (People have been asking for conversations by keywords, which IMHO it’s unnecessary as a search, but tags might be close to what the ask probably was)
b
I think more people are likely to attempt search to find a conversation, not filter their sidebar, but that's an assumption.
c
I hear that, though I think maybe we can improve in other ways, or at least it’s worth thinking about. FWIW I’m playing with an ā€œinsider agentā€ or, well, a ā€œsecretaryā€, which can handle things like ā€œfind me all conversations that… criteria hereā€ šŸ™
s
I didn't think that toggling the tag feature on/off made sense but without that, I didn't have anything to put in the advanced menu. That said, we don't need to remove that stuff to get a test drive in the UI because if the default state for tags was on then I don't think anybody would ever go looking for the ability to turn them off.
šŸ’” 1
nod 1
c
Right, you can simply not use them
s
I'll merge the branches (manually if needed) and put up another draft. Then later this evening, perhaps I'll churn some butter before beating my clothes clean with a few rocks.
h
Haha
b
Everyone uses AI these days but the only real way to code is to first build my computer from scratch—harvest the raw materials that I smelt with my own hands, forge into chips I etch with a tooth from my sworn enemy...like I was taught by my father, and his father before me.
šŸ˜‚ 1
s
merged. doesn't have the more options menu entry to turn off tags it just has a toggle for the labels that does the same collapsing as clicking on the icon. if we want the menu entry, it would be easy to add.
šŸ™Œ 1
b
@straight-dog-12443 My last nit is to remove the tag and number if the tags are already present.
šŸ‘ 1
h
Running through some user testing on your branch now @straight-dog-12443. Do you mind if I push to your branch directly?
s
mi branch es su branch, hombre
šŸŽ‰ 1
h
Pushed two little fixes. Demo video of my run through
šŸ™Œ 2
c
Cool, thank you! Awesome stuff ā¤ļø One tiny stray nit: I think ā€œcompactā€ is used a lot with the meaning of ā€œcondenseā€ in AI agent apps. I had a moment of hesitation not understanding what it’s doing, even. I wonder if we could name that… something else. šŸ˜… But I don’t know how, so… 😹
s
Yeah, it's a valid concern for sure. Anybody who cut their teeth in Claude Code might think that Compact is the
/compact
command. Would "Dense" be better? I feel like that suggests a layout.
h
oh great point. Maybe 'condensed'? or 'Minimal'
s
'Condensed' collides with internal naming for the same process. I think 'Minimal' is king on this mountain.
šŸ‘ 1