com um clique
release
// Bump the project version (major/minor/patch), update CHANGELOG.md, and tag the release. Usage `/release <major|minor|patch>`.
// Bump the project version (major/minor/patch), update CHANGELOG.md, and tag the release. Usage `/release <major|minor|patch>`.
Deploy the BYOA wake-receiver Vercel Function from `deployment/vercel/`. Reads `.env.byoa`, pushes the operator's required env to the Vercel project, deploys via `npx vercel`, health-checks the URL, logs the operator in, and registers the resulting alias as the ship's `source_url` via `ship_byoa_configure`. Picks up from `/byoa-link` (which claims the ship and writes `.env.byoa`). Usage `/byoa-deploy-vercel [env]` (env defaults to `prod`; `live` is an accepted synonym for `prod`).
Onboard a Gradient Bang operator to run a Bring-Your-Own-Agent (BYOA) — logs in with email/password, claims a corp ship as BYOA, generates a per-ship wake secret, and writes `.env.byoa` for the `uv run byoa` CLI. Usage `/byoa-link [env]` (env defaults to `prod`; `live` is an accepted synonym for `prod`).
Release a Gradient Bang corp ship from BYOA — logs in with email/password (or reuses a JWT), nulls the ship's stored `source_url` and `wake_secret` via `ship_byoa_configure { action: "set" }`, then calls `{ action: "clear" }` to null `byoa_owner_character_id`. Frees the ship completely for someone else to claim. Inverse of `/byoa-link`. Usage `/byoa-unlink [env]`.
Create a new game character with optional custom ship, credits, onboarding skip, and bulk contract completion. Usage `/character-create [env] <name> <email> <password> [credits <N>] [ship <type>] [skip-onboarding] [complete-contracts]`.
Generate Gradient News & Observer assets (banners, front pages, prompt experiments) by dispatching to the right newspaper script. Usage `/newspaper <asset-type> [args]` where asset-type is `banner`, `front-page`, or `prompt-experiment`.
Generate a Gradient News & Observer newspaper front page for a time window. Pulls game events into a structured digest, writes ten illustrated story ledes (7 straight news + 2 gossip + 1 market box) into a markdown file, then renders a 2160x3840 newspaper front-page PNG. Usage `/news-front-page [duration]` (default `24h`; e.g. `1h`, `6h`, `7d`).
| name | release |
| description | Bump the project version (major/minor/patch), update CHANGELOG.md, and tag the release. Usage `/release <major|minor|patch>`. |
Bump the Gradient Bang version, update the changelog, commit, and tag.
/release <major|minor|patch> — bump type required. If missing, ask.
Read the version field from pyproject.toml. Parse it as MAJOR.MINOR.PATCH.
Apply the requested bump:
major → MAJOR+1.0.0minor → MAJOR.MINOR+1.0patch → MAJOR.MINOR.PATCH+1Report: Bumping version: X.Y.Z → A.B.C
Update these files to the new version:
pyproject.toml — the version = "X.Y.Z" linedeployment/supabase/functions/_shared/version.ts — the export const VERSION = "X.Y.Z"; lineuv lock
The project itself is recorded in uv.lock (name = "gradient-bang"), so a pyproject.toml version bump invalidates the lockfile. The bot's Docker build runs uv sync --locked and will fail without this. No dependency changes — only the project's own version line moves.
In CHANGELOG.md:
## [Unreleased] section## [A.B.C] - YYYY-MM-DD (today's date)## [Unreleased] and the next ## [ heading (or EOF) under the new version heading## [Unreleased] with an empty line beneath it (ready for new entries)If there are no entries under Unreleased, warn the user but proceed.
From the client/ directory, run the matching pnpm bump script:
cd client && pnpm run bump:<major|minor|patch>
This bumps client/app/package.json and client/starfield/package.json, then rebuilds.
git add pyproject.toml deployment/supabase/functions/_shared/version.ts uv.lock CHANGELOG.md client/
git commit -m "release: vA.B.C"
git tag vA.B.C
git push origin HEAD
git push origin vA.B.C
Pushing the tag triggers .github/workflows/release.yml, which extracts the new ## [A.B.C] section from CHANGELOG.md and creates the GitHub release.
Print the new version and remind the user:
/deploy to deploy/deploy for that)