Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
b60aad9
Update cla.yml (#269)
mrubens Jul 13, 2026
6b704d8
Revert "Update cla.yml (#269)" (#276)
mrubens Jul 13, 2026
0d84c2d
Move onboarding environment setup into task flow (#271)
brunobergher Jul 13, 2026
e363cae
[Feat] Add Local Docker sandbox toggle (#272)
roomote-roomote[bot] Jul 13, 2026
58ca1d7
[Fix] Preserve Azure DevOps repository identifiers in environments (#…
mrubens Jul 13, 2026
03516a5
Update Teams onboarding setup flow (#275)
brunobergher Jul 13, 2026
0468f03
[Improve] Use Zero brand mark in docs sidebar (#279)
roomote-roomote[bot] Jul 13, 2026
961a8f6
Add shared communication provider factories (#280)
daniel-lxs Jul 13, 2026
4a110f1
Add generic communication adapter dispatch (#281)
daniel-lxs Jul 13, 2026
531e37d
[Improve] Make Slack MCP setup a non-blocking suggestion (#282)
daniel-lxs Jul 13, 2026
fe859d8
Surface-scope automation tracked messages and add button parity (#284)
daniel-lxs Jul 13, 2026
67c336e
[Fix] Scope Zero MCP link detection to product surfaces (#283)
daniel-lxs Jul 13, 2026
0cad94b
[Improve] Soften Slack getting-started copy for default models (#286)
roomote-roomote[bot] Jul 13, 2026
21e316b
Add surface-generic post_to_channel agent tool (#285)
daniel-lxs Jul 13, 2026
bd706e8
[Feat] Add 7-day product PR funnel to daily anonymous stats (#287)
roomote-roomote[bot] Jul 13, 2026
12ec2c7
[Improve] Move Working on footer to out-of-band Slack posts and notif…
roomote-roomote[bot] Jul 13, 2026
ca94c76
Add automation target model and capability declarations (#289)
daniel-lxs Jul 13, 2026
b9201e0
fix: skip Home flash when finishing setup into onboarding task (#290)
roomote-roomote[bot] Jul 13, 2026
8df57a2
[Improve] Simplify Azure DevOps setup to organization and PAT by defa…
roomote-roomote[bot] Jul 13, 2026
1872168
Support Docker Compose and Dockerfile environment projects (#292)
mrubens Jul 13, 2026
62a69ba
Use the develop worker image automatically in local development (#298)
mrubens Jul 13, 2026
e4fd61e
[Fix] Render continue action when revisiting a saved Slack setup (#299)
daniel-lxs Jul 13, 2026
2b047ab
[Docs] Warn agents not to leak sensitive context on public GitHub sur…
roomote-roomote[bot] Jul 13, 2026
9cae320
[Chore] Record Roomote 0.4.2 on develop after main hotfix
roomote-roomote[bot] Jul 13, 2026
e675b3d
Fix hosted Docker worker provisioning (#301)
mrubens Jul 13, 2026
f919d60
Route triage and audit automations to any comms destination (#291)
daniel-lxs Jul 13, 2026
6e3bc36
Make the announcer source-control-neutral (#293)
daniel-lxs Jul 13, 2026
6bdd295
[Fix] Develop CI fails on web worker template schema tests (#304)
roomote-roomote[bot] Jul 13, 2026
82389c3
Remove unused VS Code from worker image (#308)
mrubens Jul 13, 2026
08314d4
Fix hosted Docker runtime provisioning (#306)
mrubens Jul 13, 2026
69498da
Make hosted compute provisioning non-blocking (#307)
mrubens Jul 13, 2026
83f3ffb
[Improve] Consult advisor on user challenges and hard failures (#311)
roomote-roomote[bot] Jul 14, 2026
017cc05
[Improve] Rename container projects to Docker projects (#312)
roomote-roomote[bot] Jul 14, 2026
333f4d7
[Improve] Run CI failure triage as one env-backed fix task (#313)
roomote-roomote[bot] Jul 14, 2026
7e1522a
Enable Docker projects on Modal VM sandboxes (#315)
mrubens Jul 14, 2026
2cdf659
[Fix] Setup flow backs out of earlier choices when user tries to chan…
roomote-roomote[bot] Jul 14, 2026
31f0393
refactor: collapse triplicated PR terminal-status notifiers (#316)
roomote-roomote[bot] Jul 14, 2026
0a03346
[Improve] Prefill GitHub App description in setup manifest flow (#318)
roomote-roomote[bot] Jul 14, 2026
ae9a348
Post announcer and manager-stats reports via communication adapters (…
daniel-lxs Jul 14, 2026
c529e08
Show automation destinations and provider capabilities on the automat…
daniel-lxs Jul 14, 2026
fa7d69e
Add provider-neutral list_pull_requests and extend conflict resolver …
daniel-lxs Jul 14, 2026
3183f2d
[Improve] Default homepage to the sole environment instead of Auto (#…
roomote-roomote[bot] Jul 14, 2026
963a04a
Hide excluded sandbox providers during setup (#322)
mrubens Jul 14, 2026
c908b77
Run Modal setup tasks in VM runtime (#323)
mrubens Jul 14, 2026
4d8cb25
Stop posting setup-complete Slack message to /setup (#324)
roomote-roomote[bot] Jul 14, 2026
715c1a8
Prefer release worker image for Modal (#326)
mrubens Jul 14, 2026
cc0f2c1
Increase Modal VM memory default (#327)
mrubens Jul 14, 2026
14d1eba
Right-size sandbox memory for Docker workloads (#328)
mrubens Jul 14, 2026
ef2d253
Sync merged-PR facts from all source-control providers (#325)
daniel-lxs Jul 14, 2026
4f34fb4
Scope reusable PR follow-up owner branch fallback by source-control p…
daniel-lxs Jul 14, 2026
a27786c
Start Docker projects without blocking task startup (#330)
mrubens Jul 14, 2026
db03c22
Show capability badges only for limited automations (#332)
daniel-lxs Jul 14, 2026
a3844ea
[Feat] Generate task-relevant kickoff strings from the router (#329)
roomote-roomote[bot] Jul 14, 2026
957477b
[Improve] Expand source-control setup and OAuth flows (#295)
roomote-roomote[bot] Jul 14, 2026
3ec03fc
Compute manager stats across all source-control providers (#335)
daniel-lxs Jul 14, 2026
e6941c5
[Feat] Add Code Mode toggle in Experimental settings (#336)
roomote-roomote[bot] Jul 14, 2026
b294a47
Make environment setup completion observable to the task and platform…
mrubens Jul 14, 2026
143e81d
Stream Docker project logs to a well-known file and add them to the L…
mrubens Jul 14, 2026
004ba2e
Resolve repositories host-aware via payload sourceControlHost (#339)
daniel-lxs Jul 14, 2026
12777ea
Fix ReDoS-prone link regex in Slack markdown converter (#341)
daniel-lxs Jul 14, 2026
accb678
Make environment verification reliable: setup ground truth + proof-ru…
daniel-lxs Jul 14, 2026
f4183ad
[Feat] Expand subagent rows to show the launch prompt (#342)
roomote-roomote[bot] Jul 14, 2026
8fd1b31
Fix local hosted artifact uploads (#344)
mrubens Jul 14, 2026
215ab5c
[Improve] Prefer markdown blocks for Slack agent replies (#343)
roomote-roomote[bot] Jul 14, 2026
b9557eb
Revert "Make environment verification reliable: setup ground truth + …
daniel-lxs Jul 14, 2026
6f614b9
Prevent false local artifact uploads (#345)
mrubens Jul 14, 2026
45c3f75
[Feat] Show environment setup logs in the task Logs tab (#347)
roomote-roomote[bot] Jul 15, 2026
48046b5
Release Roomote 1.0.0 (#350)
roomote-roomote[bot] Jul 15, 2026
690cb87
Merge remote-tracking branch 'origin/main' into release/v1.0.0
mrubens Jul 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 11 additions & 1 deletion .docker/caddy/Caddyfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,24 @@
# Intentionally out of scope compared to production:
# - TLS: ngrok terminates TLS in front of this listener.
# - Preview subdomains: the local preview proxy keeps its own port (18081).
# - MinIO artifact routing: dev presigned S3 URLs point directly at MinIO.
{
auto_https off
}

:18080 {
encode zstd gzip

@artifact_storage {
path /{$S3_BUCKET_ARTIFACTS:roomote-artifacts} /{$S3_BUCKET_ARTIFACTS:roomote-artifacts}/*
}

handle @artifact_storage {
reverse_proxy minio:9000 {
# Presigned S3 URLs sign the bucket path and Host header.
header_up Host {http.request.host}
}
}

@api {
path /_roomote-api /_roomote-api/*
}
Expand Down
4 changes: 3 additions & 1 deletion .env.production.example
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ DEFAULT_COMPUTE_PROVIDER=docker
# DOCKER_WORKER_RELEASE_PATH=/roomote/releases/worker-current.tar.gz
# DOCKER_WORKER_CPU_LIMIT=2
# DOCKER_WORKER_MEMORY_LIMIT=4g
# DOCKER_TASK_DAEMON_MEMORY_LIMIT=8g
# DOCKER_WORKER_PIDS_LIMIT=512
# DOCKER_WORKER_DISK_LIMIT=20g
# DOCKER_WORKER_ALLOW_UNBOUNDED_DISK=false
Expand Down Expand Up @@ -125,7 +126,8 @@ DEFAULT_COMPUTE_PROVIDER=docker
# R_GITHUB_CLIENT_ID=
# R_GITHUB_CLIENT_SECRET=
# R_GITHUB_WEBHOOK_SECRET=
# GITLAB_TOKEN=
# GITLAB_CLIENT_ID=
# GITLAB_CLIENT_SECRET=
# GITLAB_WEBHOOK_SECRET=
# GITLAB_WEBHOOK_SIGNING_TOKEN=

Expand Down
14 changes: 14 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ This file provides a quick-start guide for AI agents working with the Roomote co

Roomote is a product centered on **Roomote agents**. Those agents are the core user-facing product: they can be configured in the web app, triggered from the web UI, and interacted with through integrations such as Slack, Teams, Telegram, Linear, and GitHub.

## Open source and public surfaces

This repository is open source. Treat GitHub and other public surfaces as fully public:

- Do not put customer names, customer data, private deployment details, secrets, credentials, or internal maintainer discussion into commits, PR titles/bodies, PR/issue comments, review replies, or other public artifacts.
- Prefer private channels (for example Slack or the task UI) for anything that is customer-specific, confidential, or only meaningful as internal discussion.
- When writing public text, keep it general enough for an open-source audience and omit private context even when it was available in the private task thread.

## Setup

- `mise install && pnpm install` (requires mise for repo tool versions)
Expand Down Expand Up @@ -40,3 +48,9 @@ Roomote is a product centered on **Roomote agents**. Those agents are the core u
- Treat absolute home-directory skill paths such as `/home/roomote/.agents/skills/...` as activated or installed runtime copies, not as the checked-in source of truth for repository changes.
- Treat workflow prompts and instructions as a first-class control surface. When agent behavior is off, debug prompt clarity before defaulting to code enforcement.
- `apps/docs/` is the public product documentation site (published at `https://docs.roomote.dev`) and should be kept in sync with user-facing product changes.

## Slack message formatting

- Present LLM / agent narrative output in Slack as `markdown` blocks (`{ type: 'markdown', text }`) with standard markdown (`[label](url)`, `**bold**`, lists, tables, code fences) whenever possible. Do not convert that body text into legacy mrkdwn (`*bold*`, `<url|label>`) before posting a `markdown` block.
- Do not migrate hardcoded product UI Block Kit (routing confirmations, sticky footers, unfurls, accessory sections, etc.) for style alone; keep `mrkdwn` there when those builders already rely on it or Slack requires it (for example `section` text with an `accessory`).
- When reading inbound Slack message blocks, continue to accept both `markdown` blocks and legacy `mrkdwn` text objects.
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,31 @@

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

## 1.0.0 (2026-07-15)

### Major changes

- Roomote 1.0 is the first public product release: the monorepo is open and ready for people to try the product, self-host, and send feedback on web tasks, cloud agents, and chat integrations.

### Minor changes

- Docker Compose and Dockerfile environment projects are first-class: run them on Modal VM sandboxes, stream project logs into the task Logs panel, start them without blocking eligible tasks, and allocate higher sandbox memory when nested Docker is required (renamed from "container projects").
- Multi-SCM automations and PR tooling: triage, audit, announcer, and manager-stats cover GitHub, GitLab, Gitea, Azure DevOps, and Bitbucket with shared open-PR listing, merged-PR facts, conflict resolution, and digests; reports can land on Slack, Teams, or Telegram, and the automations page shows destinations plus exception-only coverage badges.
- Environment setup is reworked into the normal task flow: setup completion is observable to the agent and platform, setup logs show in the Logs tab, first-time hosted compute provision no longer blocks creation, excluded sandbox providers stay hidden, and completion messaging no longer shoves users back to a separate /setup page.
- Experimental settings add a deployment-level Code Mode toggle for coding-agent task behavior.
- Local Docker can be enabled or disabled from the Local Docker settings surface without leaving that provider’s configuration page.
- Source-control setup expands provider OAuth and connection flows, simplifies Azure DevOps to organization and PAT by default while preserving full repository identifiers, and prefills the GitHub App description in the manifest setup flow.
- Slack agent narrative replies prefer modern markdown blocks, the Working on footer posts out of band with notifications when linked PRs close, MCP integration setup becomes a non-blocking suggestion instead of blocking task start (with Zero detection limited to product surfaces), and agents can post to Teams or Telegram channels through a surface-generic channel-post tool.
- When only one environment exists the homepage starts there instead of Auto, subagent rows expand to show the launch prompt, the router supplies task-relevant kickoff strings, CI failure triage runs as one environment-backed fix task, the coding agent consults the advisor on hard failures and user challenges, and Microsoft Teams onboarding setup copy and flow are refreshed.
- Daily anonymous product stats include a 7-day PR funnel so deployments can evaluate how effectively agent work turns into shipped pull requests.

### Patch changes

- Hosted Docker runtime provisioning is more reliable across E2B, Blaxel, and related setup paths, with retryable rebuilds that preserve the prior artifact.
- Setup can back out of earlier choices without wiping later steps when a user revisits a picker, and finishing setup into an onboarding task no longer flashes the home page first.
- Repository resolution and PR follow-up matching are host- and provider-scoped so same-named repositories on different source-control hosts no longer cross-route, and Slack markdown link conversion no longer uses a ReDoS-prone regex.
- Local development artifact uploads from hosted workers succeed through the Caddy edge, and presigned upload responses without an S3 ETag are no longer treated as successful.

## 0.4.2 (2026-07-13)

### Patch changes
Expand Down
7 changes: 7 additions & 0 deletions LOCAL_DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,13 @@ Roomote uses local defaults for development services:
- MinIO API: `http://localhost:19000`
- MinIO console: `http://localhost:19001`

Roomote keeps server-side MinIO access on the local API port. Presigned
artifact URLs default to `R_PUBLIC_URL`, and the local Caddy edge proxies the
signed `/<bucket>/*` paths to MinIO. This lets E2B, Modal, Daytona, and other
hosted workers upload artifacts through the same public edge they use for API
callbacks. Set `S3_PRESIGN_ENDPOINT` explicitly only when using a separate
worker-reachable object-storage endpoint.

Start the database, Redis, and artifact-storage services:

```sh
Expand Down
189 changes: 189 additions & 0 deletions apps/api/src/handlers/__tests__/pull-request-fact-sync.test.ts

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

Loading
Loading