diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e5789e4..1bcae740 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.14.0] - 2026-04-04 + +See [docs/releases/v0.14.0.md](docs/releases/v0.14.0.md) for full notes and [docs/releases/v0.14.0/assets.md](docs/releases/v0.14.0/assets.md) for release asset inventory. + +### Added + +- Render inline diffs in chat work entries. +- Add prompt enhancement menu to chat composer. +- Auto-refresh file tree on filesystem changes. +- Show PR status for threads with linked branches. +- Propagate project runtime env to git and provider actions. +- Always show recommended next action label on git button. +- Use distinct git icons for PR states in sidebar threads. + ### Changed - CLI npm package name is `okcodes`. Install with `npm install -g okcodes`; the `okcode` binary name is unchanged. +- Switch mobile pairing to link-based flow, replacing QR code pairing. +- Prompt to pull behind branches before starting threads. +- Make stitch border more discrete and add toggle to settings. +- Constrain skills page overflow. + +### Fixed + +- Render diff content directly to fix empty diffs panel. +- Update Cotton Candy theme to pure pink and blue, remove purple tones. + +### Removed + +- Remove telemetry plumbing from server and marketing. +- Remove QR-based mobile pairing settings. +- Remove favorites sidebar feature. ## [0.13.0] - 2026-04-04 @@ -376,4 +405,5 @@ First public version tag. See [docs/releases/v0.0.1.md](docs/releases/v0.0.1.md) [0.0.12]: https://github.com/OpenKnots/okcode/releases/tag/v0.0.12 [0.0.12]: https://github.com/OpenKnots/okcode/releases/tag/v0.0.12 [0.10.0]: https://github.com/OpenKnots/okcode/releases/tag/v0.10.0 +[0.14.0]: https://github.com/OpenKnots/okcode/releases/tag/v0.14.0 [0.13.0]: https://github.com/OpenKnots/okcode/releases/tag/v0.13.0 diff --git a/apps/desktop/package.json b/apps/desktop/package.json index d3e4ebd9..2c771c45 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,6 +1,6 @@ { "name": "@okcode/desktop", - "version": "0.13.0", + "version": "0.14.0", "private": true, "main": "dist-electron/main.js", "scripts": { diff --git a/apps/mobile/android/app/build.gradle b/apps/mobile/android/app/build.gradle index df582791..d61725ef 100644 --- a/apps/mobile/android/app/build.gradle +++ b/apps/mobile/android/app/build.gradle @@ -8,7 +8,7 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 - versionName "0.13.0" + versionName "0.14.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/apps/mobile/ios/App/App.xcodeproj/project.pbxproj b/apps/mobile/ios/App/App.xcodeproj/project.pbxproj index 4120d0d6..28cd9a2b 100644 --- a/apps/mobile/ios/App/App.xcodeproj/project.pbxproj +++ b/apps/mobile/ios/App/App.xcodeproj/project.pbxproj @@ -303,7 +303,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 0.13.0; + MARKETING_VERSION = 0.14.0; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; PRODUCT_BUNDLE_IDENTIFIER = com.openknots.okcode.mobile; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -325,7 +325,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 0.13.0; + MARKETING_VERSION = 0.14.0; PRODUCT_BUNDLE_IDENTIFIER = com.openknots.okcode.mobile; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; diff --git a/apps/mobile/package.json b/apps/mobile/package.json index 82790c4a..e3ad361d 100644 --- a/apps/mobile/package.json +++ b/apps/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@okcode/mobile", - "version": "0.13.0", + "version": "0.14.0", "private": true, "type": "module", "scripts": { diff --git a/apps/server/package.json b/apps/server/package.json index 822f9d92..fcde8a92 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -1,6 +1,6 @@ { "name": "okcodes", - "version": "0.13.0", + "version": "0.14.0", "license": "MIT", "repository": { "type": "git", diff --git a/apps/web/package.json b/apps/web/package.json index 9bf7b60f..f45294d5 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "@okcode/web", - "version": "0.13.0", + "version": "0.14.0", "private": true, "type": "module", "scripts": { diff --git a/docs/releases/v0.14.0.md b/docs/releases/v0.14.0.md new file mode 100644 index 00000000..6a319dab --- /dev/null +++ b/docs/releases/v0.14.0.md @@ -0,0 +1,34 @@ +# OK Code v0.14.0 + +**Date:** 2026-04-04 +**Tag:** [`v0.14.0`](https://github.com/OpenKnots/okcode/releases/tag/v0.14.0) + +## Summary + +Inline diffs in chat, prompt enhancement, auto-refreshing file tree, telemetry removal, and link-based mobile pairing replace the QR flow. + +## Highlights + +- **Render inline diffs in chat work entries.** Code changes now appear directly in conversation turns so you can review diffs without switching panels. +- **Add prompt enhancement menu to chat composer.** A new menu lets you refine and improve prompts before sending them to the agent. +- **Auto-refresh file tree on filesystem changes.** The sidebar file tree updates automatically when files are created, renamed, or deleted. +- **Show PR status for threads with linked branches.** Threads that track a pull request now display the PR state (open, merged, draft) in the sidebar. +- **Remove telemetry plumbing from server and marketing.** All analytics and telemetry collection code has been stripped from the codebase. +- **Switch mobile pairing to link-based flow.** QR-code pairing has been replaced with a simpler clipboard/link-based pairing experience. +- **Prompt to pull behind branches before starting threads.** OK Code warns and offers to pull when the local branch is behind the remote. +- **Propagate project runtime env to git and provider actions.** Project-level environment variables are now forwarded to git operations and provider sessions. + +## Breaking changes + +- **QR-based mobile pairing removed.** Mobile companion pairing now uses link-based flow exclusively. The QR code settings UI has been removed. +- **Favorites sidebar removed.** The favorites sidebar feature has been removed in favor of other navigation methods. + +## Upgrade and install + +- **CLI:** `npm install -g okcodes@0.14.0` (after the package is published to npm manually). +- **Desktop:** Download from [GitHub Releases](https://github.com/OpenKnots/okcode/releases/tag/v0.14.0). This release includes signed macOS arm64/x64 DMGs, Linux x64 AppImage, and Windows x64 NSIS installer. Filenames are listed in [assets.md](v0.14.0/assets.md). +- **iOS:** Available via TestFlight (uploaded automatically by the Release iOS workflow). + +## Known limitations + +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. diff --git a/docs/releases/v0.14.0/assets.md b/docs/releases/v0.14.0/assets.md new file mode 100644 index 00000000..0b525070 --- /dev/null +++ b/docs/releases/v0.14.0/assets.md @@ -0,0 +1,50 @@ +# v0.14.0 — Release assets (manifest) + +Binaries are **not** stored in this git repository; they are attached to the [GitHub Release for `v0.14.0`](https://github.com/OpenKnots/okcode/releases/tag/v0.14.0) by the [Release Desktop workflow](../../.github/workflows/release.yml). + +The GitHub Release also includes **documentation attachments** (same content as in-repo, stable filenames for download): + +| File | Source in repo | +| --------------------------- | ------------------------------------- | +| `okcode-CHANGELOG.md` | [CHANGELOG.md](../../../CHANGELOG.md) | +| `okcode-RELEASE-NOTES.md` | [v0.14.0.md](../v0.14.0.md) | +| `okcode-ASSETS-MANIFEST.md` | This file | + +After the workflow completes, expect **installer and updater** artifacts similar to the following (exact names may include the product name `OK Code` and version `0.14.0`). + +## Desktop installers and payloads + +| Platform | Kind | Typical pattern | +| ------------------- | -------------- | ----------------- | +| macOS Apple Silicon | DMG (signed) | `*.dmg` (arm64) | +| macOS Intel | DMG (signed) | `*.dmg` (x64) | +| macOS | ZIP (updater) | `*.zip` | +| Linux x64 | AppImage | `*.AppImage` | +| Windows x64 | NSIS installer | `*.exe` | + +### macOS code signing and notarization + +All macOS DMG and ZIP payloads are **code-signed** with an Apple Developer ID certificate and **notarized** via the Apple notarization service. Gatekeeper will verify the signature on first launch. The hardened runtime is enabled with entitlements defined in `apps/desktop/resources/entitlements.mac.plist`. + +## Electron updater metadata + +| File | Purpose | +| ------------------ | --------------------------------------------------------- | +| `latest-mac.yml` | macOS update manifest (merged from per-arch builds in CI) | +| `latest-linux.yml` | Linux update manifest | +| `latest.yml` | Windows update manifest | +| `*.blockmap` | Differential download block maps | + +## iOS (TestFlight) + +The iOS build is uploaded directly to App Store Connect / TestFlight by the [Release iOS workflow](../../.github/workflows/release-ios.yml). No IPA artifact is attached to the GitHub Release. + +| Detail | Value | +| ----------------- | ------------------------------------------ | +| Bundle ID | `com.openknots.okcode.mobile` | +| Marketing version | `0.14.0` | +| Build number | Set from `GITHUB_RUN_NUMBER` at build time | + +## Checksums + +SHA-256 checksums are not committed here; verify downloads via GitHub's release UI or `gh release download` if you use the GitHub CLI. diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 57fd62c3..c5acef43 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -1,6 +1,6 @@ { "name": "@okcode/contracts", - "version": "0.13.0", + "version": "0.14.0", "private": true, "files": [ "dist"