-
Notifications
You must be signed in to change notification settings - Fork 89
docs: move release notes into CHANGELOG.md #70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
85e79fc
b8de3d0
7f8cc4e
792af55
1f9f183
e2fe4cb
233474d
a8f6beb
7c14044
6bc3e04
3441701
42b8acd
35063db
604dc9e
ee75d7f
202b0d6
ad0bf0d
7f43ad3
c176f49
2b44292
756150d
29dadfd
7801de8
95e3ba1
0a28aca
a9f3895
6eb6e38
7531cdd
b28f086
e4b3f1b
8bf5708
3c77731
c2d1856
0a4149b
ca7650b
c4d2f18
d6be7b6
e37ddbd
8e0796d
7f3045c
fd57a33
49b17ca
b510d05
55b98af
6919413
4347d36
9e6e24f
51243ad
e04b0b9
45cfcaa
23a257f
2c0b5aa
2ebe4e1
903e91f
2ff6486
d397025
305097e
591d3e5
14257ca
6212239
a06ddbd
96e7100
e13b403
a0df840
4ffcc95
501ad61
b324ff4
9e7581e
ec4424d
c965eb3
4209145
5a1384c
7eddac3
403f6e9
0116b20
b2627b3
20108cc
546bfab
bd9b6b8
2ea6735
0ae47db
ab006b7
b61c61d
08a9532
f7dc198
a994c0e
9dc6eb6
8be197b
cf31cbf
ccaa390
f0b61c6
4f47c18
1a8ef45
70e923a
23cfa13
d3430a8
94a16d6
20168ad
f1de965
7693a1e
ad91539
b355bb5
122f1ad
b68a92b
61045ea
80d8adf
2451a2d
f7584ff
6f03f7a
c04bc24
a3545ac
1234643
a234373
73db907
6062fa7
138e909
3c29332
59cb688
690b9bf
c779034
4eaf9e9
3a39b25
fa14b6e
d649b86
9256b88
a374236
0cd1a1f
4a1c2c4
b2fc2b4
4f34230
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| { | ||
| "setup-worktree": ["pnpm run setup"] | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,101 @@ | ||
| name: Build and Release | ||
|
|
||
| on: | ||
| pull_request: | ||
| branches: | ||
| - main | ||
| workflow_dispatch: | ||
| inputs: | ||
| release_tag: | ||
| description: "Release tag (e.g. v0.14.5). Leave empty to skip release creation." | ||
| required: false | ||
| default: "" | ||
|
|
||
| jobs: | ||
| build: | ||
| runs-on: macos-latest | ||
| permissions: | ||
| contents: write | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| target: | ||
| - aarch64-apple-darwin | ||
| - x86_64-apple-darwin | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
| lfs: true | ||
| - name: Install Rust toolchain | ||
| uses: actions-rust-lang/setup-rust-toolchain@v1 | ||
| with: | ||
| toolchain: stable | ||
| cache: true | ||
| - name: Install Node.js | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 22 | ||
| - name: Install pnpm | ||
| uses: pnpm/action-setup@v4 | ||
| with: | ||
| version: 9 | ||
| - name: Install dependencies | ||
| run: pnpm install --frozen-lockfile | ||
| - name: Build for ${{ matrix.target }} | ||
| run: | | ||
| rustup target add ${{ matrix.target }} | ||
| pnpm tauri build --target ${{ matrix.target }} --config '{"bundle":{"createUpdaterArtifacts":false}}' | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| - name: Zip .app bundle | ||
| run: | | ||
| cd src-tauri/target/${{ matrix.target }}/release/bundle/macos | ||
| zip -r Chorus.app.zip Chorus.app | ||
| - name: Upload Artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: bundle-${{ matrix.target }} | ||
| path: | | ||
| src-tauri/target/${{ matrix.target }}/release/bundle/macos/Chorus.app.zip | ||
| src-tauri/target/${{ matrix.target }}/release/bundle/dmg/*.dmg | ||
|
|
||
| release: | ||
| needs: build | ||
| if: github.event_name == 'workflow_dispatch' && github.event.inputs.release_tag != '' | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: write | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Download all artifacts | ||
| uses: actions/download-artifact@v4 | ||
| with: | ||
| path: artifacts | ||
| - name: Rename artifacts for clarity | ||
| run: | | ||
| mkdir -p release-assets | ||
| # aarch64 (Apple Silicon) | ||
| cp artifacts/bundle-aarch64-apple-darwin/macos/Chorus.app.zip release-assets/Chorus-aarch64.app.zip | ||
| cp artifacts/bundle-aarch64-apple-darwin/dmg/*.dmg release-assets/ 2>/dev/null && \ | ||
| mv release-assets/Chorus_*.dmg release-assets/Chorus-aarch64.dmg || true | ||
| # x86_64 (Intel) | ||
| cp artifacts/bundle-x86_64-apple-darwin/macos/Chorus.app.zip release-assets/Chorus-x86_64.app.zip | ||
| cp artifacts/bundle-x86_64-apple-darwin/dmg/*.dmg release-assets/ 2>/dev/null && \ | ||
| mv release-assets/Chorus_*.dmg release-assets/Chorus-x86_64.dmg || true | ||
| ls -la release-assets/ | ||
| - name: Create GitHub Release | ||
| uses: softprops/action-gh-release@v2 | ||
| with: | ||
| tag_name: ${{ github.event.inputs.release_tag }} | ||
| name: ${{ github.event.inputs.release_tag }} | ||
| body: | | ||
| ## Chorus ${{ github.event.inputs.release_tag }} | ||
|
|
||
| ### Downloads | ||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. | ||
| files: release-assets/* | ||
| draft: false | ||
| prerelease: false | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,4 @@ | ||
| src-tauri/gen | ||
| pnpm-lock.yaml | ||
| .github | ||
| .github | ||
| .context |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| # Building Chorus | ||
|
|
||
| Chorus is built using Tauri, React, TypeScript, and Rust. To build the application yourself, follow these steps. | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| - [Node.js](https://nodejs.org/) (version >= 22.0.0) | ||
| - [pnpm](https://pnpm.io/) | ||
| - [Rust](https://www.rust-lang.org/) and Cargo | ||
| - [Git LFS](https://git-lfs.com/) | ||
|
|
||
| ## Installation | ||
|
|
||
| 1. Clone the repository and navigate to the directory. | ||
| 2. Initialize Git LFS: | ||
|
|
||
| ```bash | ||
| git lfs install --force | ||
| git lfs pull | ||
| ``` | ||
|
|
||
| 3. Install dependencies: | ||
|
|
||
| ```bash | ||
| pnpm install | ||
| ``` | ||
|
|
||
| ## Building the App | ||
|
|
||
| To build the production app for your platform, run: | ||
|
|
||
| ```bash | ||
| pnpm tauri build | ||
| ``` | ||
|
|
||
| This will generate the application bundle (e.g., `.app` for macOS) in `src-tauri/target/release/bundle/`. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,197 @@ | ||
| # Changelog | ||
|
|
||
| ## v0.14.15 | ||
|
|
||
| Released 2026-04-09 | ||
|
|
||
| ### Features | ||
|
|
||
| - Per-tool and per-project YOLO mode for granular auto-accept permissions | ||
| - OpenRouter actual model attribution and cost tracking in streaming responses | ||
| - Multiple sub-provider filter selection in model search | ||
| - Collapsible chat input for long text | ||
|
|
||
| ### Improvements | ||
|
|
||
| - Improved fuzzy search with scored substring matching and provider filtering | ||
| - Better autorouter/freerouter labels and free-tier display names | ||
| - Selected provider chips stay visible during search | ||
|
|
||
| ### Fixes | ||
|
|
||
| - Fix YOLO deny precedence and memoize permission tool list | ||
| - Fix MCP terminal startup | ||
| - Fix model_config UUID passed when replying to single model | ||
| - Migration 145 legacy compatibility for dev instances | ||
|
|
||
| ## v0.14.14 | ||
|
|
||
| Released 2026-04-07 | ||
|
|
||
| - **Fix profile model selection fallback** - profile model selection now falls back correctly instead of leaving compare state in a bad state. | ||
| - **Fix cmd+number keyboard navigation** - selected blocks and columns now scroll into view when using cmd+number. | ||
| - **Fix cmd+number toggle-off behavior** - reselecting the same block with cmd+number now deselects it as expected. | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. Alternatively, run: | ||
| > | ||
| > ``` | ||
| > xattr -d com.apple.quarantine /Applications/Chorus.app | ||
| > ``` | ||
|
|
||
| ## 0.14.6-PRE (pre-release) | ||
|
|
||
| Released 2026-04-08 | ||
|
|
||
| This is a testing build which should have the same feature-set as v0.14.14. Intended use is for proof-of-concept for merging with base fork meltylabs/chorus | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. Alternatively, run: | ||
| > | ||
| > ``` | ||
| > xattr -d com.apple.quarantine /Applications/Chorus.app | ||
| > ``` | ||
|
|
||
| ## v0.14.13 | ||
|
|
||
| Released 2026-03-31 | ||
|
|
||
| - **Deselect model block when clicking outside or re-clicking** — exit the model block reorder mode by clicking anywhere outside or re-clicking the selected block | ||
| - **Fix sidepane blur on reply messages** — reply messages in the sidepane no longer have the blur effect incorrectly applied | ||
| - **Fix cmd+number keybindings** — cmd+1-8 now works for both tools and compare blocks; cmd+1 always selects the leftmost column; cmd/ctrl+shift+space scrolls the selected column into view | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. Alternatively, run: | ||
| > | ||
| > ``` | ||
| > xattr -d com.apple.quarantine /Applications/Chorus.app | ||
| > ``` | ||
|
|
||
| ## v0.14.12 | ||
|
|
||
| Released 2026-03-31 | ||
|
|
||
| ### New Features | ||
|
|
||
| - **Defaults settings tab** — New Settings → Defaults section consolidates new-chat preferences: default prompt profile, default chat models (multi-model), fallback model (with optional model profile constraint), and default ambient chat model. Replaces the former separate Ambient Chat tab controls. | ||
|
|
||
| - **Per-chat model selection persistence** — Selected models are now saved per chat. Switching chats and returning preserves your model selection. New chats are initialized from your Default Chat Models setting, falling back to the ambient compare list. | ||
|
|
||
| - **Per-project default prompt profile** — Each project can now have its own default prompt profile (set in the project view), which overrides the global default when creating new chats in that project. | ||
|
|
||
| - **Fresh-install model preferences** — On first launch, Gemini 2.5 Flash Lite is seeded as the default ambient, fallback, and chat model. | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** \`Chorus-aarch64.app.zip\` or \`Chorus-aarch64.dmg\` | ||
| - **Intel:** \`Chorus-x86_64.app.zip\` or \`Chorus-x86_64.dmg\` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. | ||
|
|
||
| ## v0.14.11 | ||
|
|
||
| Released 2026-03-31 | ||
|
|
||
| - Initial implementation of reorder chat functionality | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. | ||
|
|
||
| ## v0.14.10 | ||
|
|
||
| Released 2026-03-30 | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. | ||
|
|
||
| ## v0.14.9 | ||
|
|
||
| Released 2026-03-30 | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. | ||
|
|
||
| ## v0.14.8 | ||
|
|
||
| Released 2026-03-30 | ||
|
|
||
| - **Multi-Model Column Minimization**: Added a minimize button to each model column in the multi-model view to help manage your workspace. | ||
|
|
||
| - **Automated Minimization**: Models that fail to return a response after stopping will now automatically minimize to reduce clutter. | ||
|
|
||
| - **Sidebar Integration**: Minimized models are easily accessible in the sidebar above Projects, where they can be clicked to quickly restore the column. | ||
|
|
||
| - **Smart Message Sending**: Minimized models are automatically excluded from new message sends until you expand them again. | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. | ||
| > Alternatively, remove the quarantine flag via Terminal: `xattr -d com.apple.quarantine Chorus.app` | ||
|
|
||
| ## v0.14.7 | ||
|
|
||
| Released 2026-03-29 | ||
|
|
||
| - Add support for ⌘ Command + ⇧ Shift + A to select all models in a profile | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. | ||
|
|
||
| ## v0.14.6 | ||
|
|
||
| Released 2026-03-29 | ||
|
|
||
| - Update Ambient chat model to use Gemini 2.5 flash | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. | ||
|
|
||
| ## v0.14.5 | ||
|
|
||
| Released 2026-03-29 | ||
|
|
||
| - Added profiles for favorite models in the chat window | ||
| - Dynamically fetch and select models from providers | ||
| - Prompt profiles | ||
|
|
||
| ### Downloads | ||
|
|
||
| - **Apple Silicon (M1/M2/M3):** `Chorus-aarch64.app.zip` or `Chorus-aarch64.dmg` | ||
| - **Intel:** `Chorus-x86_64.app.zip` or `Chorus-x86_64.dmg` | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -10,6 +10,21 @@ | |
| <img src="https://github.com/user-attachments/assets/771262eb-5a0e-40cb-b1a5-9df6b903c626" alt="Chorus screenshot" /> | ||
| </p> | ||
|
|
||
| # Fork changes | ||
|
|
||
| - Added profiles for favorite models in the chat window | ||
| - Dynamically fetch and select models from providers | ||
| - Prompt profiles: Choose your preferred chat persona | ||
|
Comment on lines
+13
to
+17
|
||
| - Minimize model columns in multi-model chat with sidebar management and auto-minimize on empty responses | ||
| - Move model responses around in their row, changing the order they are displayed to you in | ||
| - Ability to customize default models (multi-model chat and ambient chat) | ||
| - Set app and project specific default prompt profiles | ||
|
|
||
| See [CHANGELOG.md](CHANGELOG.md) for the full release history and release-by-release changes for this fork. | ||
|
|
||
| > **Note:** This app is not code-signed. On first launch, right-click the app and select "Open" to bypass Gatekeeper. | ||
| > Alternatively, remove the quarantine flag via Terminal: `xattr -d com.apple.quarantine Chorus.app` | ||
|
|
||
| # Getting Started | ||
|
|
||
| You will need: | ||
|
|
@@ -29,6 +44,10 @@ pnpm run setup # This is also our Conductor setup script | |
| pnpm run dev # This is also our Conductor run script | ||
| ``` | ||
|
|
||
| # Building Chorus | ||
|
|
||
| To build Chorus from source, please refer to the [BUILD.md](BUILD.md) file. | ||
|
|
||
| # Nightly Build | ||
|
|
||
| You can download the [nightly build here](https://cdn.crabnebula.app/download/chorus/chorus/latest/platform/dmg-aarch64?channel=qa). Every push to main triggers a new build. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The workflow grants
contents: writeon thepull_requesttrigger. Even if GitHub restrictsGITHUB_TOKENon forked PRs, this is a higher-risk default for PR builds. Consider least-privilege permissions for PR runs and limiting write permissions to the release workflow/job.