Skip to content

Promote v0.40.2 to production - #1542

Merged
mrubens merged 36 commits into
mainfrom
release/v0.40.2
Aug 22, 2026
Merged

Promote v0.40.2 to production#1542
mrubens merged 36 commits into
mainfrom
release/v0.40.2

Conversation

@mrubens

@mrubens mrubens commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Promote v0.40.2

Frozen at c626518fff8e0ea76d7e58077980fa7d0fa79712 — the commit where 0.40.2 was versioned. Commits merged to develop afterward require an explicit candidate refresh or ship in the next release.

  • Merge this PR with a merge commit (do not squash or rebase).
  • If multiple promote PRs are open, merge them in version order (oldest first).
  • Merging publishes a GitHub Release for v0.40.2 and triggers the existing GHCR v* image publish (latest channel).
  • The release/v0.40.2 branch can be deleted after this PR merges.

Changelog

0.40.2 (2026-08-22)

This patch improves Fast coordination, Slack task visibility, pull request review reliability, task feedback, and Brain preview operations.

Highlights

  • Configure a separate model and reasoning level for Fast orchestration.
  • Follow Fast-delegated Slack work through native streaming task cards and richer pull request updates.
  • Keep pull request review notifications and closeout work moving safely through GitHub API limits.
  • See renamed tasks immediately, get clearer billing pause guidance, and avoid empty Dependabot reports.

Patch changes

  • Explain when billing has paused new task launches and direct users to check billing across the web app and chat integrations.
  • Improve the Brain preview with truthful source and corpus status, full-corpus browsing, correct page metadata, more reliable Slack and GitHub ingestion, resilient nightly synthesis and fact extraction, and durable mirror credentials across redeploys.
  • Keep scheduled Dependabot triage quiet when a successful scan finds no open alerts or follow-up work.
  • Make Fast workflows easier to follow with native streaming Slack task cards, relayed coding progress, task-specific pull request updates, automated review feedback, terminal pull request status, actionable follow-up suggestions, and stronger recovery from long turns and transient provider failures.
  • Keep pull request review notifications and closeout work reliable under GitHub API limits by caching unchanged reads, deferring quota-limited work, and ignoring unrelated external bot activity.
  • Let deployment admins choose a separate model and reasoning level for Fast orchestration while keeping the coding model as the default fallback.
  • Refresh task lists and search results immediately after a task is renamed so the new title appears without reloading the page.

roomote-roomote Bot and others added 30 commits August 20, 2026 08:13
Co-authored-by: Roomote <roomote@roomote.dev>
Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
* fix: make draft PR notifications contextual

* fix: mark delegated PR context untrusted

---------

Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
Co-authored-by: @zarnivoop <9827931+zarnivoop@users.noreply.github.com>
Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
* feat: relay Fast child progress through parent

* chore: keep Fast relay type internal

* fix: reuse Fast relay key on retry

* refactor: derive Fast relay identity

---------

Co-authored-by: @daniel-lxs <57051444+daniel-lxs@users.noreply.github.com>
* [Fix] Canonicalize Slack day-page slugs so Brain retirement can heal

gbrain lowercases slugs before a page row is written, but the Slack
collector emitted and tracked slugs carrying the raw uppercase Slack
team/channel ids. The inventory therefore split into census rows
(lowercase, matching the corpus) and live-tracked rows (mixed-case,
matching nothing), and the healing replay's reconciliation, which
queries by the emitted prefix, retired zero pages.

- Day-page slugs are emitted in gbrain's canonical lowercase form
  (identical stored pages; only local bookkeeping changes), and slug
  parsing canonicalizes its input for rows written before the fix.
- A per-tick maintenance step (no-op once clean) rewrites mixed-case
  inventory rows to lowercase, merging case-duplicates by freshest
  lastSeenAt, and drops sync-state rows of superseded collector
  versions, which were polluting per-source partition aggregates.
- When that rewrite actually changed rows, the deployment ran the
  healing replay with the mismatch live and retired nothing, so the
  deep backfill is re-armed by clearing its cursor: the replay
  re-covers the window and the now-canonical reconciliation retires
  the duplicates the first pass missed. Timeline evidence source keys
  keep their original case: they are append-only dedupe keys, and
  changing them would duplicate timeline rows.

* fix: atomically rearm Slack healing replay

---------

Co-authored-by: Matt Rubens <2600+mrubens@users.noreply.github.com>
* [Fix] Canonicalize Slack day-page slugs so Brain retirement can heal

gbrain lowercases slugs before a page row is written, but the Slack
collector emitted and tracked slugs carrying the raw uppercase Slack
team/channel ids. The inventory therefore split into census rows
(lowercase, matching the corpus) and live-tracked rows (mixed-case,
matching nothing), and the healing replay's reconciliation, which
queries by the emitted prefix, retired zero pages.

- Day-page slugs are emitted in gbrain's canonical lowercase form
  (identical stored pages; only local bookkeeping changes), and slug
  parsing canonicalizes its input for rows written before the fix.
- A per-tick maintenance step (no-op once clean) rewrites mixed-case
  inventory rows to lowercase, merging case-duplicates by freshest
  lastSeenAt, and drops sync-state rows of superseded collector
  versions, which were polluting per-source partition aggregates.
- When that rewrite actually changed rows, the deployment ran the
  healing replay with the mismatch live and retired nothing, so the
  deep backfill is re-armed by clearing its cursor: the replay
  re-covers the window and the now-canonical reconciliation retires
  the duplicates the first pass missed. Timeline evidence source keys
  keep their original case: they are append-only dedupe keys, and
  changing them would duplicate timeline rows.

* [Improve] Make Brain source states reflect real ingestion

The settings page derived per-source states from raw sync-state rows
and misread nearly every source on a live deployment:

- 'Backfilling' meant any row with a cursor and no completion stamp,
  which is the permanent steady state of collectors whose cursor is a
  rolling checkpoint or mode-state (pull-request facts, member sweeps,
  Notion's incremental scan) and of the deliberately never-completing
  Slack and GitHub deep backfills. A replay in progress is now a
  parent row holding ONLY a cursor; a row with a watermark is a live
  stream.
- Slack and GitHub backfills now record honest completion when every
  known channel or repository has been read, and re-arm themselves
  when one the finished walk never read appears. The engine preserves
  a done step's cursor so the resumed walk reads only the newcomer.
- Stream counts were polluted: version-bump orphans, the day-page
  census, and per-repo rows stranded under a hardcoded superseded id
  all counted as streams, and 'history read' counted completion
  stamps that partition rows never carry. Collector ids now live once
  in BRAIN_COLLECTOR_IDS (types), collectors and readers share them,
  summaries scope to the current version's rows, GitHub's stream rows
  are migrated under the current id keeping their positions, and
  replay progress comes from the walk's own completed set.
- The corpus panel no longer tells a mature Brain it 'started
  ingestion today' when a write burst fills the recency sample; that
  line is reserved for corpora the untruncated sample proves young.

* fix: scope Brain backfill detection to parent rows

---------

Co-authored-by: Matt Rubens <2600+mrubens@users.noreply.github.com>
* fix: add Fast inference failure diagnostics

* fix: instrument Fast turn latency

* feat: capture Fast turn telemetry

* fix: align Fast turn diagnostics with logging conventions

* fix: measure Fast inference at the prompt boundary

---------

Co-authored-by: @daniel-lxs <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Roomote <roomote@roomote.dev>
* feat: add orchestration model preference

* fix: clear inherited orchestration reasoning

* fix: default orchestration reasoning to low

* fix: apply orchestration reasoning in Fast mode

* fix: clear stale model reasoning

---------

Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
* improve: browse the full Brain corpus

* fix: stop stalled Brain corpus pagination

---------

Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
…ody is whitespace-formatted (#1532)

Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
roomote-roomote Bot and others added 6 commits August 22, 2026 08:34
Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
Co-authored-by: Roomote <roomote@roomote.dev>
* fix: align Fast provider retries with tasks

* fix: preserve rate-limit retry overrides

---------

Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
…1538)

* fix: defer GitHub rate-limited PR closeout

* fix: detect GraphQL quota errors

---------

Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
Co-authored-by: @mrubens <2600+mrubens@users.noreply.github.com>
@mintlify

mintlify Bot commented Aug 22, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
roomote 🟢 Ready View Preview Aug 22, 2026, 2:25 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@roomote-community

roomote-community Bot commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

No code issues found. See task

Reviewed c626518

@mrubens
mrubens merged commit 0d33991 into main Aug 22, 2026
50 checks passed
@mrubens
mrubens deleted the release/v0.40.2 branch August 22, 2026 15:21
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.

2 participants