Skip to content

Commit 298da1d

Browse files
committed
chore(release): prepare v0.22.0
1 parent 05fa895 commit 298da1d

File tree

11 files changed

+132
-13
lines changed

11 files changed

+132
-13
lines changed

apps/desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@okcode/desktop",
3-
"version": "0.21.0",
3+
"version": "0.22.0",
44
"private": true,
55
"main": "dist-electron/main.js",
66
"scripts": {

apps/mobile/android/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ android {
88
minSdkVersion rootProject.ext.minSdkVersion
99
targetSdkVersion rootProject.ext.targetSdkVersion
1010
versionCode 1
11-
versionName "0.21.0"
11+
versionName "0.22.0"
1212
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1313
aaptOptions {
1414
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.

apps/mobile/ios/App/App.xcodeproj/project.pbxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@
306306
"$(inherited)",
307307
"@executable_path/Frameworks",
308308
);
309-
MARKETING_VERSION = 0.21.0;
309+
MARKETING_VERSION = 0.22.0;
310310
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
311311
PRODUCT_BUNDLE_IDENTIFIER = com.openknots.okcode.mobile;
312312
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -331,7 +331,7 @@
331331
"$(inherited)",
332332
"@executable_path/Frameworks",
333333
);
334-
MARKETING_VERSION = 0.21.0;
334+
MARKETING_VERSION = 0.22.0;
335335
PRODUCT_BUNDLE_IDENTIFIER = com.openknots.okcode.mobile;
336336
PRODUCT_NAME = "$(TARGET_NAME)";
337337
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "";

apps/mobile/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@okcode/mobile",
3-
"version": "0.21.0",
3+
"version": "0.22.0",
44
"private": true,
55
"type": "module",
66
"scripts": {

apps/server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "okcodes",
3-
"version": "0.21.0",
3+
"version": "0.22.0",
44
"license": "MIT",
55
"repository": {
66
"type": "git",

apps/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@okcode/web",
3-
"version": "0.21.0",
3+
"version": "0.22.0",
44
"private": true,
55
"type": "module",
66
"scripts": {

bun.lock

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/releases/v0.22.0/assets.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@ The iOS build is uploaded directly to App Store Connect / TestFlight by the coor
5555
| Marketing version | `0.22.0` |
5656
| Build number | Set from `GITHUB_RUN_NUMBER` |
5757

58+
## Rollout documentation
59+
60+
| Document | Purpose |
61+
| -------------------------------------------- | ----------------------------------------------------------------- |
62+
| [rollout-checklist.md](rollout-checklist.md) | Step-by-step release playbook from preflight through post-release |
63+
| [soak-test-plan.md](soak-test-plan.md) | Structured release validation for the highest-risk surfaces |
64+
5865
## Checksums
5966

6067
SHA-256 checksums are not committed in-repo. Verify downloads through the GitHub release UI or with `gh release download` followed by local checksum generation if needed.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# v0.22.0 Rollout Checklist
2+
3+
Step-by-step playbook for the v0.22.0 release. Each phase must complete before advancing.
4+
5+
## Phase 0: Pre-flight
6+
7+
- [ ] Verify all release package versions are `0.22.0`:
8+
- `apps/server/package.json`
9+
- `apps/desktop/package.json`
10+
- `apps/web/package.json`
11+
- `apps/mobile/package.json`
12+
- `packages/contracts/package.json`
13+
- [ ] Verify Android `versionName` and iOS `MARKETING_VERSION` both match `0.22.0`.
14+
- [ ] Confirm `CHANGELOG.md` has `## [0.22.0] - 2026-04-09`.
15+
- [ ] Confirm `docs/releases/v0.22.0.md` exists with Summary, Highlights, and Upgrade sections.
16+
- [ ] Confirm `docs/releases/v0.22.0/assets.md` exists and lists every expected attachment class.
17+
- [ ] Confirm `docs/releases/v0.22.0/rollout-checklist.md` and `docs/releases/v0.22.0/soak-test-plan.md` exist.
18+
- [ ] Confirm `docs/releases/README.md` includes the v0.22.0 row.
19+
- [ ] Run `bun run release:validate 0.22.0`.
20+
- [ ] Confirm the working tree is clean.
21+
- [ ] Confirm you are on `main`.
22+
23+
### Quality gates
24+
25+
- [ ] `bun run fmt:check`
26+
- [ ] `bun run lint`
27+
- [ ] `bun run typecheck`
28+
- [ ] `bun run test`
29+
- [ ] `bun run --cwd apps/web test:browser`
30+
- [ ] `bun run test:desktop-smoke`
31+
- [ ] `bun run release:smoke`
32+
33+
## Phase 1: Publish
34+
35+
- [ ] Push the release-prep commit to `main`.
36+
- [ ] Create and push tag `v0.22.0`.
37+
- [ ] Verify the coordinated `release.yml` workflow starts.
38+
- [ ] Monitor the pipeline through Preflight, Desktop builds, iOS signing preflight, optional iOS TestFlight, Publish GitHub Release, Finalize release, and optional CLI publish if started through manual dispatch.
39+
40+
### Asset verification
41+
42+
- [ ] GitHub Release body matches `docs/releases/v0.22.0.md`.
43+
- [ ] `okcode-CHANGELOG.md` is attached.
44+
- [ ] `okcode-RELEASE-NOTES.md` is attached.
45+
- [ ] `okcode-ASSETS-MANIFEST.md` is attached.
46+
- [ ] macOS release artifacts are attached: DMG, ZIP, updater manifest, and blockmaps.
47+
- [ ] Linux release artifacts are attached: AppImage and updater manifest if generated.
48+
- [ ] Windows release artifacts are attached: installer, updater manifest, and blockmaps.
49+
- [ ] If the Intel compatibility workflow is run, confirm the x64 macOS DMG is attached separately.
50+
51+
## Phase 2: Post-release verification
52+
53+
- [ ] `npx --yes okcodes@0.22.0 --version` returns `0.22.0`.
54+
- [ ] macOS installer launches and passes Gatekeeper.
55+
- [ ] Linux AppImage launches.
56+
- [ ] Windows installer installs and launches.
57+
- [ ] Desktop auto-update metadata is present for supported platforms.
58+
- [ ] If iOS signing was enabled, confirm the new TestFlight build appears.
59+
- [ ] Confirm the finalize job did not need to push another version-alignment commit, or review its no-op output if versions were already aligned before tagging.
60+
61+
## Phase 3: Follow-through
62+
63+
- [ ] Trigger the Intel compatibility workflow if macOS x64 artifacts are required for this train.
64+
- [ ] Update external release references or announcements.
65+
- [ ] Monitor reports for regressions in SME conversation auth, refreshed SME chat flows, settings navigation, and websocket error handling.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# v0.22.0 Soak Test Plan
2+
3+
Structured validation plan for the highest-risk surfaces in v0.22.0.
4+
5+
## 1. SME provider-aware auth routing
6+
7+
| Step | Expected | Pass |
8+
| --------------------------------------------------------------- | -------------------------------------------------------------------------- | ---- |
9+
| Create a new SME conversation and choose a provider/auth method | The selected provider and auth method persist on the conversation | [ ] |
10+
| Reload the app and reopen the same conversation | The saved provider/auth settings restore without falling back to old state | [ ] |
11+
| Send a message with valid auth configured | Validation succeeds and the message routes through the intended backend | [ ] |
12+
| Switch the conversation auth method and send again | The updated auth choice is honored without needing a new conversation | [ ] |
13+
14+
## 2. SME chat workspace refresh
15+
16+
| Step | Expected | Pass |
17+
| ------------------------------------------------------ | ------------------------------------------------------------------- | ---- |
18+
| Open the SME workspace with multiple conversations | Sidebar, loading states, and message list render cleanly | [ ] |
19+
| Compose a longer message in the refreshed composer | Composer grows predictably and remains usable on desktop and mobile | [ ] |
20+
| Review longer threads with several message types | Bubble hierarchy and spacing stay readable without overlapping UI | [ ] |
21+
| Open the knowledge panel while switching conversations | Rail and knowledge panel stay in sync with the active conversation | [ ] |
22+
23+
## 3. Settings navigation and section routing
24+
25+
| Step | Expected | Pass |
26+
| ----------------------------------------------------- | --------------------------------------------------------------------- | ---- |
27+
| Open settings on desktop | Sidebar sections navigate between panels without losing active state | [ ] |
28+
| Open settings on a narrow/mobile viewport | Section picker exposes the same sections and updates the active panel | [ ] |
29+
| Move between general and SME-specific settings panels | Section headers and descriptions update with the active destination | [ ] |
30+
| Return to chat after settings changes | Updated settings are reflected without stale navigation state | [ ] |
31+
32+
## 4. Websocket error redaction
33+
34+
| Step | Expected | Pass |
35+
| -------------------------------------------------------- | -------------------------------------------------------------------- | ---- |
36+
| Trigger a websocket-facing provider or transport error | Error content reaches the UI without exposing raw secrets | [ ] |
37+
| Inspect server-side surfaced error text or logs | Sensitive token-like values are redacted consistently | [ ] |
38+
| Trigger the same failure path through reconnect or retry | Redaction remains stable across transport retries and repeated sends | [ ] |
39+
| Review affected UI banners and inline thread errors | Users see actionable errors without leaked credentials | [ ] |
40+
41+
## 5. Release regression checks
42+
43+
| Step | Expected | Pass |
44+
| ---------------------------------------------------- | -------------------------------------------- | ---- |
45+
| Run desktop smoke coverage on the release build path | Desktop packaging remains green | [ ] |
46+
| Verify local CLI package after publish | `okcodes --version` reports `0.22.0` | [ ] |
47+
| Inspect GitHub Release attachments | Every class listed in `assets.md` is present | [ ] |

0 commit comments

Comments
 (0)