Skip to content

Commit 05fa895

Browse files
authored
Document v0.22.0 release and widen redaction (#388)
- Add v0.22.0 release notes and asset manifest - Update changelog and release index - Harden websocket secret redaction
1 parent d55e697 commit 05fa895

5 files changed

Lines changed: 139 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.22.0] - 2026-04-09
11+
12+
See [docs/releases/v0.22.0.md](docs/releases/v0.22.0.md) for full notes and [docs/releases/v0.22.0/assets.md](docs/releases/v0.22.0/assets.md) for release asset inventory.
13+
14+
### Added
15+
16+
- Add provider-aware SME conversation auth with persisted provider and auth method settings.
17+
- Add navigable settings sections and a dedicated SME conversation settings editor.
18+
19+
### Changed
20+
21+
- Refresh SME chat with a modern sidebar, composer, and message layout.
22+
- Restructure settings into section-specific panels with a mobile section picker.
23+
- Route SME conversation sends through provider-specific auth validation and runtime backends.
24+
25+
### Fixed
26+
27+
- Redact secrets from websocket errors across the server, transport, and UI paths.
28+
1029
## [0.21.0] - 2026-04-09
1130

1231
See [docs/releases/v0.21.0.md](docs/releases/v0.21.0.md) for full notes and [docs/releases/v0.21.0/assets.md](docs/releases/v0.21.0/assets.md) for release asset inventory.
@@ -638,3 +657,4 @@ First public version tag. See [docs/releases/v0.0.1.md](docs/releases/v0.0.1.md)
638657
[0.18.0]: https://github.com/OpenKnots/okcode/releases/tag/v0.18.0
639658
[0.20.0]: https://github.com/OpenKnots/okcode/releases/tag/v0.20.0
640659
[0.21.0]: https://github.com/OpenKnots/okcode/releases/tag/v0.21.0
660+
[0.22.0]: https://github.com/OpenKnots/okcode/releases/tag/v0.22.0

docs/releases/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Use this directory for versioned release notes and asset manifests only:
99

1010
| Version | Summary | Assets |
1111
| -------------------- | ---------------------------------------------------------------------------------------------- | ----------------------------- |
12+
| [0.22.0](v0.22.0.md) | Provider-aware SME auth, refreshed SME chat, settings navigation, and websocket redaction | [manifest](v0.22.0/assets.md) |
1213
| [0.21.0](v0.21.0.md) | Terminal startup and project continuity improvements, SME auth recovery, and release alignment | [manifest](v0.21.0/assets.md) |
1314
| [0.20.0](v0.20.0.md) | Polish the sidebar app shell, stabilize SME chat and OpenCla | [manifest](v0.20.0/assets.md) |
1415
| [0.19.0](v0.19.0.md) | Release workflow hardening, branch-handling fixes, and release-preflight cleanup | [manifest](v0.19.0/assets.md) |

docs/releases/v0.22.0.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# OK Code v0.22.0
2+
3+
**Date:** 2026-04-09
4+
**Tag:** [`v0.22.0`](https://github.com/OpenKnots/okcode/releases/tag/v0.22.0)
5+
6+
## Summary
7+
8+
Ship provider-aware SME conversation auth, refresh the SME chat and settings experience, and harden websocket error redaction across the app.
9+
10+
## Highlights
11+
12+
- **Persist provider and auth method per SME conversation so sends can be validated against the right backend.**
13+
- **Refresh the SME workspace with a modern sidebar, auto-sizing composer, and tighter message presentation.**
14+
- **Restructure settings into navigable sections with clearer headers and mobile section picking.**
15+
- **Redact secrets from websocket errors in the server, transport, and UI paths.**
16+
17+
## Breaking changes
18+
19+
- None.
20+
21+
## Upgrade and install
22+
23+
- **CLI:** `npm install -g okcodes@0.22.0` after the package is published to npm.
24+
- **Desktop:** Download from [GitHub Releases](https://github.com/OpenKnots/okcode/releases/tag/v0.22.0). Filenames are listed in [assets.md](v0.22.0/assets.md).
25+
- **iOS:** Available via TestFlight when the coordinated release workflow completes successfully.
26+
27+
## Detailed changes
28+
29+
### Security and error handling
30+
31+
- Added shared redaction helpers and applied them to websocket server, transport, and UI error presentation so secrets stay out of surfaced errors and logs.
32+
- Covered the redaction behavior with unit tests to keep error handling predictable as message shapes change.
33+
34+
### SME conversation auth
35+
36+
- Persisted provider and auth method per SME conversation so the app can route messages through the correct backend after validation.
37+
- Added the validation and provider-runtime plumbing needed to dispatch SME sends through Anthropic or the provider runtime path.
38+
- Introduced an edit dialog and supporting store/config updates so conversation settings can be changed without leaving the workspace.
39+
- Added a persistence migration for the new conversation auth fields.
40+
41+
### SME chat UX
42+
43+
- Reworked the SME workspace with a cleaner sidebar, better empty/loading states, a more usable composer, and improved message bubble hierarchy.
44+
- Updated the conversation rail and knowledge panel spacing and actions so longer sessions remain easier to scan.
45+
46+
### Settings navigation
47+
48+
- Split settings into section-specific panels and added sidebar plus mobile section pickers for faster navigation.
49+
- Updated the settings header to reflect the active section and added descriptions to make each panel easier to understand at a glance.
50+
51+
## Release verification references
52+
53+
- Review the [asset manifest](v0.22.0/assets.md) to confirm every expected GitHub Release attachment is present.
54+
55+
## Known limitations
56+
57+
OK Code remains early work in progress. Expect rough edges around session recovery, streaming edge cases, and platform-specific desktop behavior. Report issues on GitHub.

docs/releases/v0.22.0/assets.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# v0.22.0 — Release assets (manifest)
2+
3+
Binaries are **not** stored in this git repository; they are attached to the [GitHub Release for `v0.22.0`](https://github.com/OpenKnots/okcode/releases/tag/v0.22.0) by the [coordinated release workflow](../../.github/workflows/release.yml).
4+
5+
The GitHub Release also includes **documentation attachments** with stable filenames:
6+
7+
| File | Source in repo |
8+
| --------------------------- | ------------------------------------- |
9+
| `okcode-CHANGELOG.md` | [CHANGELOG.md](../../../CHANGELOG.md) |
10+
| `okcode-RELEASE-NOTES.md` | [v0.22.0.md](../v0.22.0.md) |
11+
| `okcode-ASSETS-MANIFEST.md` | This file |
12+
13+
After the workflow completes, the release should contain the coordinated desktop outputs below. Filenames may include the product name `OK Code` and the version string `0.22.0`.
14+
15+
## Desktop installers and payloads
16+
17+
| Platform | Kind | Expected attachment pattern |
18+
| ------------------- | -------------- | --------------------------- |
19+
| macOS Apple Silicon | DMG (signed) | `*.dmg` (arm64) |
20+
| macOS | ZIP (updater) | `*.zip` |
21+
| Linux x64 | AppImage | `*.AppImage` |
22+
| Windows x64 | NSIS installer | `*.exe` |
23+
24+
The release workflow also uploads updater manifests and differential payload metadata:
25+
26+
- `latest-mac*.yml`
27+
- `latest-linux.yml`
28+
- `latest.yml`
29+
- `*.blockmap`
30+
31+
### Intel compatibility artifact
32+
33+
The separate [`release-intel-compat.yml`](../../.github/workflows/release-intel-compat.yml) workflow produces the non-blocking macOS x64 compatibility build. It is **not** part of the coordinated stable release attachment set unless it is uploaded separately after that workflow runs.
34+
35+
### macOS code signing and notarization
36+
37+
All coordinated macOS DMG and ZIP payloads are expected to be code-signed with the Apple Developer ID certificate and notarized before release publication. Gatekeeper verifies the signature on first launch.
38+
39+
## Electron updater metadata
40+
41+
| File | Purpose |
42+
| ------------------ | --------------------------------------------------------- |
43+
| `latest-mac*.yml` | macOS update manifest |
44+
| `latest-linux.yml` | Linux update manifest |
45+
| `latest.yml` | Windows update manifest |
46+
| `*.blockmap` | Differential download block maps for Electron auto-update |
47+
48+
## iOS (TestFlight)
49+
50+
The iOS build is uploaded directly to App Store Connect / TestFlight by the coordinated release workflow. No IPA is attached to the GitHub Release.
51+
52+
| Detail | Value |
53+
| ----------------- | ----------------------------- |
54+
| Bundle ID | `com.openknots.okcode.mobile` |
55+
| Marketing version | `0.22.0` |
56+
| Build number | Set from `GITHUB_RUN_NUMBER` |
57+
58+
## Checksums
59+
60+
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.

packages/shared/src/redaction.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const BEARER_TOKEN_PATTERN = /\b(Bearer\s+)([^\s,;]+)/gi;
55
const SENSITIVE_QUERY_PARAM_PATTERN =
66
/([?&](?:access[_-]?token|api[_-]?key|auth(?:orization)?|client[_-]?secret|password|refresh[_-]?token|secret|session[_-]?token|token)=)([^&#\s]+)/gi;
77
const SENSITIVE_FIELD_PATTERN =
8-
/((?:"|')?(?:access[_-]?token|api[_-]?key|auth(?:orization)?|client[_-]?secret|password|refresh[_-]?token|secret|session[_-]?token|token)(?:"|')?\s*[:=]\s*)(["'`]?)([^"'`\s,}]+)(\2)/gi;
8+
/((?:"|')?(?:access[_-]?token|api[_-]?key|auth(?:orization)?|client[_-]?secret|password|refresh[_-]?token|secret|session[_-]?token|token)(?:"|')?\s*[:=]\s*)(["'`]?)(?!Bearer\b)([^"'`\s,&}]+)(\2)/gi;
99
const PROCESS_ENV_PATTERN =
1010
/\b((?:process\.)?env\.[A-Za-z_][A-Za-z0-9_]*\s*(?:=|:)\s*)(["'`]?)([^"'`\s,}]+)(\2)/g;
1111
const ENV_ASSIGNMENT_PATTERN = /\b([A-Z][A-Z0-9_]{1,63}\s*=\s*)(["'`]?)([^"'`\s]+)(\2)/g;

0 commit comments

Comments
 (0)