Skip to content

Commit 0b5812b

Browse files
authored
Verbose worker logging (#173)
1 parent 0156265 commit 0b5812b

File tree

6 files changed

+34
-20
lines changed

6 files changed

+34
-20
lines changed

.docker/Dockerfile.roomote-worker

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,4 +111,5 @@ WORKDIR /roo/apps/roomote
111111
ENV NODE_ENV=production
112112
ENV HOST_EXECUTION_METHOD=docker
113113
# ENTRYPOINT ["/usr/local/bin/worker.sh"]
114-
CMD ["sleep", "infinity"]
114+
# CMD ["sleep", "infinity"]
115+
CMD ["pnpm", "worker:production"]

apps/roomote/src/app/api/webhooks/slack/route.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,8 @@ async function handleAppMention(event: SlackEvent) {
181181
try {
182182
pendingWorkspaceSelections.set(threadId, event);
183183

184+
const workspaceRoot = process.env.WORKSPACE_ROOT || '/roo/repos';
185+
184186
const result = await slack.postMessage({
185187
text: '👋 Which workspace would you like me to work in?',
186188
channel: event.channel,
@@ -200,13 +202,13 @@ async function handleAppMention(event: SlackEvent) {
200202
type: 'button',
201203
text: { type: 'plain_text', text: 'Roo-Code-Cloud', emoji: true },
202204
action_id: 'select_roo_code_cloud',
203-
value: 'roo-code-cloud',
205+
value: `${workspaceRoot}/Roo-Code-Cloud`,
204206
},
205207
{
206208
type: 'button',
207209
text: { type: 'plain_text', text: 'Roo-Code', emoji: true },
208210
action_id: 'select_roo_code',
209-
value: 'roo-code',
211+
value: `${workspaceRoot}/Roo-Code`,
210212
},
211213
],
212214
},

apps/roomote/src/lib/controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export class WorkerController {
9090
let command;
9191

9292
if (isFlyMachine()) {
93-
command = `fly machine run $(fly releases --image -a roomote-worker -j 2>/dev/null | jq -r '.[0].ImageRef') --vm-size performance-16x --restart on-fail --rm --shell --command "pnpm worker:production" -a roomote-worker`;
93+
command = `fly machine run $(fly releases --image -a roomote-worker -j 2>/dev/null | jq -r '.[0].ImageRef') --vm-size performance-16x --restart on-fail --rm -a roomote-worker`;
9494
} else if (isDockerContainer()) {
9595
const dockerArgs = [
9696
`--name roomote-${workerId}`,

apps/roomote/src/lib/jobs/processSlackMention.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,17 @@ export async function processSlackMention(
2020
// workspace root that our containers use.
2121
const workspaceRoot = process.env.WORKSPACE_ROOT || '/roo/repos';
2222

23+
const workspacePath = jobPayload.workspace.startsWith('/')
24+
? jobPayload.workspace
25+
: `${workspaceRoot}/${jobPayload.workspace}`;
26+
2327
const result = await runTask({
2428
jobType,
2529
jobPayload,
2630
prompt,
2731
callbacks,
2832
notify: false,
29-
workspacePath: `${workspaceRoot}/${jobPayload.workspace}`,
33+
workspacePath,
3034
});
3135

3236
return { channel, user, result };

apps/roomote/src/lib/runTask.ts

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ export const runTask = async <T extends JobType>({
9494

9595
const subprocess = execa({
9696
shell: '/bin/bash',
97+
cwd: workspacePath,
9798
cancelSignal,
9899
})`${codeCommand}`;
99100

@@ -141,26 +142,28 @@ export const runTask = async <T extends JobType>({
141142
const slackNotifier = notify ? new SlackNotifier(logger) : undefined;
142143
let slackThreadTs: string | null | undefined = null;
143144

144-
const ignoreEvents: Record<'broadcast' | 'log', RooCodeEventName[]> = {
145-
broadcast: [RooCodeEventName.Message],
146-
log: [
147-
RooCodeEventName.TaskTokenUsageUpdated,
148-
RooCodeEventName.TaskAskResponded,
149-
],
150-
};
145+
// const ignoreEvents: Record<'broadcast' | 'log', RooCodeEventName[]> = {
146+
// broadcast: [RooCodeEventName.Message],
147+
// log: [
148+
// RooCodeEventName.TaskTokenUsageUpdated,
149+
// RooCodeEventName.TaskAskResponded,
150+
// ],
151+
// };
151152

152153
client.on(IpcMessageType.TaskEvent, async (taskEvent) => {
153154
const { eventName, payload } = taskEvent;
154155

155156
// Log all events except for these.
156157
// For message events we only log non-partial messages.
157-
if (
158-
!ignoreEvents.log.includes(eventName) &&
159-
(eventName !== RooCodeEventName.Message ||
160-
payload[0].message.partial !== true)
161-
) {
162-
logger.info(`${eventName} ->`, payload);
163-
}
158+
// if (
159+
// !ignoreEvents.log.includes(eventName) &&
160+
// (eventName !== RooCodeEventName.Message ||
161+
// payload[0].message.partial !== true)
162+
// ) {
163+
// logger.info(`${eventName} ->`, payload);
164+
// }
165+
166+
logger.info(`${eventName} ->`, payload);
164167

165168
if (
166169
eventName === RooCodeEventName.Message &&
@@ -236,6 +239,9 @@ export const runTask = async <T extends JobType>({
236239
data: {
237240
configuration: {
238241
...EVALS_SETTINGS,
242+
alwaysAllowReadOnlyOutsideWorkspace: true,
243+
alwaysAllowWriteOutsideWorkspace: true,
244+
alwaysAllowWriteProtected: true,
239245
openRouterApiKey: process.env.OPENROUTER_API_KEY,
240246
lastShownAnnouncementId: 'jun-17-2025-3-21',
241247
...settings,

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@
2121
"env:decrypt:development": "dotenvx decrypt -f .env.development --stdout",
2222
"env:decrypt:preview": "dotenvx decrypt -f .env.preview --stdout",
2323
"env:decrypt:production": "dotenvx decrypt -f .env.production --stdout",
24+
"deploy:roomote": "pnpm deploy:roomote-api && pnpm deploy:roomote-controller && pnpm deploy:roomote-worker",
2425
"deploy:roomote-dashboard": "fly deploy --config fly.roomote-dashboard.toml",
2526
"deploy:roomote-api": "fly deploy --config fly.roomote-api.toml",
2627
"deploy:roomote-controller": "fly deploy --config fly.roomote-controller.toml",
27-
"deploy:roomote-worker": "fly deploy --config fly.roomote-worker.toml --build-arg GH_TOKEN=$(npx dotenvx get GH_TOKEN -f .env.production) && fly scale count 0 -a roomote-worker -y"
28+
"deploy:roomote-worker": "fly deploy --config fly.roomote-worker.toml --build-arg GH_TOKEN=$(npx dotenvx get GH_TOKEN -f .env.production) --ha=false && fly scale count 0 -a roomote-worker -y"
2829
},
2930
"devDependencies": {
3031
"@dotenvx/dotenvx": "^1.44.2",

0 commit comments

Comments
 (0)