You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit af7ab4b
Browse filesBrowse the repository at this point in the historyBrowse files
fix(supply-chain): never attest a moving tag this run did not publish
The resolver added `latest` unconditionally. When create-ghcr-manifests' guard
holds those tags back — it does that when the branch has moved on — they still
point at an older build, so the job would have put this run's signature and
provenance on an image it did not produce. A moving alias is now included only
when it resolves to the index this run published; the per-arch aliases ship in
the same guarded block, so one comparison gates all three.
`digest_of` also aborted the step instead of reporting an absent tag: under
`set -e` a failing inspect inside a command substitution takes the step down
before the caller can skip it. Confirmed against a real registry, then fixed
with an explicit `if !` rather than swallowing the status.
Docs, all verified against source:
- The General tab does not buffer everything: workspace scope, the default
switch, and member changes apply immediately, so Discard does not undo them.
- Both data-drain screenshots were declared at the wrong aspect ratio when I
converted them to <Image>; they rendered distorted.
- LM Studio needs VLLM_API_KEY when its API authentication is on.
- The rollback snippet hardcoded a version that does not exist.
- Docker Compose schedules the drain endpoint too, so the table implied Compose
operators had to add their own.
- Generating CRON_SECRET in a shell configures neither the app nor the caller.
- SANDBOXES_ENABLED is required beyond the provider and Function base on a
billing-free self-host, and Pi runs on its own image and fails closed without
E2B_PI_TEMPLATE_ID or DAYTONA_PI_SNAPSHOT_ID.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015BwsJTEQRzWJaY4BRCkPZt
Copy file name to clipboardExpand all lines: apps/docs/content/docs/platform/enterprise/access-control.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,7 +45,7 @@ Click **+ Create** and enter a name (required) and optional description. A group
45
45
46
46
### 3. Configure permissions
47
47
48
-
Click **Details** on a group to open its configuration. It has four tabs — **General**, **Model Providers**, **Blocks**, and **Platform**. Changes are buffered until you save.
48
+
Click **Details** on a group to open its configuration. It has four tabs — **General**, **Model Providers**, **Blocks**, and **Platform**. Name, description, and the permission settings are buffered until you save; the workspace scope, the default-group switch, and member changes are applied immediately, so **Discard** does not undo them.
49
49
50
50
Throughout the editor, a **checked** box means allowed. Clearing a checkbox is what applies a restriction.
Copy file name to clipboardExpand all lines: apps/docs/content/docs/platform/enterprise/data-drains.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,9 +16,9 @@ Drains are independent of [Data Retention](/platform/enterprise/data-retention)
16
16
17
17
Go to **Settings → Organization → Data drains** in your workspace, then click **New drain**.
18
18
19
-
<Imagesrc="/static/enterprise/data-drains-list.png"alt="Data Drains settings page showing two configured drains — one exporting workflow logs to Amazon S3 daily, another exporting Chat conversations to an HTTPS webhook hourly"width={900}height={477} />
19
+
<Imagesrc="/static/enterprise/data-drains-list.png"alt="Data Drains settings page showing two configured drains — one exporting workflow logs to Amazon S3 daily, another exporting Chat conversations to an HTTPS webhook hourly"width={900}height={885} />
20
20
21
-
<Imagesrc="/static/enterprise/data-drains-new.png"alt="New data drain dialog with fields for name, source, cadence, destination, and S3 credentials"width={900}height={566} />
21
+
<Imagesrc="/static/enterprise/data-drains-new.png"alt="New data drain dialog with fields for name, source, cadence, destination, and S3 credentials"width={900}height={491} />
Copy file name to clipboardExpand all lines: apps/docs/content/docs/platform/enterprise/self-hosted.mdx
+9-7Lines changed: 9 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,15 +72,17 @@ See [Sandboxes](/platform/self-hosting/sandboxes) for the provider credentials,
72
72
Two enterprise features do their work from a cron-driven HTTP endpoint rather than from the app process. All four endpoints authenticate with a bearer token equal to `CRON_SECRET`, and both return `401` when `CRON_SECRET` is unset:
73
73
74
74
```bash
75
-
CRON_SECRET=$(openssl rand -hex 32)
75
+
openssl rand -hex 32
76
76
```
77
77
78
-
| Feature | Endpoint | Suggested schedule | Scheduled by the Helm chart |
Persist that value as `CRON_SECRET` on the app **and** on whatever calls these endpoints. Generating it in a shell configures neither, and a mismatch returns `401`, so the work silently never runs.
79
+
80
+
| Feature | Endpoint | Suggested schedule | Scheduled for you |
The Helm chart schedules the data-drain dispatcher but **not** the three retention cleanup endpoints. Setting `DATA_RETENTION_ENABLED=true` on the chart alone deletes nothing — the windows are evaluated only when one of those endpoints is called. Add them to `cronjobs.jobs` yourself, or drive them from an external scheduler.
Python, Shell, JavaScript with external imports, and tooling-dependent blocks
134
-
require a remote sandbox provider. JavaScript without `import` or `require`
134
+
require a remote sandbox provider. On a billing-free self-host the provider and
135
+
Function base are not sufficient on their own: `SANDBOXES_ENABLED`grants the
136
+
server-side entitlement, and without it Shell and the Sandboxes settings stay
137
+
hidden even when the provider is configured correctly. JavaScript without `import` or `require`
135
138
continues to run in the in-process isolate when no remote provider is configured.
136
139
137
140
<Callout type="warn">
@@ -149,7 +152,7 @@ Two browser-side variables project server state into the UI, and neither is deri
149
152
| Variable | Effect when unset |
150
153
|---|---|
151
154
| `NEXT_PUBLIC_SANDBOXES_ENABLED` | The Function block's Shell language, its Sandbox picker, and **Settings → Sandboxes** stay hidden, even with a working provider. Python stays selectable and fails at execution |
152
-
| `NEXT_PUBLIC_E2B_ENABLED` | The E2B-backed Pi block modes stay hidden; `sim-setup doctor` reports it as a mismatch against `E2B_ENABLED` |
155
+
| `NEXT_PUBLIC_E2B_ENABLED` | The E2B-backed Pi block modes stay hidden; `sim-setup doctor` reports it as a mismatch against `E2B_ENABLED`. Revealing them is not enough to make them run — Pi executes on its own image, pinned with `E2B_PI_TEMPLATE_ID` or `DAYTONA_PI_SNAPSHOT_ID`, and fails closed without it |
153
156
154
157
Set the public values only **after** the server-side configuration above is complete — they are assertions about readiness, not switches, and the server-side check has its own conditions beyond them. See [Sandboxes](/platform/self-hosting/sandboxes) for the base-image build and promotion procedure. `npx sim-setup doctor` reports a mismatch in either direction.
Copy file name to clipboardExpand all lines: apps/docs/content/docs/platform/self-hosting/troubleshooting.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -59,7 +59,7 @@ Two things this does not cover:
59
59
60
60
Sim identifies dynamically discovered LM Studio and vLLM models by their `vllm/` prefix. If the endpoint is unavailable and you manually enter the raw LM Studio model identifier, Sim treats that unknown identifier as an Ollama model.
61
61
62
-
1. Set `VLLM_BASE_URL`. No Compose file sets it for you — `docker-compose.ollama.yml` only sets `OLLAMA_URL` — so add it to the `simstudio` service's `environment:` block (or to `.env` and interpolate it), then recreate the service and confirm it landed:
62
+
1. Set `VLLM_BASE_URL`, and `VLLM_API_KEY` too if you enabled LM Studio's API authentication — without the key, discovery requests omit the bearer token and fail. No Compose file sets either for you — `docker-compose.ollama.yml` only sets `OLLAMA_URL` — so add them to the `simstudio` service's `environment:` block (or to `.env` and interpolate them), then recreate the service and confirm it landed:
63
63
64
64
```bash
65
65
docker compose -f docker-compose.ollama.yml up -d --force-recreate simstudio
0 commit comments