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
32 changes: 23 additions & 9 deletions .claude/skills/cut-release/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,29 @@ Packages write enabled for Actions in repo settings.
tagged commit; `ci.yml` does not run on tags, so `master` must already be
green. Merge the open PRs that belong in this version.

2. **Pick the version.** Semver. A pre-release gets a hyphen suffix
(`v1.2.0-rc1`) — the workflow publishes it as a GitHub *prerelease* and does
**not** move the `:latest` image tag.

Version fields in the tree (`apps/bridge/package.json`,
`apps/mobile/src-tauri/tauri.conf.json`) do **not** need a manual bump — the
workflow stamps the tag's number into both before building so the artifacts
self-describe. Bump them in a normal commit only if you want `master` itself
to carry the new number between releases.
2. **Bump the version in the tree — in a commit, before tagging.** One number
for the whole monorepo (unified versioning: every artifact of release N is
version N, even a component unchanged since N-1 — the version is a
compatibility snapshot, not a per-component changelog; wire compatibility is
`protocolVersion`, tracked separately). Set `X.Y.Z` in:
- `package.json` (root), every `apps/*/package.json` and `packages/*/package.json`
- `apps/mobile/src-tauri/tauri.conf.json` `version`
- `apps/mobile/src-tauri/Cargo.toml` `version` + the `codedeck-mobile` entry
in `Cargo.lock` (one line; CI's `cargo test --locked` fails if they disagree)

The Android `versionCode` is **derived** from `version`
(`major·1_000_000 + minor·1_000 + patch`), so bumping `version` is enough — do
not pin `bundle.android.versionCode` in `tauri.conf.json` (a pin turns the
monotonic-integer guarantee into manual bookkeeping).

Land this bump on `master` (a small dedicated PR is fine) so the repo always
states its own current version. `release.yml` re-stamps the same number at
build time with `--allow-same-version`, so the CI stamp is a **no-op safety
net** — it only does real work for a `workflow_dispatch` run given an
arbitrary version input, never the mechanism a real tag relies on.

Semver. A pre-release gets a hyphen suffix (`v1.2.0-rc1`) — published as a
GitHub *prerelease*, and `:latest` does not move.

3. **Verify locally** (see the `verify-changes` skill):

Expand Down
2 changes: 1 addition & 1 deletion apps/bridge/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@codedeck/bridge",
"version": "0.10.0",
"version": "0.11.0",
"type": "module",
"bin": {
"codedeck-bridge": "./out/main.js"
Expand Down
5 changes: 5 additions & 0 deletions apps/mobile/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ the Rust `aarch64-linux-android` target.
with the repository keystore secrets, and attaches it to the GitHub release.
See `.claude/skills/cut-release/SKILL.md`.

The Android `versionName` and `versionCode` both come from `tauri.conf.json`
`version` — Tauri derives `versionCode` as `major·1_000_000 + minor·1_000 +
patch`. Do not pin `bundle.android.versionCode`; bumping `version` is the whole
job.

The mesh engine (`libnostr_vpn_app_core.so`) is cross-compiled from a
`nostr-vpn` checkout beside the repo; without it the Gradle task logs a warning
and the APK ships without mesh support (mesh is a dev/QA remote-testing feature,
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@codedeck/mobile",
"version": "0.10.0",
"version": "0.11.0",
"private": true,
"type": "module",
"license": "MIT",
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/mobile/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "codedeck-mobile"
# Semver per package (plan: the padded/unpadded calendar-version Cargo footgun
# is dead). Keep in lockstep with tauri.conf.json `version`.
version = "0.10.0"
version = "0.11.0"
description = "CodeDeck — remote-control Claude Code over Nostr (mobile/desktop shell)"
edition = "2021"
rust-version = "1.77.2"
Expand Down
7 changes: 2 additions & 5 deletions apps/mobile/src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "CodeDeck+",
"version": "0.10.0",
"version": "0.11.0",
"identifier": "com.codedeck.plus",
"build": {
"frontendDist": "../dist",
Expand Down Expand Up @@ -48,9 +48,6 @@
"icons/128x128.png",
"icons/128x128@2x.png",
"icons/icon.png"
],
"android": {
"versionCode": 6
}
]
}
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "codedeck-plus",
"private": true,
"version": "0.10.0",
"version": "0.11.0",
"description": "CodeDeck+ community continuation of CodeDeck Next — unified bridge + mobile monorepo with Tor/SOCKS5 transport and NIP-42 relay auth.",
"scripts": {
"typecheck": "pnpm -r --no-bail run typecheck",
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@codedeck/core",
"version": "0.10.0",
"version": "0.11.0",
"private": true,
"type": "module",
"main": "src/index.ts",
Expand Down
2 changes: 1 addition & 1 deletion packages/protocol/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@codedeck/protocol",
"version": "0.10.0",
"version": "0.11.0",
"private": true,
"type": "module",
"main": "src/index.ts",
Expand Down
2 changes: 1 addition & 1 deletion packages/testkit/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@codedeck/testkit",
"version": "0.10.0",
"version": "0.11.0",
"private": true,
"type": "module",
"main": "src/index.ts",
Expand Down