diff --git a/.changeset/fast-mode-skills.md b/.changeset/fast-mode-skills.md
deleted file mode 100644
index 043c2d266..000000000
--- a/.changeset/fast-mode-skills.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@roomote/cloud-agents": patch
----
-
-Let Fast mode discover and load packaged and repository-defined skill documents through bounded, conversation-safe tools without exposing filesystem access.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 45ca3cfc6..b497743f5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,9 +2,43 @@
This file tracks product releases for Roomote (single monorepo version). Automated release entries are prepended by `pnpm run version`.
+## 0.44.0 (2026-08-26)
+
+This release adds shared memory, skill discovery, and presentational widgets to Fast sessions, expands automation delivery across chat providers, and improves session and pull request review reliability.
+
+### Highlights
+
+- Save durable context from Fast sessions and recall it in later work through connected memory providers.
+- Discover and load packaged or repository-defined skills from Fast before delegating work.
+- Render safe status cards, tables, plans, and other presentational widgets in Fast session transcripts.
+- Deliver Fast automation reports across Slack, Discord, Microsoft Teams, and Telegram, with direct chat continuation where supported.
+
+### Minor changes
+
+- Deliver Fast automation reports across Slack, Discord, Microsoft Teams, and Telegram channel or direct-message destinations, with web continuation everywhere and direct chat continuation where the provider supports Fast session identity.
+- Let Fast sessions discover and load packaged and repository-defined skill documents through bounded, session-safe tools without exposing filesystem access.
+- Let Fast save durable preferences, decisions, corrections, and facts to shared memory so they can be recalled in later sessions, while supporting pluggable memory providers and making concurrent memory ingestion more reliable.
+- Render safe presentational widgets such as status cards, tables, and plans directly in Fast session transcripts while keeping raw HTML confined to the sandboxed web view.
+
+### Patch changes
+
+- Deliver Fast custom automation reports to their owners through configured Slack direct messages, and fail runs clearly when their configured Fast destination cannot be resolved or supported.
+- Reconcile image-only Fast replies with their canonical transcript events so optimistic messages do not remain duplicated or stale.
+- Keep Fast sessions moving through retryable provider failures without repeating completed tool effects, and forward follow-up instructions to active tasks before posting the confirmation reply.
+- Make Fast coding-task kickoffs clearer by describing the repository work and naming the target repository when it is known without exposing internal orchestration details.
+- Restore web-initiated Fast turns in standalone production images by shipping native-tool runtime dependencies and removing stale generated tool files during setup.
+- Honor each user's Fast response mode preference on the homepage even when the browser has a saved workspace, while keeping explicit environment links and active workspace choices ahead of the personal default.
+- Deliver completed pull request review findings reliably by tracking the review lifecycle with structured metadata instead of variable status wording.
+- Keep pull request review threads clear by removing stale action buttons when newer feedback arrives or an action is handled, while preserving the latest actionable controls across Slack, Discord, and Telegram.
+- Settle Slack task cards when work becomes idle or waits for input, then return them to an active state when work resumes without losing delayed final output.
+- Keep the current page visible while authenticated navigation loads and correct the label shown when an input request is cancelled.
+- Show Slack pull request review resolutions as subdued context notes instead of prominent message sections after an action is handled.
+- Show the redacted task memory submitted by an agent in the save tool result so users can inspect what was recorded without exposing secret-shaped values.
+- Deliver Teams Fast automation reports and failure states to newly created owner direct messages by using the persisted session route when no active route row exists.
+
## 0.43.0 (2026-08-26)
-This release brings Fast conversations into the dashboard, introduces a streamlined Memory experience, launches useful starter tasks directly from setup, and adds optional GitHub review checks.
+This release brings Fast sessions into the dashboard, introduces a streamlined Memory experience, launches useful starter tasks directly from setup, and adds optional GitHub review checks.
### Highlights
@@ -23,7 +57,7 @@ This release brings Fast conversations into the dashboard, introduces a streamli
### Patch changes
- Keep Slack pull request status and resumed task previews accurate across ordinary, Fast-delegated, retried, reopened, and completed task paths.
-- Keep Fast conversations useful across follow-ups and longer work by preserving native context through helper restarts, exposing deployment task inspection, responding naturally to corrections, and sharing concise progress when work takes time.
+- Keep Fast sessions useful across follow-ups and longer work by preserving native context through helper restarts, exposing deployment task inspection, responding naturally to corrections, and sharing concise progress when work takes time.
- Make pull request feedback and review checks more reliable by coalescing duplicate actionable notifications, completing checks when reviews finish, and showing provisional findings sooner when a summary is delayed.
- Render automation result tables in Slack with valid cell payloads, including tables with visually empty cells.
- Show the first user message as a Fast session's temporary title instead of exposing a timestamp-like conversation identifier while title generation finishes.
@@ -71,7 +105,7 @@ This release adds a shared task board, expands Fast delegation and preferences,
### Highlights
- Coordinate team work from a shared board organized by task lifecycle, ownership, and context.
-- Launch multiple independent tasks from one Fast conversation, choose their coding models, and consult focused reasoning subagents.
+- Launch multiple independent tasks from one Fast session, choose their coding models, and consult focused reasoning subagents.
- Send actionable GitHub check failures back to linked tasks and their originating conversations.
- Warn operators about provider usage limits and deliver configuration issues to admins even without a configured channel.
@@ -88,11 +122,11 @@ This release adds a shared task board, expands Fast delegation and preferences,
- Give Brain pull-request pages the PR description and labels from GitHub, GitLab, Gitea, Bitbucket, and Azure DevOps so agents can recall why a change was made, not only its title.
- Enrich Brain pull-request pages with files changed, code areas, line totals, and review outcomes across supported source-control providers so agents can find the changes that affected a part of the codebase.
-- Keep Fast conversations moving with clearer delegated replies, Slack task cards that resume after follow-ups, recovery from missing runtime dependencies and transient provider outages, and accurate guidance when a provider blocks a response.
+- Keep Fast sessions moving with clearer delegated replies, Slack task cards that resume after follow-ups, recovery from missing runtime dependencies and transient provider outages, and accurate guidance when a provider blocks a response.
- Show Fast response mode to every user in Personal Settings and apply each saved preference to eligible linked Slack and Discord messages without requiring deployment configuration.
- Trust only explicitly configured Roomote GitHub App slugs for managed pull-request activity, and keep Roomote attribution in pull-request descriptions to one canonical entry.
- Make onboarding easier to follow with clearer account, inference-provider, source-control, and environment guidance throughout the setup flow.
-- Make pull-request feedback in Fast conversations reliable by delivering review activity consistently, keeping Slack review actions usable after delegated tasks settle, suppressing duplicate or stale results, and reducing notification pressure on provider quotas.
+- Make pull-request feedback in Fast sessions reliable by delivering review activity consistently, keeping Slack review actions usable after delegated tasks settle, suppressing duplicate or stale results, and reducing notification pressure on provider quotas.
- Keep Brain task-memory history accurate by recording completed tasks reliably, distinguishing real ingestion gaps from completed backfills, and preventing the history-ingestion banner from returning after completion.
- Finish Slack task cards with the delegated agent's real result after Fast work settles, preserve actionable input requests, and keep terminal error cards stable while delivery retries.
- Give Fast and normal Roomote agents the semantic product release in their core prompt context while omitting channel tags and unavailable versions.
@@ -467,12 +501,12 @@ This release expands Amazon Bedrock and deployment controls, refreshes Automatio
### Patch changes
- Keep Azure Container Apps sandboxes suspended until Roomote deliberately wakes them, recover cleanly from leftover workers, and stop retrying runs whose sandboxes were deleted. Thanks to @tebieshi for contributing this improvement.
-- Stop ChatGPT subscription connections from waiting forever on expired or blocked device codes, explain why authorization stopped, and offer a clean restart. Thanks to @daniel-lxs for contributing this improvement.
+- Stop ChatGPT subscription connections from waiting forever on expired or blocked device codes, explain why authorization stopped, and offer a clean restart.
- Recommend Claude Sonnet 5 at medium reasoning for code review when operators apply supported provider presets, while retaining Opus for planning.
- Keep Discord task requests through account linking, focus onboarding on the required personal account connection, and preserve automation reply threads when tasks resume.
- Keep the Users settings invite list focused on links that still have uses remaining while retaining consumed invite records.
- Add a direct Personal settings shortcut to the signed-in user menu.
-- Make ChatGPT, xAI, and GitHub Copilot device connections handle expiry, rate limits, restarts, and stale polling consistently, with clearer terminal errors across all three providers. Thanks to @daniel-lxs for contributing this improvement.
+- Make ChatGPT, xAI, and GitHub Copilot device connections handle expiry, rate limits, restarts, and stale polling consistently, with clearer terminal errors across all three providers.
- Give sandbox providers more time to finish rate-limited starts before aborting, and offer a retry when a task start fails before producing output.
- Show terminal command output again in the web task view, with collapsible details and a copy button for easier inspection.
- Restore the previous deployment metadata and controller after a failed self-hosted image pull so operators can retry upgrades without breaking the next backup.
@@ -691,7 +725,7 @@ This release makes Roomote easier to reach across communication channels while r
### Patch changes
-- Let interrupted MCP OAuth connections resume safely after sign-in, route GitHub issue links to their matching environment, and keep source-control attribution and review follow-up behavior accurate. Thanks to @daniel-lxs for contributing the MCP OAuth improvement.
+- Let interrupted MCP OAuth connections resume safely after sign-in, route GitHub issue links to their matching environment, and keep source-control attribution and review follow-up behavior accurate.
- Improve deployment and task reliability with faster encrypted configuration access, request timing diagnostics, safer custom MCP environment-variable handling, and quieter automation discovery scans. Thanks to @mrubens for contributing these improvements.
- Show a workspace-shaped loading state while task history hydrates, preserve accepted or dismissed PR feedback in Discord, and add a Discord community link to the release-update dialog.
diff --git a/apps/docs/automations.mdx b/apps/docs/automations.mdx
index 083a49222..233661c11 100644
--- a/apps/docs/automations.mdx
+++ b/apps/docs/automations.mdx
@@ -134,7 +134,7 @@ Microsoft Teams replies continue the Fast session directly in chat. Teams only
resumes after verifying the active tenant installation, conversation, and
linked user. Telegram can deliver the same reports and continue them from the
web app, but inbound Telegram replies still use its normal task-routing flow.
-Runs with no report destination remain stored conversations and do not post to
+Runs with no report destination remain stored Fast sessions and do not post to
chat.
A run can skip or fail before execution when its configuration or launch state
@@ -186,9 +186,9 @@ an explicit IANA timezone.
Admins can also manage custom automations conversationally through the
`manage_custom_automations` tool: list, resolve a schedule, create, update,
delete, or run an enabled automation immediately. The tool is available both
-from a Roomote task and directly in a Fast conversation, so a quick chat
+from a Roomote task and directly in a Fast session, so a quick chat
message can handle the full automation lifecycle without launching a task.
-Fast conversations can also reach the deployment's enabled MCP servers, the
+Fast sessions can also reach the deployment's enabled MCP servers, the
same ones delegated tasks use. Use the tool's model-list action to
see the deployment's enabled model IDs and default before setting an override.
Model IDs preserve the configured inference route: `openrouter/...` targets
diff --git a/apps/docs/cost-analytics.mdx b/apps/docs/cost-analytics.mdx
index b4f71c81a..c1e5dc315 100644
--- a/apps/docs/cost-analytics.mdx
+++ b/apps/docs/cost-analytics.mdx
@@ -5,7 +5,7 @@ description: Review Roomote inference spend by task type, source, environment, p
---
Cost Analytics helps deployment teams understand how Roomote uses inference
-across tasks, Fast-mode conversations, and automations. It reports the cost of
+across tasks, Fast sessions, and automations. It reports the cost of
recorded model usage in US dollars, so you can spot the environments, models,
and work types that drive spend.
diff --git a/apps/docs/fast-sessions.mdx b/apps/docs/fast-sessions.mdx
index b3ac4fc7f..9fbfd2b5e 100644
--- a/apps/docs/fast-sessions.mdx
+++ b/apps/docs/fast-sessions.mdx
@@ -1,13 +1,13 @@
---
title: Fast sessions
icon: zap
-description: Chat with the fast orchestrator from the dashboard and review every Fast conversation's transcript.
+description: Chat with the fast orchestrator from the dashboard and review every Fast session transcript.
---
Fast is Roomote's conversational orchestrator: it answers directly when it can
-and delegates execution work into tasks when needed. A Fast session is one
-persisted Fast conversation, whether it started in Slack, Discord, Microsoft
-Teams, Telegram, an automation, or the web dashboard.
+and delegates execution work into tasks when needed. A Fast session persists
+across Slack, Discord, Microsoft Teams, Telegram, an automation, or the web
+dashboard.
## Start a Fast session from the dashboard
@@ -24,17 +24,22 @@ appear in the transcript with links to their task pages.
A session's transcript shows prompts, replies, and the tool activity behind
them, rendered with the same transcript view as tasks, with a generated title
-that updates as the conversation evolves. The view updates in real time while
+that updates as the session evolves. The view updates in real time while
a turn is running, so you can watch tool calls complete and replies land
without refreshing.
+Fast sessions can also render presentational widgets such as status cards,
+tables, and plans directly in the transcript. Widget HTML is sanitized and
+sandboxed in the web view; chat surfaces receive only the widget's text
+fallback.
+
## Reply to a session
Every session has a reply box at the bottom of the transcript; follow-ups
-continue the same conversation with full context. For conversations that live
+continue the same session with full context. For sessions that live
on another surface, such as a Slack thread, Roomote's answer is posted back
into the originating thread with a quoted copy of your web message, so the
-conversation stays in one place for everyone following it there. Fast replies
+session stays in one place for everyone following it there. Fast replies
across Slack, Discord, Microsoft Teams, and Telegram carry a "Reply or use the
web app" footer linking to the session view. Slack and Discord can also resume
Fast directly from chat. Microsoft Teams replies to Fast session and automation
diff --git a/apps/docs/integrations/index.mdx b/apps/docs/integrations/index.mdx
index 94edff6f6..19b3e6581 100644
--- a/apps/docs/integrations/index.mdx
+++ b/apps/docs/integrations/index.mdx
@@ -70,7 +70,7 @@ from [Personal Settings](/personal-settings).
| | Error and performance investigation | Admin connection once |
| | Data warehouse exploration | Admin connection once |
| | Read-only database access in Supabase | Enable first, then teammates link accounts |
-| | Shared memory context across tasks | Admin connection once |
+| | Shared memory across tasks and Fast sessions | Admin connection once |
| | Deployments, logs, and domain availability | Admin connection once |
| | Public X posts, users, trends, and news | Admin connection once |
| | Paid external capabilities via Zero | Admin connection once |
@@ -113,7 +113,8 @@ For most teams, this order works well:
from specs and runbooks
5. one data integration, such as Snowflake, Supabase, or Neon, when tasks need
database or warehouse context
-6. Supermemory when you want durable team context to carry across tasks
+6. Supermemory when you want durable team context to carry across tasks and
+ Fast sessions
After each connection, run a small task that uses the new context. For example,
ask Roomote to summarize a linked issue, inspect a monitoring alert, or explain
diff --git a/apps/docs/integrations/supermemory.mdx b/apps/docs/integrations/supermemory.mdx
index fe353fedf..5f9a8a523 100644
--- a/apps/docs/integrations/supermemory.mdx
+++ b/apps/docs/integrations/supermemory.mdx
@@ -1,16 +1,17 @@
---
title: Supermemory
-description: Save and recall shared memories across Roomote tasks.
+description: Save and recall shared memories across Roomote tasks and Fast sessions.
icon: '/logo/integrations/supermemory.svg'
---
Connect Supermemory when your deployment needs durable context that can carry
-across tasks, such as team preferences, recurring decisions, or important
-project conventions.
+across tasks and Fast sessions, such as team preferences, recurring
+decisions, or important project conventions.
## When to use it
- Recall relevant context from earlier Roomote tasks before starting new work
+- Carry durable context into Fast sessions
- Preserve explicit team preferences that should affect future tasks
- Keep durable decisions available without adding them to every prompt
@@ -20,13 +21,20 @@ Admins connect Supermemory once from **Settings > Integrations**.
## What to expect
-Supermemory is a shared deployment memory store for Roomote tasks. When it is
-connected, Roomote proactively saves durable shared context so future tasks can
-reuse it — team preferences, lasting decisions, workflow conventions, and
-recurring gotchas — without waiting for someone to say "remember this."
+Supermemory is a shared deployment memory store for Roomote tasks and Fast
+sessions. When it is connected, Roomote proactively saves durable shared
+context from completed tasks so future work can reuse it — team preferences,
+lasting decisions, workflow conventions, and recurring gotchas — without
+waiting for someone to say "remember this."
+
+In Fast, ask Roomote to remember a durable preference, decision, correction, or
+fact. Fast uses Supermemory's available writing tools, and later tasks or
+conversations can recall that context. When more than one memory integration is
+connected, Roomote uses one as the primary store and avoids writing the same
+learning to every store.
Task status, secrets, code snippets, one-off progress notes, and anything
already encoded in the repository still do not belong in memory.
-Roomote can also recall relevant memories near the start of substantive work and
-use them as additional context.
+Roomote can also recall relevant memories near the start of substantive tasks
+and requests and use them as additional context.
diff --git a/apps/docs/memory.mdx b/apps/docs/memory.mdx
index 7ba503425..71b23c927 100644
--- a/apps/docs/memory.mdx
+++ b/apps/docs/memory.mdx
@@ -157,9 +157,9 @@ when Memory is created because it sizes the vector store.
## How agents use it
-Agents get Memory as an MCP server with read-only tools. They can search it,
-recall relevant pages, browse what exists, and ask for a synthesized answer
-with sources. They cannot write to it directly.
+Agents get the built-in Memory as an MCP server with read-only tools. They can
+search it, recall relevant pages, browse what exists, and ask for a synthesized
+answer with sources. They cannot write to the built-in Memory directly.
For a substantive topic, agents query Memory before consulting overlapping
Slack, GitHub, task-history, meeting, or pull-request sources. They check those
@@ -172,11 +172,18 @@ a slug it controls, after scrubbing credential-shaped strings. An agent can
therefore contribute what only it knows without being able to touch any other
page.
-Fast conversations use the same pipeline. Ask Fast to remember something — or
+Fast sessions use the same pipeline. Ask Fast to remember something — or
state a durable preference, decision, or correction — and it saves the fact to
-the conversation's own memory entry, which the platform redacts and files just
+the session's own memory entry, which the platform redacts and files just
like a task memory. Saved facts become searchable after the next ingestion
-pass, so they surface in later conversations rather than instantly.
+pass, so they surface in later sessions rather than instantly.
+
+Additional memory integrations, such as Supermemory, can also provide shared
+context to tasks and Fast sessions. Roomote chooses one connected memory
+store for the initial recall so multiple stores do not repeat the same preflight.
+Agents can still consult another store when it has distinct context or you ask
+for it by name. Each integration uses its own available memory-writing tools;
+Roomote does not duplicate the same learning across stores.
Memories carry the environment they came from, so a page written while working
in staging is distinguishable from one written against production.
diff --git a/apps/docs/personal-settings.mdx b/apps/docs/personal-settings.mdx
index 86f2176e4..02f976dee 100644
--- a/apps/docs/personal-settings.mdx
+++ b/apps/docs/personal-settings.mdx
@@ -64,10 +64,11 @@ Personal Settings also include app preferences such as:
- **Mind Reader Mode** to expand LLM thoughts by default in task conversations;
you can still collapse or expand individual thought messages
- **Narration Mode** for a more streamlined task conversation view
-- **Fast response mode** to use fast responses by default for messages sent from
- your linked Slack and Discord accounts. This preference does not apply to the
- dashboard, GitHub, Teams, or Telegram. You can still use `!fast` explicitly in
- Slack whether the preference is on or off.
+- **Fast response mode** to select Fast by default for new homepage prompts and
+ use Fast responses by default for messages sent from your linked Slack and
+ Discord accounts. An explicit homepage workspace choice takes precedence.
+ The chat preference does not apply to GitHub, Teams, or Telegram. You can
+ still use `!fast` explicitly in Slack whether the preference is on or off.
Most teammates only need profile, linked accounts, and theme settings.
diff --git a/apps/docs/providers/source-control/github.mdx b/apps/docs/providers/source-control/github.mdx
index eb510eab9..38f668e17 100644
--- a/apps/docs/providers/source-control/github.mdx
+++ b/apps/docs/providers/source-control/github.mdx
@@ -219,8 +219,8 @@ Once the app is installed and an environment maps the repository:
Issue mentions use the environment mapped to the repository. Map the repository
to an environment before mentioning Roomote on issues.
-When a task delegated from a Fast Slack or Discord conversation opens a pull
-request, actionable review feedback returns to that same conversation. Use
+When a task delegated from a Fast session in Slack or Discord opens a pull
+request, actionable review feedback returns to that same session. Use
**Resolve these issues** to address the current feedback, **Auto-resolve on this
PR** to handle later actionable feedback automatically, or **Dismiss** to take
no action.
diff --git a/apps/docs/source-control.mdx b/apps/docs/source-control.mdx
index dd6d551b3..291e24be4 100644
--- a/apps/docs/source-control.mdx
+++ b/apps/docs/source-control.mdx
@@ -87,7 +87,7 @@ flagged issue is clearly fixed and the provider supports thread resolution.
## Pull request status notifications
When a tracked, Roomote-created GitHub pull request becomes conflicted, Roomote
-notifies the Slack, Teams, Telegram, Discord, or Fast conversation where the
+notifies the Slack, Teams, Telegram, Discord, or Fast session where the
task started. The notification is automatic and is sent once for each
transition into a conflicting state. If the pull request becomes clean and then
conflicts again, Roomote sends a new notification.
diff --git a/apps/docs/tasks.mdx b/apps/docs/tasks.mdx
index 0bac4e8b7..ce1107bea 100644
--- a/apps/docs/tasks.mdx
+++ b/apps/docs/tasks.mdx
@@ -117,8 +117,8 @@ You can send follow-up instructions while a task is active. If a task has
completed and Roomote has a restorable snapshot, a follow-up can resume from
that prior workspace instead of starting over.
-When a task delegated from a Fast conversation asks for input, reply naturally
-in the originating conversation. If one input request is pending, Roomote
+When a task delegated from a Fast session asks for input, reply naturally in
+the originating session. If one input request is pending, Roomote
applies a matching reply to that request instead of treating it as a separate
task instruction.
diff --git a/package.json b/package.json
index 293911cec..9879595b5 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "roomote",
- "version": "0.43.0",
+ "version": "0.44.0",
"license": "FCL-1.0-ALv2",
"packageManager": "pnpm@10.29.3",
"engines": {