Browse Source

chore: prepare companion 0.1.2 release

Alvin Unreal 1 month ago
parent
commit
eee0e73fc4

+ 32 - 1
.github/workflows/companion-release.yml

@@ -9,7 +9,7 @@ on:
         type: string
         type: string
       targets:
       targets:
         description: >-
         description: >-
-          Comma-separated targets to build: macos-arm64,macos-x64,linux-x64,windows-x64
+          Comma-separated targets to build: macos-arm64,macos-x64,linux-x64,linux-arm64,windows-x64
         required: true
         required: true
         default: macos-arm64
         default: macos-arm64
         type: string
         type: string
@@ -100,6 +100,36 @@ jobs:
           name: companion-linux-x64
           name: companion-linux-x64
           path: '*.tar.gz'
           path: '*.tar.gz'
 
 
+  linux-arm64:
+    name: Linux arm64
+    if: contains(github.event.inputs.targets, 'linux-arm64')
+    runs-on: ubuntu-24.04-arm
+    steps:
+      - uses: actions/checkout@v4
+      - uses: dtolnay/rust-toolchain@stable
+        with:
+          targets: aarch64-unknown-linux-gnu
+      - name: Install system dependencies
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev
+      - name: Build companion
+        working-directory: companion
+        run: cargo build --release --target aarch64-unknown-linux-gnu
+      - name: Package companion
+        run: |
+          set -euo pipefail
+          version='${{ github.event.inputs.version }}'
+          target='aarch64-unknown-linux-gnu'
+          name="oh-my-opencode-slim-companion-v${version}-${target}"
+          mkdir -p dist
+          cp "companion/target/${target}/release/oh-my-opencode-slim-companion" dist/oh-my-opencode-slim-companion
+          tar -C dist -czf "${name}.tar.gz" oh-my-opencode-slim-companion
+      - uses: actions/upload-artifact@v4
+        with:
+          name: companion-linux-arm64
+          path: '*.tar.gz'
+
   windows-x64:
   windows-x64:
     name: Windows x64
     name: Windows x64
     if: contains(github.event.inputs.targets, 'windows-x64')
     if: contains(github.event.inputs.targets, 'windows-x64')
@@ -132,6 +162,7 @@ jobs:
       - macos-arm64
       - macos-arm64
       - macos-x64
       - macos-x64
       - linux-x64
       - linux-x64
+      - linux-arm64
       - windows-x64
       - windows-x64
     if: always() && !cancelled() && !failure()
     if: always() && !cancelled() && !failure()
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest

+ 1 - 1
companion/Cargo.lock

@@ -2319,7 +2319,7 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "oh-my-opencode-slim-companion"
 name = "oh-my-opencode-slim-companion"
-version = "0.1.1"
+version = "0.1.2"
 dependencies = [
 dependencies = [
  "dirs",
  "dirs",
  "eframe",
  "eframe",

+ 1 - 1
companion/Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 [package]
 name = "oh-my-opencode-slim-companion"
 name = "oh-my-opencode-slim-companion"
-version = "0.1.1"
+version = "0.1.2"
 edition = "2021"
 edition = "2021"
 description = "Desktop companion for oh-my-opencode-slim — shows active agent GIFs per session"
 description = "Desktop companion for oh-my-opencode-slim — shows active agent GIFs per session"
 
 

+ 15 - 14
docs/companion.md

@@ -53,7 +53,7 @@ Pass `--companion=no` to skip the native binary and omit the config block.
 
 
 ## niri support status
 ## niri support status
 
 
-The native `companion-v0.1.1` binary now works on niri and exposes a stable
+The native `companion-v0.1.2` binary now works on niri and exposes a stable
 Wayland app-id/title: `oh-my-opencode-slim-companion`.
 Wayland app-id/title: `oh-my-opencode-slim-companion`.
 
 
 niri users who want the Companion to behave like an overlay should add a window
 niri users who want the Companion to behave like an overlay should add a window
@@ -105,7 +105,7 @@ For the desktop companion app, the release workflow follows the V2 distribution
 plan:
 plan:
 
 
 1. **GitHub Release Assets**: companion binaries are uploaded to the
 1. **GitHub Release Assets**: companion binaries are uploaded to the
-   `companion-v0.1.1` GitHub release.
+   `companion-v0.1.2` GitHub release.
 2. **Separate Companion Versioning**: the companion uses its own version so the
 2. **Separate Companion Versioning**: the companion uses its own version so the
    plugin can ship beta updates without rebuilding native binaries every time.
    plugin can ship beta updates without rebuilding native binaries every time.
 3. **OS/Arch Detection**: `--companion=yes` selects the archive for the current
 3. **OS/Arch Detection**: `--companion=yes` selects the archive for the current
@@ -116,11 +116,11 @@ plan:
 Current release assets are named:
 Current release assets are named:
 
 
 ```text
 ```text
-oh-my-opencode-slim-companion-v0.1.1-aarch64-apple-darwin.tar.gz
-oh-my-opencode-slim-companion-v0.1.1-x86_64-apple-darwin.tar.gz
-oh-my-opencode-slim-companion-v0.1.1-x86_64-unknown-linux-gnu.tar.gz
-oh-my-opencode-slim-companion-v0.1.1-aarch64-unknown-linux-gnu.tar.gz
-oh-my-opencode-slim-companion-v0.1.1-x86_64-pc-windows-msvc.zip
+oh-my-opencode-slim-companion-v0.1.2-aarch64-apple-darwin.tar.gz
+oh-my-opencode-slim-companion-v0.1.2-x86_64-apple-darwin.tar.gz
+oh-my-opencode-slim-companion-v0.1.2-x86_64-unknown-linux-gnu.tar.gz
+oh-my-opencode-slim-companion-v0.1.2-aarch64-unknown-linux-gnu.tar.gz
+oh-my-opencode-slim-companion-v0.1.2-x86_64-pc-windows-msvc.zip
 ```
 ```
 
 
 Supported installer targets:
 Supported installer targets:
@@ -144,13 +144,13 @@ protocol expected by the plugin changes.
 The first companion release is:
 The first companion release is:
 
 
 ```text
 ```text
-0.1.1
+0.1.2
 ```
 ```
 
 
 The matching GitHub release tag is:
 The matching GitHub release tag is:
 
 
 ```text
 ```text
-companion-v0.1.1
+companion-v0.1.2
 ```
 ```
 
 
 The installer currently downloads from that tag.
 The installer currently downloads from that tag.
@@ -162,7 +162,7 @@ you are testing the release path:
 
 
 ```bash
 ```bash
 gh workflow run companion-release.yml \
 gh workflow run companion-release.yml \
-  -f version=0.1.1 \
+  -f version=0.1.2 \
   -f targets=macos-arm64
   -f targets=macos-arm64
 ```
 ```
 
 
@@ -170,8 +170,8 @@ Build multiple targets by passing a comma-separated list:
 
 
 ```bash
 ```bash
 gh workflow run companion-release.yml \
 gh workflow run companion-release.yml \
-  -f version=0.1.1 \
-  -f targets=macos-arm64,macos-x64,linux-x64,windows-x64
+  -f version=0.1.2 \
+  -f targets=macos-arm64,macos-x64,linux-x64,linux-arm64,windows-x64
 ```
 ```
 
 
 Supported workflow target names:
 Supported workflow target names:
@@ -180,6 +180,7 @@ Supported workflow target names:
 macos-arm64
 macos-arm64
 macos-x64
 macos-x64
 linux-x64
 linux-x64
+linux-arm64
 windows-x64
 windows-x64
 ```
 ```
 
 
@@ -191,7 +192,7 @@ the selected archives.
 After the workflow finishes:
 After the workflow finishes:
 
 
 ```bash
 ```bash
-gh release view companion-v0.1.1
+gh release view companion-v0.1.2
 ```
 ```
 
 
 Confirm the release contains the archive names expected by the installer for the
 Confirm the release contains the archive names expected by the installer for the
@@ -206,7 +207,7 @@ bunx oh-my-opencode-slim@beta install --companion=yes
 ```
 ```
 
 
 The installer detects the user's OS/architecture, downloads the matching archive
 The installer detects the user's OS/architecture, downloads the matching archive
-from `companion-v0.1.1`, installs it to the runtime binary path, and writes the
+from `companion-v0.1.2`, installs it to the runtime binary path, and writes the
 companion config block. If the companion install fails, the core plugin install
 companion config block. If the companion install fails, the core plugin install
 continues without enabling Companion.
 continues without enabling Companion.
 
 

+ 1 - 1
docs/configuration.md

@@ -139,7 +139,7 @@ Presets can also be switched at runtime without restarting using the `/preset` c
 | `companion.position` | string | `"bottom-right"` | The initial corner position of the companion window: `bottom-right`, `bottom-left`, `top-right`, or `top-left` |
 | `companion.position` | string | `"bottom-right"` | The initial corner position of the companion window: `bottom-right`, `bottom-left`, `top-right`, or `top-left` |
 | `companion.size` | string | `"medium"` | The default size preset of the companion window: `small` (80px), `medium` (120px), or `large` (160px) |
 | `companion.size` | string | `"medium"` | The default size preset of the companion window: `small` (80px), `medium` (120px), or `large` (160px) |
 
 
-> **niri note:** `companion-v0.1.1` is the fixed native companion release.
+> **niri note:** `companion-v0.1.2` is the fixed native companion release.
 > To make it open as a bottom-right overlay, add a niri rule matching its stable
 > To make it open as a bottom-right overlay, add a niri rule matching its stable
 > `app-id`/title (`oh-my-opencode-slim-companion`), for example:
 > `app-id`/title (`oh-my-opencode-slim-companion`), for example:
 >
 >

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "oh-my-opencode-slim",
   "name": "oh-my-opencode-slim",
-  "version": "2.0.1",
+  "version": "2.0.2",
   "description": "Lightweight agent orchestration plugin for OpenCode - a slimmed-down fork of oh-my-opencode",
   "description": "Lightweight agent orchestration plugin for OpenCode - a slimmed-down fork of oh-my-opencode",
   "main": "dist/index.js",
   "main": "dist/index.js",
   "types": "dist/index.d.ts",
   "types": "dist/index.d.ts",

+ 2 - 2
src/cli/companion.ts

@@ -12,8 +12,8 @@ import { homedir, tmpdir } from 'node:os';
 import * as path from 'node:path';
 import * as path from 'node:path';
 import type { ConfigMergeResult, InstallConfig } from './types';
 import type { ConfigMergeResult, InstallConfig } from './types';
 
 
-const COMPANION_VERSION = '0.1.1';
-const COMPANION_TAG = 'companion-v0.1.1';
+const COMPANION_VERSION = '0.1.2';
+const COMPANION_TAG = 'companion-v0.1.2';
 const GITHUB_REPO = 'alvinunreal/oh-my-opencode-slim';
 const GITHUB_REPO = 'alvinunreal/oh-my-opencode-slim';
 
 
 export function getCompanionTarget(): string | null {
 export function getCompanionTarget(): string | null {