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
description: Publish @agentos-software/* registry packages (per-package semver; dist-tag dev by default, latest only deliberately). Use whenever the user asks to publish or release registry software/agent packages.
4
+
---
5
+
6
+
# Publish registry packages
7
+
8
+
Registry packages version **independently** (per-package semver in each
9
+
`package.json`). Publishing never moves `latest` unless asked. Full lifecycle
10
+
reference: `registry/README.md`.
11
+
12
+
1.**Build** (skip what's already built):
13
+
14
+
```bash
15
+
just registry-native # native wasm binaries, once per checkout (slow)
16
+
just registry-build [pkg] # stage bin/ + assemble dist/package
17
+
just registry-status --remote # local state vs published dist-tags
18
+
```
19
+
20
+
2.**Bump the version** in `registry/software/<pkg>/package.json` (or
21
+
`registry/agent/<pkg>/`) and commit it.
22
+
23
+
3.**Publish**:
24
+
25
+
```bash
26
+
just registry-publish <pkg># dist-tag dev (safe default)
27
+
just registry-publish <pkg> latest # DELIBERATE release — moves latest
28
+
just registry-publish-all [tag] # every built software package
29
+
```
30
+
31
+
Notes:
32
+
- secure-exec **previews** (publish.yaml, no version input) automatically
33
+
include all registry packages under the branch dist-tag — no manual step for
description: Cut a secure-exec release-preview — npm-only branch-dist-tag publish (registry packages included), no crates.io. Use when the user asks for a preview / release-preview of secure-exec, or to hand a build to a downstream.
4
+
---
5
+
6
+
# Release-preview secure-exec
7
+
8
+
A preview publishes the `@secure-exec/*` packages AND the `@agentos-software/*`
9
+
registry packages to npm under the sanitized branch dist-tag, versioned
10
+
`0.0.0-<branch>.<sha>`, from a fast debug build. No crates.io publish (it has
11
+
no preview track — crate changes reach downstreams via their clone-at-sha
12
+
builds), no git tag, no release assets.
13
+
14
+
1.**Push the branch** you want previewed (jj colocated; use
15
+
`jj --config snapshot.max-new-file-size=16777216 ...` if large assets
16
+
complain).
17
+
18
+
2.**Dispatch + watch**:
19
+
20
+
```bash
21
+
just release-preview <branch>
22
+
run=$(gh run list -R rivet-dev/secure-exec --workflow=publish.yaml -L1 --json databaseId --jq '.[0].databaseId')
23
+
gh run watch -R rivet-dev/secure-exec "$run" --exit-status
24
+
```
25
+
26
+
3.**Consume**: `npm install @secure-exec/core@<sanitized-branch>` (same tag for
27
+
the registry packages). agent-os does NOT normally consume these directly —
28
+
it pins a sha in `.github/refs/secure-exec` and its own release-preview
29
+
auto-cuts the matching secure-exec preview (branch `agentos-dep-<sha7>`).
30
+
31
+
Notes:
32
+
- Release-preview is for previews ONLY; never cut a release with it — releases
33
+
go through the `release` skill.
34
+
- On failure: `gh run view <run> --log-failed`, fix, re-dispatch, re-watch.
description: Cut a stable secure-exec release — npm + crates.io in lockstep, plus the manual @secure-exec/core wasm publish. Use whenever the user asks to release secure-exec (a real version, not a preview).
4
+
---
5
+
6
+
# Release secure-exec (stable)
7
+
8
+
Releases publish the `@secure-exec/*` npm packages AND the `secure-exec-*`
9
+
crates at the SAME version. Previews are a different flow (npm-only branch
10
+
dist-tag; see CLAUDE.md "Preview-publishing").
11
+
12
+
1.**Cut the release** from a clean, pushed main checkout:
13
+
14
+
```bash
15
+
just release --patch -y # or --minor / --major / --version <v>; -rc. versions get the rc tag
16
+
```
17
+
18
+
This bumps versions, commits, pushes, and dispatches `publish.yaml` with the
Copy file name to clipboardExpand all lines: CLAUDE.md
+14-9Lines changed: 14 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -82,14 +82,14 @@ Every bound that protects a shared resource — memory/heap, CPU/wall-clock, fd/
82
82
- JavaScript host-emulation config (`CreateVmConfig.jsRuntime`) mirrors esbuild's vocabulary so users carry over a known mental model. The host environment presented to guest JS is a `platform`; its values are esbuild's exactly — `node` | `browser` | `neutral` — plus the one sanctioned extension `bare` (language-only: ECMAScript spec globals + WebAssembly, nothing host-provided), for which esbuild has no equivalent. Do not invent other platform names. Wherever a JS runtime/resolution config property has an esbuild equivalent, take esbuild's name and value spelling over any other source (esbuild > tsconfig > ad-hoc); introduce a non-esbuild name only when esbuild has no equivalent concept (e.g. `moduleResolution`, `allowedBuiltins`).
83
83
-`packages/core/` is `@secure-exec/core`, the generic TypeScript protocol, client, descriptor, and runtime asset package.
84
84
-`packages/build-tools/` is `@secure-exec/build-tools`, the workspace-only generator package for V8 bridge and base filesystem assets. A fresh checkout must run `pnpm install` before any `cargo` build (including when a downstream like agent-os path-deps these crates): `v8-runtime/build.rs` generates the V8 bridge assets from `packages/build-tools/node_modules` and panics if they are absent.
85
-
- Registry software, filesystem, and tool packages live under `registry/` with the `@secure-exec/*` npm scope.
85
+
- Registry softwareand agent packages live under `registry/` with the `@agentos-software/*` npm scope (tool packages keep `@secure-exec/*`). Their build/publish lifecycle is owned by `@rivet-dev/agentos-toolchain` (`packages/agentos-toolchain`: `stage`/`build`/`pack`/`publish`) driven by the `just registry-*` recipes; the full flow is documented in `registry/README.md`. Never add package-local copy scripts or Makefile staging — declare commands/aliases/stubs in the package's `agentos-package.json` and let `stage` populate the gitignored `bin/`.
86
86
87
87
## Build And Assets
88
88
89
89
- The VM base filesystem artifact is derived from Alpine Linux, but runtime source should stay generic.
90
90
- Rebuild the base filesystem (requires Docker) with `pnpm --dir packages/build-tools build:base-filesystem`. The one script snapshots Alpine, applies the secure-exec transforms, and writes the single canonical `packages/core/fixtures/base-filesystem.json`, mirroring the same bytes into the crate-vendored `crates/sidecar/assets/` and `crates/vfs/assets/` copies (those exist only as the `cargo publish` fallback; never hand-edit them).
91
91
- The V8 bridge bundle is generated from `packages/build-tools/scripts/build-v8-bridge.mjs`; keep its generated assets aligned with bridge-contract changes.
92
-
-`registry/native` owns the Rust-to-WASM command build; package-local `registry/software/*/wasm/` output is release material.
92
+
-`registry/native` owns the Rust-to-WASM command build (`just registry-native`, or `just registry-native-cmd <name>` for one `cmd-<name>` crate); its `target/wasm32-wasip1/release/commands/` output feeds `agentos-toolchain stage`, which populates each package's gitignored `bin/` for `agentos-toolchain build` to assemble into `dist/package/`.
93
93
94
94
## npm Compatibility
95
95
@@ -110,13 +110,13 @@ Every bound that protects a shared resource — memory/heap, CPU/wall-clock, fd/
110
110
111
111
### Release Tracks
112
112
113
-
-**secure-exec runtime** — `@secure-exec/*` npm packages and `secure-exec-*` crates; releases keep npm/crates in sync, previews are npm-only. See "Preview-publishing" and "Publishing" for details.
113
+
-**secure-exec runtime** — `@secure-exec/*` npm packages and `secure-exec-*` crates; releases keep npm/crates in sync, previews are npm-only. See "Release-previewing" and "Publishing" for details.
114
114
-**`@agentos-software/*` registry packages** — generic VM software from secure-exec `registry/software/*` plus agent adapters from secure-exec `registry/agent/*`; versioned independently of secure-exec runtime packages.
115
115
-**agent-os product/API** — `@rivet-dev/agentos*`, AgentOs APIs, sidecar wrapper, docs, quickstarts, and examples; see agent-os `CLAUDE.md` for its pinning workflow.
116
116
117
-
### Preview-publishing
117
+
### Release-previewing
118
118
119
-
Dispatch `.github/workflows/publish.yaml` (workflow_dispatch) with no version input to cut a **preview** (debug sidecar build, npm-only, dist-tag = sanitized branch name) — for handing a build to a downstream (agent-os) or external project. **Preview-publish is for previews ONLY; never cut a release with it.** Caveats: WASM-bearing packages (`@secure-exec/core`, `@agentos-software/*`) publish MANUALLY (see Publishing), and the crates.io job is skipped on preview — a *crate* change only reaches consumers locally (path dep / `[patch]`) or via a real release.
119
+
`just release-preview <branch>` dispatches `.github/workflows/publish.yaml` (workflow_dispatch, no version input) to cut a **preview** (debug sidecar build, npm-only, dist-tag = sanitized branch name) — for handing a build to a downstream (agent-os) or external project. **Preview-publish is for previews ONLY; never cut a release with it.** Caveats: WASM-bearing packages (`@secure-exec/core`, `@agentos-software/*`) publish MANUALLY (see Publishing), and the crates.io job is skipped on preview — a *crate* change only reaches consumers locally (path dep / `[patch]`) or via a real release.
120
120
121
121
### Testing a local build from an external project (same machine)
122
122
@@ -125,11 +125,16 @@ Dispatch `.github/workflows/publish.yaml` (workflow_dispatch) with no version in
125
125
126
126
## Publishing
127
127
128
+
Workflow skills (follow these rather than improvising):
- agent-os side: its `.claude/skills/{bump-secure-exec,release-preview,release}` cover consuming/releasing against secure-exec.
133
+
128
134
-**The `@secure-exec/*` npm packages and the `secure-exec-*` Cargo crates are always published at the same version** (npm and crates stay in sync), so a downstream pins both to one `<v>`. See "Release Tracks" for how this differs from `@agentos-software/*` and agent-os releases.
129
-
- CI (`.github/workflows/publish.yaml`) does NOT build or publish the WASM command binaries. There is no `build-commands` job and nothing restores a `wasm-commands` artifact — the workflow only builds/publishes the sidecar binary and the pure-TS packages.
130
-
- WASM-bearing packages are ALWAYS published MANUALLY: `@secure-exec/core` (which vendors `registry/native` commands into `packages/core/commands` via `copy-wasm-commands.mjs`, guarded by its `prepack --require`) and the `@agentos-software/*` registry software. `@secure-exec/core` is in `EXCLUDED` in `scripts/publish/src/lib/packages.ts`, so CI never publishes it.
131
-
- Manual core flow: build the commands locally (`make -C registry/native wasm`), then `npm publish` (not `pnpm publish`) `@secure-exec/core` at the **same version** CI used for that release so dependents resolving `@secure-exec/core@<version>` succeed. `prepack` vendors the commands and fails loud if they are absent.
132
-
- Rationale: building WASM in CI was slow/flaky and repeatedly shipped tarballs missing the command set (the `wasm/` output is a gitignored build artifact). Keeping the WASM publish manual makes the vendored command set authoritative and avoids empty-package regressions.
135
+
- CI (`.github/workflows/publish.yaml`) DOES build and vendor the core WASM command set: the "Build and vendor core WASM commands" step runs `make -C registry/native wasm` + `packages/core run copy-commands` before the npm publish, and core's `prepack` fails loud if the commands are absent — so a published `@secure-exec/core` tarball always carries the command set. (`EXCLUDED` in `scripts/publish/src/lib/packages.ts` contains only the private `publish` package.)
136
+
-`@agentos-software/*` registry software releases stay MANUAL and per-package (`just registry-publish <pkg> [tag]`; dist-tag `dev` unless `latest` is passed deliberately); PREVIEWS include them automatically under the branch dist-tag (`PUBLISH_INCLUDE_REGISTRY_PACKAGES`).
137
+
-`copy-wasm-commands.mjs` (core's vendoring) is the ONE sanctioned package-local copy script: it vendors the baseline command set into the published `@secure-exec/core` tarball at build/prepack time. Every registry package instead declares commands in `agentos-package.json` and lets `agentos-toolchain stage` populate `bin/`.
0 commit comments