Skip to content

feat: collaboration summaries - #3081

Merged
ryanweiler92 merged 1 commit into
devfrom
feat-collaboration-summaries
Oct 2, 2026
Merged

ryanweiler92 merged 1 commit into
devfrom
feat-collaboration-summaries

Conversation

@ryanweiler92

@ryanweiler92 ryanweiler92 commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

Collaboration: background thread summaries and action items

Work threads' summaries and action items are now made on the server, in the background, by Brain's text model (COLLAB_LLM_ENGINE_ID). Summarize no longer sends a turn through the thread's assistant room, so the room's conversation and running task are untouched.

When it runs

  • New mail: BrainSync queues every thread with new mail (except automated or skipped threads) after classifying. The sync does not wait for the summaries.
  • On open: WorkSummarizeThread(threadId) runs right away if the summary does not cover the thread's newest message. Otherwise it returns at once.
  • On Summarize / Regenerate: WorkSummarizeThread(threadId, force=true) always writes a new one.
  • WorkGetThreadInsights(threadId) returns the summary, whether it is current, run status (running / done / failed + error), and the thread's steps.

Runs use two small daemon pools of their own: one for synced mail and one for threads the owner has open. A thread has at most one run at a time.

Keeping action items current without duplicates

  • The model sees the steps already tracked and returns the current list. Generated steps are updated in place, or closed when a reply shows they're done. Untouched generated steps it leaves out are removed.
  • An item without an id that matches a tracked or dismissed step (same or nearly the same words) is treated as that step, not added again.
  • The owner's own steps, edited steps, finished steps and dismissed steps are never rewritten or re-added. An edited generated step can still be closed.
  • Re-reading mail the summary already covers does nothing.
  • Deleting a generated step keeps it as dismissed (unlisted), so it isn't suggested again.

Schema (added automatically on startup)

  • BRAIN_THREAD.SUMMARY_REF, SUMMARY_AT: the newest message the summary covers, and when it was written.
  • WORK_THREAD_STEP.ORIGIN (brain) and EDITED (set when the owner changes text, owner, due or kind).

Other changes

  • BrainListThreads(detail=true) adds summaryAt, summaryCurrent and summaryPending. Steps include origin.
  • Including or excluding a participant, or adding or removing a rule, marks summaries stale, so they rerun on the next open or new mail.
  • The BrainTopicModel access error now says "Brain's text model" instead of "topic model".

@ryanweiler92 ryanweiler92 self-assigned this Oct 2, 2026
@ryanweiler92
ryanweiler92 requested a review from a team as a code owner October 2, 2026 20:38
@snyk-io

snyk-io Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

✅ Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
✅ Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@ryanweiler92
ryanweiler92 merged commit 57a958f into dev Oct 2, 2026
5 checks passed
@ryanweiler92
ryanweiler92 deleted the feat-collaboration-summaries branch October 2, 2026 20:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant