Repository navigation
Description
Summary
I'd like threads in Team channels to have a short shared title, and a Threads page that lists titled threads across channels. I've built both for 1.0 and run them daily. Before I open PRs, I'd like to know whether you want this and in what shape.
Why
Most of my work with agents happens in threads, several at once across a dozen channels. A thread is identified only by its first message, so finding "the one about the relay upgrade" means scrolling channels. Solo chats already get a title; Team threads don't.
Background on 0.x
This is a port of work I proposed for the 0.x desktop:
- feat: allow creating and editing thread titles buzz#6739: the original request, with screenshots and discussion
- feat: shared thread titles on NIP-AR artifacts buzz#8563: shared thread titles (convention, CLI, agent auto-titling, header UI); open, approved by @joahg on 2026-11-05 with the
buzz.*type namespace left for a maintainer to decide - feat(desktop): Threads view of named threads buzz#8565: the Threads view (draft)
I've used it there daily since early October. Since 1.0 is where desktop work now lands, I've rebuilt it on buzz-app.
What I've built on 1.0
- Shared titles. A title is a NIP-AR artifact (kind 45010) with type
buzz.thread-title, one per thread root, so everyone in the channel sees it, including agents. It shows under the thread's first message and on its thread tab; renaming the tab sets it. No relay change is needed. - A Threads page. A bundled plugin listing titled threads by latest activity, with a channel filter, inline rename, unread counts and an agent-working indicator.
- Pin and Done. Private per-user marks, synced across the user's desktops, stored the way sidebar sections are. A done thread reopens when it gets new activity.
- Agent naming. A
thread_titletool, so the first agent mentioned in a new thread names it, and only when it has no title yet.
Questions
- Do you want thread titles in 1.0 at all?
- Is
buzz.thread-titlean acceptable artifact type, or is thebuzz.*prefix reserved for you to assign? The same question is open on feat: shared thread titles on NIP-AR artifacts buzz#8563. I'll rename to whatever you choose. - How does this fit with Add synced personal thread pins and Recent sidebar navigation #2063 (synced thread pins and a Recent sidebar)? My pins could move to whatever record that settles on.
- Pin and Done need a small pass-through in
src/features/relay/session.ts, a FOUNDATION file. Is that acceptable, or is there a preferred route?
Proposed PRs
In order, each usable without the next:
- Titles in the channel and on thread tabs
- The Threads page
- Pin and Done
- The agent
thread_titletool
Branch for reference: https://github.com/jhedlund/buzz-app/tree/feat/threads-page (one branch today, about 4,700 lines including tests; I'd split it as above).
Activity