Skip to content

Shared thread titles and a Threads page #3455

Open

Description

@jhedlund

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:

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

  1. 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.
  2. 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.
  3. 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.
  4. Agent naming. A thread_title tool, so the first agent mentioned in a new thread names it, and only when it has no title yet.
1-channel-title 2-threads-page 3-pinned-done

Questions

  1. Do you want thread titles in 1.0 at all?
  2. Is buzz.thread-title an acceptable artifact type, or is the buzz.* 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.
  3. 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.
  4. 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:

  1. Titles in the channel and on thread tabs
  2. The Threads page
  3. Pin and Done
  4. The agent thread_title tool

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions