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
15 changes: 14 additions & 1 deletion .agents/skills/changeset-release-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,18 @@ For each meaningful feature:
- update missing, stale, or incomplete guidance in the release branch, including
setup steps, prerequisites, permissions, expected behavior, and navigation
entries when needed
- for every newly added or materially updated provider or integration, verify
that its page and every overview or comparison entry use a source-backed
provider icon rather than a generic placeholder; check both page frontmatter
and rendered overview helpers or tables
- centralize each provider or integration logo reference: prefer one shared
Iconify slug when available, otherwise add one monochrome asset under
`apps/docs/logo/integrations/` and map the provider key in
`apps/docs/snippets/integration-name.jsx`; point page frontmatter and overview
entries at that shared slug, key, or asset instead of repeating unrelated
fallbacks or asset URLs
- treat a missing icon, a generic icon used when a source-backed mark exists, or
inconsistent page and overview marks as incomplete documentation coverage
- keep docs practical and user-facing; do not copy changelog prose or add
internal implementation details just to mention the feature
- record a feature-to-docs coverage checklist for the release PR body, linking
Expand Down Expand Up @@ -234,7 +246,8 @@ Then verify:
- every pending changeset was consumed and `.changeset/README.md` remains
- workspace package versions did not change
- every meaningful user-facing feature has an accurate public docs destination,
with any required `apps/docs` updates and navigation changes included
with any required `apps/docs` updates, navigation changes, source-backed
provider icons, and centralized logo references included
- the diff contains only release artifacts and required public docs updates:
root `package.json`, `CHANGELOG.md`, relevant files under `apps/docs`, and
deletions of changesets that already existed on the base branch. Locally
Expand Down
3 changes: 3 additions & 0 deletions apps/docs/logo/integrations/box.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 25 additions & 8 deletions apps/docs/providers/compute/box.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Box
icon: 'cube'
icon: '/logo/integrations/box.svg'
description: Run Roomote tasks in Box-hosted sandboxes.
---

Expand All @@ -14,6 +14,7 @@ Use Box when:
- task work should run on provider-managed machines
- you want API-key-only setup without building a provider-side worker image,
template, or snapshot during Roomote setup
- environments need Docker, Docker Compose, or private preview URLs
- retaining the same stopped task sandbox for a follow-up is sufficient

Box supports Roomote environment snapshots through named snapshots (template
Expand All @@ -22,7 +23,9 @@ Box can also resume the task that created it directly.

## Configuration

Add Box from **Settings > Sandboxes**, or provide:
Create a key from the [Box dashboard](https://box.ascii.dev/box/dashboard),
then add Box from **Settings > Sandboxes**. You can also provide the key as a
deployment env var:

```sh
DEFAULT_COMPUTE_PROVIDER=box
Expand All @@ -32,16 +35,18 @@ BOX_API_KEY=...
Optional settings:

```sh
# Custom Box-compatible API endpoint
BOX_API_BASE_URL=https://...
# Custom Box-compatible API endpoint. Defaults to
# https://ascii.dev/api/box/v1
BOX_API_BASE_URL=https://box.example.com/api/box/v1
# small, default, or large
BOX_MACHINE_TYPE=default
# Active sandbox timeout in milliseconds. Defaults to 2 hours, the Box
# free-trial maximum; paid accounts can set a higher value.
BOX_TIMEOUT_MS=...
# Standby retention policy; 0 disables retained task sandboxes
BOX_STANDBY_MAX_COUNT=...
BOX_STANDBY_MAX_AGE_HOURS=...
# Standby retention policy. Defaults to 25 Boxes for 168 hours (7 days).
# Set the count to 0 to disable retained task sandboxes.
BOX_STANDBY_MAX_COUNT=25
BOX_STANDBY_MAX_AGE_HOURS=168
```

These optional values are also available under **Settings > Sandboxes > Box >
Expand All @@ -51,6 +56,12 @@ as locked values in Settings.
Roomote does not provision a worker artifact in your Box account during setup.
Saving a valid API key is enough to configure the provider.

Roomote installs its worker into each Box when the sandbox starts. Box supports
[Docker projects](/environments/definition#docker-projects), including Docker
Compose services, without additional provider-side setup. Named environment
ports are exposed through authenticated private preview URLs in the Roomote task
view.

## Cleanup and resume behavior

Roomote stops and archives a Box when retaining it for task resume. This takes a
Expand Down Expand Up @@ -80,7 +91,8 @@ one task's machine; it is not a Roomote environment snapshot.
1. Save the Box API key.
2. Select Box as the default sandbox provider.
3. Start a small task and confirm logs reach the task view.
4. Send a follow-up while the task sandbox is retained and confirm it resumes.
4. If the environment exposes a port, open its preview from the task view.
5. Send a follow-up while the task sandbox is retained and confirm it resumes.

## Common issues

Expand All @@ -91,6 +103,11 @@ one task's machine; it is not a Roomote environment snapshot.
deployment.
- **A follow-up starts a new sandbox.** Check the standby count and age limits.
Roomote may no longer retain the previous Box as the task's resume target.
- **A task stops after two hours.** Free-trial accounts require a timeout of two
hours or less. Paid accounts can increase `BOX_TIMEOUT_MS`; Roomote still caps
the Box lifetime to the task's configured timeout.
- **A preview does not open.** Confirm the environment declares the port and the
application listens on `0.0.0.0`, not only `localhost`.
- **An environment snapshot fails to save.** Box accounts allow at most 10
named snapshots; delete stale `roomote-snap-*` templates from the Box
dashboard and re-run the snapshot.
1 change: 1 addition & 0 deletions apps/docs/snippets/integration-name.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ export function IntegrationName({ href, icon, name }) {
daytona: '/logo/integrations/daytona.svg',
e2b: '/logo/integrations/e2b.svg',
blaxel: '/logo/integrations/blaxel.svg',
box: '/logo/integrations/box.svg',
azure: '/logo/integrations/azure.svg',
granola: '/logo/integrations/granola.svg',
monday: '/logo/integrations/monday.svg',
Expand Down
Loading