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
3 changes: 2 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,8 @@ Core clients (committed by the lead, `3d961cf`): `shelldeck-core::config::bext_c

- **Release command:** Claude Code / Cursor use `/release [patch|minor|major|status|check|monitor]`; Codex uses `$release` with the same arguments. Both drive `scripts/release.sh` (bump, tag, push, optional CI monitor). Specs: `.claude/commands/release.md` and `.agents/skills/release/SKILL.md`.
- **Cut a release:** bump `[workspace.package] version` in the root `Cargo.toml`, commit, then push a matching `vX.Y.Z` git tag. The tag triggers `.github/workflows/release.yml`: it builds linux/macos/windows, creates the GitHub Release with assets, and publishes the update manifest to Cloudflare KV (key `latest-release`). If any build fails, the release + manifest jobs are SKIPPED — fix and re-tag.
- **Site + update server:** a single Cloudflare Worker (`cloudflare/update-worker/`, bound to `shelldeck.1clic.pro`) serves the landing/marketing page (`/`), the update API (`/api/releases/latest?platform=…`), and install scripts (`/install.sh`, `/install.ps1`).
- **Site:** the product site is <https://shelldeck.bext.dev>, a bext PRISM site that lives in the `bext` repository (`sites/shelldeck`), not here. It reads GitHub Releases for its pages and relays the update API and install scripts below, so public links and install commands use that domain.
- **Update server:** a Cloudflare Worker (`cloudflare/update-worker/`, bound to `shelldeck.1clic.pro`) serves the update API (`/api/releases/latest?platform=…`) and the install scripts (`/install.sh`, `/install.ps1`); its `/` redirects to the site. It holds the signed manifest (KV `latest-release`) and is what installed applications poll (`UPDATE_SERVER` in `crates/shelldeck-update`), so it must stay deployed.
- **Update client:** `crates/shelldeck-update/` polls that API hourly. Platform keys are `{os}-{arch}` and use **`macos-*`, never `darwin-*`** — manifest, workflow, client, and worker must all agree.
- **Worker code deploy:** `release.yml` only updates KV *data*. Worker *code* deploys via `.github/workflows/deploy-worker.yml` on changes to `cloudflare/update-worker/**` — but that needs the `CLOUDFLARE_API_TOKEN` secret to have **Workers Scripts: Edit** permission. Otherwise deploy manually: `cd cloudflare/update-worker && wrangler login && npm run deploy`.

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,16 +55,16 @@ requests, and automation into one role-aware control plane.

## Install

Download the latest release from **[shelldeck.1clic.pro](https://shelldeck.1clic.pro)** (Linux AppImage/tarball, macOS DMG, Windows installer), or use the install script:
Download the latest release from **[shelldeck.bext.dev](https://shelldeck.bext.dev/telecharger)** (Linux AppImage/tarball, macOS DMG, Windows installer), or use the install script:

```bash
# Linux / macOS
curl -fsSL https://shelldeck.1clic.pro/install.sh | bash
curl -fsSL https://shelldeck.bext.dev/install.sh | bash
```

```powershell
# Windows
powershell -c "irm shelldeck.1clic.pro/install.ps1 | iex"
powershell -c "irm https://shelldeck.bext.dev/install.ps1 | iex"
```

ShellDeck auto-updates itself once installed. To build from source instead, see below.
Expand Down
Loading
Loading