en un clic
releasing
Release and version the project. Only invoke manually.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Release and version the project. Only invoke manually.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
| name | releasing |
| description | Release and version the project. Only invoke manually. |
| disable-model-invocation | true |
Published desktop, CLI, daemon, and runtimed Python artifacts share the same
base version. Python release jobs stamp the wheel version from the Rust release
source during the workflow, after cargo xtask bump has updated the checked-in
version files.
| Artifact | Version source |
|---|---|
| nteract desktop app | crates/notebook/tauri.conf.json |
runt CLI | crates/runt/Cargo.toml |
runtimed daemon | crates/runtimed/Cargo.toml |
runtimed Python package | python/runtimed/pyproject.toml, then stamped from crates/runt/Cargo.toml during release |
nteract Python package | python/nteract/pyproject.toml |
Two independent version numbers (incrementing integers, not semver):
PROTOCOL_VERSION in crates/notebook-protocol/src/connection/handshake.rs, re-exported by connection.rs) — Wire compatibility. Validated by magic bytes preamble at connection time.SCHEMA_VERSION in notebook-doc/src/lib.rs) — Automerge document compatibility. Stored in doc root.These evolve independently from each other and from the artifact version.
cargo xtask bump patch # or minor, or major
This updates all versioned artifacts in lockstep (Rust crates, Python packages,
frontend packages, plugin manifests, Tauri config) and runs cargo update -w to
refresh Cargo.lock. See crates/xtask/src/bump.rs for the complete target
list.
Commit the version bump, then tag to trigger the release.
git tag v2.1.0-stable.202607020900
git push origin v2.1.0-stable.202607020900
Triggers release-stable.yml which:
runt CLI binariescrates/runt/Cargo.tomlruntimed wheels to PyPI (stable)stable-latest Tauri updater channelRuns automatically at 9am UTC daily via release-nightly.yml, or manually via workflow dispatch.
-nightly.{timestamp} suffix2.0.1a202507150900 (PEP 440)runt-nightlyInstall nightly Python: pip install runtimed --pre
runtimed Python wheels ship from the stable and nightly release workflows.
Nightly builds stamp the next patch alpha version (PEP 440), and stable builds
stamp the base version from crates/runt/Cargo.toml. cargo xtask bump still
updates python/runtimed/pyproject.toml; workflow stamping is a guardrail so a
stale pyproject cannot publish the wrong wheel version.
| Tag pattern | Workflow | What it publishes |
|---|---|---|
v* | release-stable.yml | Desktop app + CLI + runtimed Python (stable) |
| (cron) | release-nightly.yml | Desktop app + CLI + runtimed Python (pre-release) |
PROTOCOL_VERSION in crates/notebook-protocol/src/connection/handshake.rsPROTOCOL_V* string constant if the version string changescrates/notebook-wire/AGENTS.mdMagic bytes preamble rejects mismatched protocol versions at wire level, before JSON parsing.
SCHEMA_VERSION in crates/notebook-doc/src/lib.rsnotebook-doc/src/lib.rsSchema changes don't require a protocol bump — wire format for sync frames stays the same.
release-common.yml accepts inputs:
github_release_prerelease: true — applies PEP 440 alpha stamp to Python versiongithub_release_prerelease: false — stamps Python version from crates/runt/Cargo.tomlPython wheels are always built (macOS arm64, macOS x64, Linux x64, Windows x64) and published.
Desktop version: {runt version}-{suffix}.{timestamp} stamped into tauri.conf.json and Cargo.toml at build time (not committed).
PyPI uses OIDC trusted publishing (no API tokens). GitHub Actions workflow identity registered as trusted publisher on PyPI for runtimed package.
cargo check passes (Cargo.lock updated)PROTOCOL_VERSION and SCHEMA_VERSION correct for this releasemainfeat, fix, perf)Pull and triage submitted nteract diagnostics archives from Cloudflare using a diagnostics id/token. Use when investigating "submit logs" reports, runtimed/notebook/MCP diagnostic archives, telemetry diagnostics uploads, or failures where the user gives an id and token.
Frontend development for nteract UI/product surfaces, Elements fixtures, hot reload, dev daemon setup, MCP server workflow, TypeScript bindings via ts-rs, and reactive state work that touches RxJS streams, useSyncExternalStore stores, or WASM-backed notebook/runtime projections.
Automerge sync protocol internals, document model (OpSet, ChangeGraph, fork/merge, save/load lifecycle), and higher-level protocol design patterns. Use when debugging sync failures, reasoning about convergence, changing reconnection logic, working with document structure, diagnosing panics in op application, adding new sync streams, or evaluating architectural patterns from automerge-repo and samod.
Develop, debug, and manage the runtimed daemon, Python bindings, build system, and Python bindings. Use when working on daemon code, kernel issues, maturin builds, or xtask workflows.
Understand the MCP server session lifecycle: proxy supervision, daemon watch loop, session state machine, rejoin/reconnect races, and room eviction. Use when working on runt-mcp, runt-mcp-proxy, daemon_watch.rs, or any code that reads/writes the session Arc<RwLock<Option<NotebookSession>>>.
Architecture and documentation framing for cross-cutting repo decisions, docs taxonomy placement, ADRs, memos, PRDs, implementation plans, audits, measurements, runbooks, and source-grounded proposals. Use when deciding where durable docs belong, drafting or moving architecture/product/design docs, or promoting `.context/` notes into repo docs. Do not use for routine code changes unless they require durable cross-functional documentation.