Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/ground-voice-in-fast.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/guide-select-focus-handoffs.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/quiet-drafts-stay-put.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/unify-skills-settings.md

This file was deleted.

53 changes: 53 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,59 @@

This file tracks product releases for Roomote (single monorepo version). Automated release entries are prepended by `pnpm run version`.

## 1.7.0 (2026-09-11)

Roomote 1.7 adds natural voice and email conversations, smarter follow-through for delegated work, richer automation controls, and clearer usage insights.

### Highlights

- Talk with Fast Sessions through configurable GPT-Live voices and previews, or continue Roomote work and private automation reports over email with AgentMail.
- Let Fast quietly follow delegated coding tasks, surface meaningful developments, and correct work that drifts from the request.
- Add natural-language routing rules to built-in automations and manage existing pull requests across supported providers.
- Track token usage alongside spend in Cost Analytics, including historical totals when tasks are deleted.

### Minor changes

- Use Email through AgentMail as a replyable Roomote channel for task requests and outcome-first custom automation reports, with inbox-scoped setup, durable threads, signed answers, verified-account safeguards, and verification status and resend controls in Linked Accounts.
- Built-in automations can use natural-language Additional rules for repository scope, per-repository routing, and report guidance.
- Track token usage alongside spend in Cost Analytics with a total-token trend line, provider and model totals and averages, and token-aware drilldowns.
- DeepSeek V4.1 Flash replaces the dated Flash recommendation across OpenRouter, Vercel AI Gateway, and OpenCode Go.
- Fast Sessions quietly follow launched coding tasks, report meaningful developments, apply evidence-backed corrections until work settles, and distinguish task-history checks from incoming task reports.
- Agents can close, reopen, retarget, and edit existing pull requests across supported source-control providers without creating replacements.
- Weekly Manager Stats includes a daily created-versus-merged pull request chart and starts enabled on new deployments once a destination is configured.
- Unify shared and environment-specific skills in one searchable Settings catalog with availability filters and a marketplace dialog.
- Talk naturally with Roomote from Fast Sessions, with deployment-wide voice selection and previews while GPT-Live handles audio and Fast handles every utterance with the Session's model, tools, and context.

### Patch changes

- Custom automation task models can be changed only by the automation owner or an administrator.
- Built-in automation switches clearly show whether each automation is enabled or off.
- Saved automation cards show cadence in the deployment scheduling timezone used for execution.
- Fast Sessions can manage reminders and automations directly again without a scheduling-discovery step.
- Fast Sessions can use deployment-wide custom remote MCP integrations without exposing upstream credentials.
- Fast Sessions honor saved Routing Rules when selecting an environment or delegated coding-task model.
- Source-control and Linear webhook redeliveries no longer risk repeating actions when the original audit outcome was not finalized.
- Route every voice utterance through Fast so product answers use the Session's tools, context, and safeguards instead of unverified direct voice output.
- Move focus into required follow-up fields and dependent selectors after committed choices in guided setup flows.
- Blank slate tasks no longer expose internal repository sentinels in task headers and filters.
- Independent Slack suggested tasks reliably start in separate execution threads and Sessions instead of sharing task context; rejected launches clean up misleading start messages and remain available to retry.
- Communication replies use compact live footers that keep running-task counts, pull request links, and Session links current as work starts and finishes.
- Preview Markdown artifacts directly in task and Session galleries before opening them.
- Coding tasks recover from exhausted transient OpenCode connection resets instead of stopping without a useful Session handoff.
- Stopping a coding task from a Session preserves its task, sandbox, and artifacts for later resumption instead of terminally cancelling it.
- Preview status and failure pages provide consistent responsive branding, explanations, and recovery actions across desktop and mobile.
- Keep pull request metadata refreshes state-neutral and distinguish later opt-in clean-review promotion from the refresh itself.
- Custom automation cards refresh persisted results after Run now without requiring a page reload.
- Slack requests no longer receive a redundant eyes reaction while Roomote is working.
- Cost Analytics keeps historical spend and token totals when tasks are deleted while hiding deleted-task details.
- Connected Sentry integrations expose the full admin-approved tool catalog instead of a stale static allowlist.
- Open a user's Sessions directly from their avatar in Session viewers and task messages.
- Session timer activity uses user-facing labels instead of exposing internal wakeup tool names.
- Automatic task follow-through timers stay out of the Session reminder list while user-created timer receipts clearly describe each action and reused schedule.
- Automations and Skills page controls stay visible on desktop while long settings lists scroll independently.
- The Automations list combines built-in and custom entries with consistent search, columns, responsive text, and alphabetical ordering.
- Voice transcripts no longer show pending spoken acknowledgements after a call ends when the associated request was never sent.

## 1.6.0 (2026-09-09)

Roomote 1.6 adds flexible sandbox and public-repository work, native conversation charts, leaner scheduling discovery, and more reliable Sessions and skill management.
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/communications.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ attention.
| <IntegrationName href="/providers/communications/microsoft-teams" icon="microsoftteams" name="Microsoft Teams" /> | Teams that use Microsoft 365, Teams channels, and Microsoft Entra accounts | Microsoft can also be used for sign-in and account linking. |
| <IntegrationName href="/providers/communications/telegram" icon="telegram" name="Telegram" /> | Lightweight personal, group, or forum-topic chat access | Telegram is a messaging provider, not a sign-in provider. |
| <IntegrationName href="/providers/communications/discord" icon="discord" name="Discord" /> | Communities and teams that organize work in channels, threads, and forums | Discord is a messaging provider, not a sign-in provider. |
| <IntegrationName href="/providers/communications/agentmail" icon="/logo/integrations/agentmail.svg" name="Email (AgentMail)" /> | Low-frequency task requests and results over email | Email conversations are replyable in both directions; not a sign-in provider. |
| <IntegrationName href="/providers/communications/agentmail" icon="agentmail" name="Email (AgentMail)" /> | Low-frequency task requests and results over email | Email conversations are replyable in both directions; not a sign-in provider. |

Configure communications providers from **Settings > Communications**.

Expand Down
20 changes: 14 additions & 6 deletions apps/docs/cost-analytics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ description: Review Roomote inference spend by type, source, environment, provid
---

Cost Analytics helps deployment teams understand how Roomote uses inference
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.
across tasks, Fast sessions, and automations. It reports cost in US dollars and
token usage, so you can spot the environments, models, and work types that drive
spend or high-volume inference.

Any signed-in deployment user can open **Analytics** from the dashboard. The
page opens to **Costs** by default.
Expand All @@ -23,6 +23,7 @@ recorded inference usage. Use it to answer questions such as:
- whether a particular environment or model is driving costs
- how usage differs between people and automations
- how a provider's cost changes over time
- how token volume changes even when a request has no recorded price

The view starts grouped by **Type**. It distinguishes manual and automated
tasks, **Session** orchestration, **Memories** synthesis, and other **Non-task
Expand All @@ -34,6 +35,11 @@ model and provider. The source also appears in the detail drilldown. Choose a
time range before comparing periods so the chart and breakdown use the same
window.

The chart overlays a **Total tokens** trend line on the cost bars. Its tooltip
shows token and cost totals for the same day and grouping. The breakdown table
includes **Total tokens** and **Avg tokens / task** alongside cost. Selecting a
chart segment opens the matching token-aware detail rows.

Analytics date presets and daily chart buckets use the web server's timezone,
including daylight-saving transitions. Costs, Tasks, and PR analytics use the
same calendar-day boundaries; these are not based on each viewer's browser
Expand All @@ -52,9 +58,11 @@ providers. It is separate from [Anonymous Analytics](/anonymous-analytics):
cost data stays inside your deployment for your team to review, while anonymous
analytics is optional product telemetry sent to the Roomote team.

If a provider does not report pricing or usage for a request, that request
cannot contribute a cost to the view. Use provider and model filters to narrow
an investigation when totals do not match an external provider invoice.
If a provider reports tokens but no price for a request, that activity appears
in token totals even though it contributes no cost. A request with neither
pricing nor token usage cannot contribute to those metrics. Use provider and
model filters to narrow an investigation when totals do not match an external
provider invoice.

Deleting a task does not remove its recorded inference usage from Cost
Analytics. The historical usage still contributes to totals, task counts, and
Expand Down
7 changes: 5 additions & 2 deletions apps/docs/environments/definition.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -381,11 +381,14 @@ repository has a known trap, state it plainly.
Admins can configure natural-language routing rules from **Settings →
Environments**. Each rule maps a description, such as “Messages sent in the
hospital-bugs Slack channel,” to an environment or the broad **All repositories**
workspace.
workspace. A rule can also recommend a coding model for work that Fast delegates.

Rules are guidance rather than exact string matchers. An environment explicitly
named in a request takes precedence, and a specific rule takes precedence over a
catch-all default.
catch-all default. Fast evaluates the saved rules when it chooses an environment
or model for a delegated task; they do not override a model or environment the
user explicitly requested. Rules that point to a deleted environment are ignored
until an admin updates or removes them.

## MCP servers

Expand Down
6 changes: 6 additions & 0 deletions apps/docs/fast-sessions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,12 @@ reply in the transcript. Delegated tasks also report their completion, blockers,
and relevant results back into the parent Session; open the task workspace when
you need its full logs or diff.

Fast quietly follows the coding tasks it launches after the conversation becomes
idle. It reports meaningful progress, blockers, and questions that need input,
and can send an evidence-backed correction when a task is drifting from the
request. Routine status stays quiet. Follow-through stops when the Session's
coding work settles instead of leaving a recurring monitor behind.

**Session info** shows the total inference cost for the conversation and its
attached tasks. Open the cost breakdown to separate direct Session orchestration
from each task's usage.
Expand Down
7 changes: 4 additions & 3 deletions apps/docs/integrations/custom-mcp-servers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ description: 'Connect MCP servers that are not in the built-in catalog'

Custom MCP servers let agents use services that Roomote does not ship a
built-in integration for. Deployment admins configure them under
**Settings → Integrations → Custom MCP Servers**, and they become available to
agents in every task.
**Settings → Integrations → Custom MCP Servers**. Remote servers become
available to both Fast Sessions and sandbox tasks. Local stdio servers need a
task sandbox because Roomote launches their process inside that workspace.

Most MCP servers publish a JSON snippet in their docs. The add dialog's
**Import from JSON** button accepts a pasted `mcpServers` snippet (or a bare
Expand All @@ -27,7 +28,7 @@ Three kinds of servers are supported:
## How remote servers are reached

Remote custom servers are never handed to the task sandbox directly. The
sandbox sees an authenticated Roomote proxy URL, and the proxy injects the
sandbox and Fast use an authenticated Roomote proxy, and the proxy injects the
real credentials per request. This means:

- Header values and OAuth tokens never appear in sandbox-readable
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/integrations/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ from [Personal Settings](/personal-settings).
| <IntegrationName href="/integrations/supabase" icon="supabase" name="Supabase" /> | Read-only database access in Supabase | Enable first, then teammates link accounts |
| <IntegrationName href="/integrations/supermemory" icon="/logo/integrations/supermemory.svg" name="Supermemory" /> | Shared memory across tasks and Fast sessions | Admin connection once |
| <IntegrationName href="/integrations/vercel" icon="vercel" name="Vercel" /> | Deployments, logs, and domain availability | Admin connection once |
| <IntegrationName href="/integrations/voice" icon="voice" name="Voice" /> | Voice calls with Roomote on Fast Sessions | Admin connection once |
| <IntegrationName href="/integrations/voice" icon="openai" name="Voice" /> | Voice calls with Roomote on Fast Sessions | Admin connection once |
| <IntegrationName href="/integrations/x" icon="x" name="X" /> | Public X posts, users, trends, and news | Admin connection once |
| <IntegrationName href="/integrations/zero" icon="/logo/integrations/zero.svg" name="Zero" /> | Paid external capabilities via Zero | Admin connection once |

Expand Down
5 changes: 3 additions & 2 deletions apps/docs/integrations/voice.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Voice
description: Let your team talk to Roomote on a voice call.
icon: 'audio-lines'
icon: 'openai'
---

Connect Voice when you want people to [talk to Roomote](/voice) on a call from
Expand Down Expand Up @@ -29,4 +29,5 @@ its WebRTC connection offer to Roomote and receives only the negotiated answer.
Self-hosted operators can instead set `R_VOICE_OPENAI_API_KEY`. When both are
present the environment variable is used. Roomote's general `OPENAI_API_KEY`
is never used for voice, so enabling OpenAI for task inference does not turn
voice on.
voice on. An environment-managed connection is read-only in Settings and uses
Marin because it has no stored voice selection.
18 changes: 5 additions & 13 deletions apps/docs/logo/integrations/agentmail.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 0 additions & 8 deletions apps/docs/logo/integrations/voice.svg

This file was deleted.

8 changes: 8 additions & 0 deletions apps/docs/models.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,14 @@ in **Available Models**, and assign it to a role or select it for a Session or
task. Adding these routes does not change existing model defaults; access still
depends on the connected provider account or plan.

**DeepSeek V4.1 Flash** is recommended through
[OpenRouter](/providers/inference/openrouter),
[Vercel AI Gateway](/providers/inference/vercel-ai-gateway), and
[OpenCode Go](/providers/inference/opencode-go). Roomote uses the provider's
matching route and no longer recommends the older V4 Flash 0731 model. Existing
defaults do not change automatically; enable V4.1 Flash and assign it to a role
when you want to use it.

### Recommended default models

Providers also carry recommended defaults for the model roles below — for
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/snippets/integration-name.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ export function IntegrationName({ href, icon, name }) {
box: '/logo/integrations/box.svg',
azure: '/logo/integrations/azure.svg',
granola: '/logo/integrations/granola.svg',
agentmail: '/logo/integrations/agentmail.svg',
monday: '/logo/integrations/monday.svg',
rippling: '/logo/integrations/rippling.svg',
voice: '/logo/integrations/voice.svg',
};
const iconSrc =
manualIcons[icon] ??
Expand Down
8 changes: 4 additions & 4 deletions apps/docs/voice.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Voice
icon: audio-lines
icon: openai
description: Talk naturally with a Fast Session using GPT-Live.
---

Expand Down Expand Up @@ -60,9 +60,9 @@ Session, so the timeline shows both the conversation and the work behind it.

During a call the Fast Session returns its results to the voice rather than
writing them as chat replies; Roomote then reports them in its own words,
keeping numbers, names, paths, and link labels exact. If a result cannot be
spoken, for example because the call drops, it is written to the transcript
as a normal reply so nothing is lost. Typed messages sent during a call are
keeping numbers, names, paths, and link labels exact. The exact Fast result stays
in the transcript as a collapsed **Reported result to voice** row, including when
the call drops or speech is interrupted. Typed messages sent during a call are
answered in writing as usual.

Each spoken request is cleaned up (filler words, false starts, and misheard
Expand Down
Loading
Loading