Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
18eb7c2
Merge pull request #151 from RooCodeInc/release/v0.0.2
mrubens Jul 10, 2026
a049abd
Merge pull request #154 from RooCodeInc/release/v0.0.3
mrubens Jul 11, 2026
c3fe167
Merge pull request #176 from RooCodeInc/release/v0.0.4
mrubens Jul 11, 2026
578b21f
Merge pull request #199 from RooCodeInc/release/v0.1.0
mrubens Jul 11, 2026
8d74d0b
Merge pull request #208 from RooCodeInc/release/v0.1.1
mrubens Jul 11, 2026
4ead4f1
Merge pull request #217 from RooCodeInc/release/v0.2.0
mrubens Jul 12, 2026
a7dc263
Merge pull request #236 from RooCodeInc/release/v0.3.0
mrubens Jul 12, 2026
1dfc915
Merge pull request #251 from RooCodeInc/release/v0.3.1
mrubens Jul 12, 2026
573adf9
Merge pull request #262 from RooCodeInc/release/v0.4.0
mrubens Jul 13, 2026
f8ee4d9
Merge pull request #266 from RooCodeInc/release/v0.4.1
mrubens Jul 13, 2026
076d968
[Fix] Render continue action when revisiting a saved Slack setup (#299)
daniel-lxs Jul 13, 2026
09c42fd
Release Roomote 0.4.2
roomote Jul 13, 2026
8a7a3e2
Merge pull request #302 from RooCodeInc/hotfix/v0.4.2-slack-continue
roomote-roomote[bot] Jul 13, 2026
2ebcfee
Merge remote-tracking branch 'origin/main' into release/v0.5.0
mrubens Jul 15, 2026
6cbb9f1
Merge remote-tracking branch 'origin/develop' into release/v0.5.0
mrubens Jul 15, 2026
b632074
[Chore] Refresh 0.5.0 notes after develop catch-up
mrubens Jul 15, 2026
6d33b74
Merge remote-tracking branch 'origin/develop' into release/v0.5.0
mrubens Jul 15, 2026
691e036
[Chore] Bring release/v0.5.0 current with develop again
mrubens Jul 15, 2026
c9220fb
Merge pull request #361 from RooCodeInc/release/v0.5.0
mrubens Jul 15, 2026
4824a15
Merge pull request #425 from RooCodeInc/release/v0.6.0
mrubens Jul 16, 2026
5cb2fc0
fix: address v0.7.0 release feedback
mrubens Jul 16, 2026
434d309
fix: keep CodeQL defaults simple
mrubens Jul 16, 2026
f00dcc8
fix: address remaining release feedback
mrubens Jul 16, 2026
05dfb0b
Merge develop into release/v0.7.0
mrubens Jul 16, 2026
2ee6e58
Merge develop into release/v0.7.0
mrubens Jul 16, 2026
9ce21e3
Merge pull request #440 from RooCodeInc/release/v0.7.0
mrubens Jul 16, 2026
6679f80
Merge pull request #456 from RooCodeInc/release/v0.7.1
mrubens Jul 16, 2026
0e1dea2
Merge pull request #485 from RooCodeInc/release/v0.8.0
mrubens Jul 17, 2026
1946a24
Merge pull request #494 from RooCodeInc/release/v0.8.1
mrubens Jul 17, 2026
189ad92
Merge pull request #501 from RooCodeInc/release/v0.9.0
mrubens Jul 17, 2026
28de0cc
Merge pull request #505 from RooCodeInc/release/v0.10.0
mrubens Jul 17, 2026
0c34858
Merge pull request #522 from RooCodeInc/release/v0.11.0
mrubens Jul 18, 2026
3e28c5d
Merge pull request #535 from RooCodeInc/release/v0.12.0
mrubens Jul 18, 2026
3b153fc
Merge pull request #551 from RooCodeInc/release/v0.12.1
mrubens Jul 18, 2026
7c84ea3
Merge pull request #577 from RooCodeInc/release/v0.13.0
mrubens Jul 19, 2026
30c5ad3
Merge pull request #582 from RooCodeInc/release/v0.14.0
mrubens Jul 19, 2026
b6787d1
Release Roomote 0.14.1
mrubens Jul 19, 2026
08b8550
Merge pull request #597 from RooCodeInc/release/v0.14.1
mrubens Jul 19, 2026
037146c
Merge pull request #654 from RooCodeInc/release/v0.15.0
mrubens Jul 21, 2026
12d8ef9
Merge pull request #686 from RooCodeInc/release/v0.16.0
mrubens Jul 21, 2026
178a314
Merge pull request #699 from RooCodeInc/release/v0.17.0
mrubens Jul 22, 2026
224d734
Merge pull request #730 from RooCodeInc/release/v0.18.0
mrubens Jul 23, 2026
1be9a42
fix: prevent stale PR review actions
daniel-lxs Jul 23, 2026
dd40068
Merge pull request #737 from RooCodeInc/release/v0.19.0
mrubens Jul 23, 2026
c617ec7
Merge pull request #763 from RooCodeInc/release/v0.20.0
mrubens Jul 24, 2026
bd913cf
Merge pull request #768 from RooCodeInc/release/v0.20.1
mrubens Jul 25, 2026
bdc350b
Merge pull request #791 from RooCodeInc/release/v0.21.0
mrubens Jul 26, 2026
5d96b18
Merge pull request #795 from RooCodeInc/release/v0.21.1
mrubens Jul 26, 2026
0251694
Merge pull request #806 from RooCodeInc/release/v0.22.0
mrubens Jul 27, 2026
8893fd2
Merge pull request #820 from RooCodeInc/release/v0.23.0
mrubens Jul 27, 2026
9e05b59
Merge pull request #851 from RooCodeInc/release/v0.24.0
mrubens Jul 27, 2026
e775705
Merge pull request #860 from RooCodeInc/release/v0.25.0
mrubens Jul 28, 2026
327961f
Merge pull request #887 from RooCodeInc/release/v0.26.0
mrubens Jul 29, 2026
3615be0
Merge pull request #940 from RooCodeInc/release/v0.27.0
mrubens Jul 31, 2026
febe440
Merge pull request #961 from RooCodeInc/release/v0.28.0
mrubens Aug 1, 2026
82eebfd
Merge pull request #972 from RooCodeInc/release/v0.29.0
mrubens Aug 1, 2026
fafa2c9
Merge pull request #998 from RooCodeInc/release/v0.30.0
mrubens Aug 2, 2026
6af4bf2
Merge pull request #1004 from RooCodeInc/release/v0.30.1
mrubens Aug 2, 2026
c6bdf7e
Merge pull request #1015 from RooCodeInc/release/v0.30.2
mrubens Aug 3, 2026
3b0ddfb
Merge pull request #1063 from RooCodeInc/release/v0.31.0
mrubens Aug 3, 2026
9d083f5
Merge pull request #1072 from RooCodeInc/release/v0.32.0
mrubens Aug 3, 2026
9ca6b8c
Merge pull request #1080 from RooCodeInc/release/v0.32.1
mrubens Aug 4, 2026
9bc9cb8
Merge pull request #1097 from RooCodeInc/release/v0.33.0
mrubens Aug 4, 2026
0f6a2f8
Merge pull request #1108 from RooCodeInc/release/v0.34.0
mrubens Aug 4, 2026
f6ac86c
Merge pull request #1132 from RooCodeInc/release/v0.35.0
mrubens Aug 6, 2026
908255c
Merge pull request #1155 from RooCodeInc/release/v0.36.0
mrubens Aug 7, 2026
005d7b2
Merge pull request #1164 from RooCodeInc/release/v0.36.1
mrubens Aug 7, 2026
d7470df
Merge pull request #1209 from RooCodeInc/release/v0.37.0
mrubens Aug 10, 2026
11ac3c8
Merge pull request #1258 from RooCodeInc/release/v0.38.0
mrubens Aug 12, 2026
97e81fc
Merge pull request #1300 from RooCodeInc/release/v0.39.0
mrubens Aug 13, 2026
31e1e5a
Merge pull request #1333 from RooCodeInc/release/v0.39.1
mrubens Aug 14, 2026
d5cfa42
test: use enabled GLM override fixture
mrubens Aug 18, 2026
dc8a74f
Merge origin/develop into release/v0.40.0
mrubens Aug 18, 2026
cb0e563
Merge pull request #1457 from RooCodeInc/release/v0.40.0
mrubens Aug 18, 2026
ac2bcf3
Merge pull request #1494 from RooCodeInc/release/v0.40.1
mrubens Aug 20, 2026
0d33991
Merge pull request #1542 from RooCodeInc/release/v0.40.2
mrubens Aug 22, 2026
c3aa47b
Merge pull request #1601 from RooCodeInc/release/v0.41.0
mrubens Aug 24, 2026
92ae0f3
Merge pull request #1658 from RooCodeInc/release/v0.42.0
mrubens Aug 25, 2026
5536219
Merge pull request #1684 from RooCodeInc/release/v0.43.0
mrubens Aug 26, 2026
479ae42
Merge pull request #1717 from RooCodeInc/release/v0.44.0
mrubens Aug 26, 2026
11842f7
Merge pull request #1755 from RooCodeInc/release/v0.45.0
mrubens Aug 27, 2026
b02a084
[Fix] Discover pages inside shared Notion databases (#1825)
mrubens Aug 29, 2026
a0c968b
chore: add Notion hotfix changeset
mrubens Aug 29, 2026
2128ad2
chore: release Roomote 0.45.1
mrubens Aug 29, 2026
6cbe380
Merge pull request #1840 from RooCodeInc/hotfix/notion-shared-databas…
mrubens Aug 29, 2026
8343cee
Merge remote-tracking branch 'origin/main' into release/v1.0.0
mrubens Aug 31, 2026
a892b77
Merge origin/develop into release/v1.0.0
mrubens Aug 31, 2026
c1c640e
Merge origin/develop into release/v1.0.0
mrubens Aug 31, 2026
c7395ad
Merge pull request #1950 from RooCodeInc/release/v1.0.0
mrubens Aug 31, 2026
651c735
Merge pull request #1973 from RooCodeInc/release/v1.0.1
mrubens Sep 1, 2026
639441f
Merge pull request #1985 from RooCodeInc/release/v1.0.2
mrubens Sep 1, 2026
588517f
Merge pull request #2025 from RooCodeInc/release/v1.1.0
mrubens Sep 2, 2026
4dea0a5
Merge pull request #2092 from RooCodeInc/release/v1.2.0
mrubens Sep 2, 2026
94343b4
Merge pull request #2097 from RooCodeInc/release/v1.2.1
mrubens Sep 2, 2026
ecf495d
Merge pull request #2109 from RooCodeInc/release/v1.2.2
mrubens Sep 3, 2026
d0444e2
fix: use catalog default for Fast inference (#2164)
roomote-roomote[bot] Sep 3, 2026
01904a0
Release Roomote 1.2.3
mrubens Sep 3, 2026
e6a80b8
Merge pull request #2165 from RooCodeInc/hotfix/fast-default-model
mrubens Sep 3, 2026
313b0d5
[Improve] Complete setup before optional starter work (#2127)
roomote-roomote[bot] Sep 3, 2026
5d27bb6
[Fix] Setup-gated navigation remains actionable before setup complete…
roomote-roomote[bot] Sep 4, 2026
1633a90
chore: add setup completion hotfix changeset
mrubens Sep 4, 2026
10540a2
chore: release Roomote 1.2.4
mrubens Sep 4, 2026
39d94ff
Merge pull request #2203 from RooCodeInc/hotfix/setup-completion-acti…
mrubens Sep 4, 2026
79bd681
Merge remote-tracking branch 'origin/main' into release/v1.3.0
mrubens Sep 4, 2026
1aec562
Merge remote-tracking branch 'origin/develop' into release/v1.3.0
mrubens Sep 4, 2026
21742d1
Amend Roomote 1.3.0 with GPT-6 Astra
mrubens Sep 4, 2026
5fed95a
Merge pull request #2231 from RooCodeInc/release/v1.3.0
mrubens Sep 4, 2026
c06990c
Merge pull request #2248 from RooCodeInc/release/v1.3.1
mrubens Sep 5, 2026
237177a
fix: avoid dangling refs in Fast integration tool schemas (#2295)
roomote-roomote[bot] Sep 6, 2026
6c20f96
chore: describe Fast integration schema hotfix
daniel-lxs Sep 6, 2026
ccae4ea
chore: release Roomote 1.3.2
daniel-lxs Sep 6, 2026
08dd507
Merge pull request #2296 from RooCodeInc/hotfix/fast-integration-sche…
roomote-roomote[bot] Sep 6, 2026
76073d8
Reconcile v1.4.0 with pinned main
github-actions[bot] Sep 8, 2026
fba2324
Merge pull request #2352 from RooCodeInc/release/v1.4.0
mrubens Sep 8, 2026
ac65d87
[Fix] Sandbox integration calls send args: null on gpt-5.x models (#2…
mrubens Sep 8, 2026
860cb04
docs: clarify integration hotfix release note
mrubens Sep 8, 2026
0f6ce36
chore: release Roomote 1.4.1
mrubens Sep 8, 2026
b23002c
Merge pull request #2368 from RooCodeInc/hotfix/integration-lookups-1…
mrubens Sep 8, 2026
bddc55a
Reconcile v1.5.0 with pinned main
github-actions[bot] Sep 9, 2026
00a1f72
Merge pull request #2401 from RooCodeInc/release/v1.5.0
mrubens Sep 9, 2026
980d131
Merge pull request #2417 from RooCodeInc/release/v1.5.1
mrubens Sep 9, 2026
4f1904f
Merge pull request #2432 from RooCodeInc/release/v1.6.0
mrubens Sep 10, 2026
6e4253d
feat: introduce optional integration discovery during setup
roomote Sep 9, 2026
ad0c9e2
improve: suggest only named tools during setup
roomote Sep 9, 2026
7fd17a7
feat: make guided interactions reliable
roomote Sep 10, 2026
7fb914b
fix: keep guided interaction responses reliable
roomote Sep 10, 2026
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

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

221 changes: 221 additions & 0 deletions apps/api/src/handlers/discord/__tests__/request-user-input.test.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

88 changes: 84 additions & 4 deletions apps/api/src/handlers/discord/request-user-input.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,21 @@ import {
buildDiscordCancelledRequestUserInputText,
getDiscordRequestUserInputCurrentQuestion,
getPendingCommunicationRequestUserInput,
matchesDiscordRequestUserInputRequestToken,
parseDiscordRequestUserInputAnswerCallbackData,
parseDiscordRequestUserInputCancelCallbackData,
rebindPendingCommunicationRequestUserInputRun,
submitPendingCommunicationRequestUserInputAnswer,
type PendingCommunicationRequestUserInput,
} from '@roomote/communication';
import type { DiscordInteraction } from '@roomote/communication/discord-event';
import type { DiscordCommunicationProvider } from '@roomote/communication/discord-provider';
import { type AcpRequestUserInputAnswers } from '@roomote/types';
import {
TaskPayloadKind,
type AcpRequestUserInputAnswers,
} from '@roomote/types';
import { setTrustedRunActingUserOnSuccess } from '@roomote/db/server';
import { findActiveCommunicationTaskRun } from '@roomote/sdk/server/communication';

import { apiLogger } from '../../logging.js';
import { replyToDiscordEvent } from './replies.js';
Expand Down Expand Up @@ -186,7 +192,7 @@ export async function tryHandleDiscordRequestUserInputCallback(params: {
}

const conversationId = conversationIdForChannel(params.channel);
const pendingRequest = await getPendingCommunicationRequestUserInput(
let pendingRequest = await getPendingCommunicationRequestUserInput(
'discord',
conversationId,
);
Expand All @@ -207,10 +213,15 @@ export async function tryHandleDiscordRequestUserInputCallback(params: {
return true;
}

const expectedToken = pendingRequest.requestId.slice(-8);
const receivedToken =
answerCallback?.requestToken ?? cancelCallback?.requestToken;
if (receivedToken !== expectedToken) {
if (
!receivedToken ||
!matchesDiscordRequestUserInputRequestToken(
pendingRequest.requestId,
receivedToken,
)
) {
await replyToDiscordEvent({
provider: params.provider,
applicationId: params.applicationId,
Expand All @@ -225,6 +236,75 @@ export async function tryHandleDiscordRequestUserInputCallback(params: {
return true;
}

const activeRun = await findActiveCommunicationTaskRun({
provider: 'discord',
channelId: params.channel.parentChannelId ?? params.channel.channelId,
...(params.channel.parentChannelId
? { threadId: params.channel.channelId }
: {}),
taskId: pendingRequest.taskId,
});
if (!activeRun) {
await replyToDiscordEvent({
provider: params.provider,
applicationId: params.applicationId,
channel: params.channel,
interaction: {
interaction: params.interaction,
interactionDeferred: params.interactionDeferred,
},
text: 'This prompt is no longer active.',
ephemeral: true,
});
return true;
}

if (activeRun.id !== pendingRequest.runId) {
const sourceRunId =
activeRun.payloadKind === TaskPayloadKind.SnapshotResume &&
activeRun.payload &&
typeof activeRun.payload === 'object'
? (activeRun.payload as { sourceRunId?: unknown }).sourceRunId
: undefined;
if (sourceRunId !== pendingRequest.runId) {
await replyToDiscordEvent({
provider: params.provider,
applicationId: params.applicationId,
channel: params.channel,
interaction: {
interaction: params.interaction,
interactionDeferred: params.interactionDeferred,
},
text: 'This prompt is no longer active.',
ephemeral: true,
});
return true;
}

const rebound = await rebindPendingCommunicationRequestUserInputRun({
provider: 'discord',
conversationId,
taskId: pendingRequest.taskId,
sourceRunId: pendingRequest.runId,
resumedRunId: activeRun.id,
});
if (!rebound) {
await replyToDiscordEvent({
provider: params.provider,
applicationId: params.applicationId,
channel: params.channel,
interaction: {
interaction: params.interaction,
interactionDeferred: params.interactionDeferred,
},
text: 'This prompt is no longer active.',
ephemeral: true,
});
return true;
}
pendingRequest = { ...pendingRequest, runId: activeRun.id };
}

if (pendingRequest.status === 'submitted') {
await postAlreadyReceivedNotice({
provider: params.provider,
Expand Down
13 changes: 13 additions & 0 deletions apps/docs/self-hosting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,19 @@ recommendations. Detailed provider instructions and credential entry open in a
dialog from the source-control card; Roomote never asks for credentials in
chat.

The conversation also asks briefly about the tools your team uses for
documents, monitoring, and project tracking, one topic at a time.
You can skip these questions. The optional integrations card lists only supported
tools you said you use and opens their secure configuration without leaving setup.
If there are no eligible matches, setup moves on without showing suggestions.
Tools without a built-in connector are not presented as supported. Use
**Keep going** to move on without connecting; you can connect tools later in
Settings. Integration choices do not change the starter tasks offered.
Services that are also source-control, communications, inference, or sandbox
providers are excluded from this optional step; their separate setup is unchanged.
The Vercel deployments integration remains available separately from Vercel AI
Gateway inference.

Setup completes once inference and a sandbox provider are ready, source control
is successfully configured, and at least one repository has synchronized.
Roomote then offers preselected starter tasks in one structured multi-select
Expand Down
Loading
Loading