Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
f1f9663
0.0.130-rc.1
eugenehp Apr 29, 2026
efa133e
fix win/linux
eugenehp Apr 29, 2026
058969d
0.0.130-rc.2
eugenehp Apr 29, 2026
b6df88f
umap e2e
eugenehp Apr 29, 2026
d1dca16
fixed issues with the metrics, keychain access (3 -> 1 + on demand), …
eugenehp Apr 29, 2026
4aeb3c5
0.0.130-rc.3
eugenehp Apr 29, 2026
e1af3d4
0.0.130-rc.4
eugenehp Apr 29, 2026
07cf085
fix vulkan cache on windows ci
eugenehp Apr 29, 2026
f90fb54
0.0.130-rc.5
eugenehp Apr 30, 2026
2b3f3d5
0.0.130-rc.6
eugenehp Apr 30, 2026
567be83
Replace per-app AppleScript window tracking (which triggered a macOS …
eugenehp May 2, 2026
bf9c3de
0.0.130-rc.7
eugenehp May 2, 2026
c66b436
cargo deny
eugenehp May 2, 2026
ebd6c51
updated llm catalog
eugenehp May 2, 2026
92b3947
fix tty
eugenehp May 2, 2026
a750034
safety checks
eugenehp May 2, 2026
4c7a884
fix windows CI
eugenehp May 2, 2026
811eec0
fix(cargo): remove obsolete muda and phf_generator patches
eugenehp May 2, 2026
9e2f7a5
fixed cargo clippy
eugenehp May 2, 2026
8705b8e
0.0.130-rc.8
eugenehp May 2, 2026
2c556cc
0.0.130-rc.9
eugenehp May 2, 2026
421639a
fix windows ci
eugenehp May 2, 2026
2f44fb2
0.0.130-rc.10
eugenehp May 2, 2026
3000181
1. GPU f16 SHADER_F16 panic → `catch_unwind` in worker.rs
eugenehp May 2, 2026
1e00f14
log_enabled_by_default
eugenehp May 2, 2026
45094e0
0.0.130-rc.11
eugenehp May 2, 2026
9bc9d74
auto-update + update RC settings
eugenehp May 3, 2026
7cb2562
1. Settings tab font-size lint rule (scripts/check-settings-font-size…
eugenehp May 3, 2026
dcba6ea
translations
eugenehp May 3, 2026
0200078
0.0.130-rc.12
eugenehp May 3, 2026
c1516a5
deps(npm): bump the npm-all group with 10 updates
dependabot[bot] May 4, 2026
8a21ab0
0.0.130-rc.13
eugenehp May 4, 2026
9a2968f
fix max buffer
eugenehp May 4, 2026
e789b4e
1 hour roll over in csv
eugenehp May 4, 2026
02ca3de
roll csv/parquet
eugenehp May 5, 2026
034626f
echt
eugenehp May 5, 2026
31f100f
added drop tests
eugenehp May 5, 2026
1a38d20
24 hours test
eugenehp May 5, 2026
7affc5d
i18n
eugenehp May 5, 2026
bfa0db2
better tests
eugenehp May 5, 2026
24d819e
0.0.130-rc.14
eugenehp May 5, 2026
9310923
normalized fonts
eugenehp May 5, 2026
ec88a9e
0.0.130-rc.15
eugenehp May 5, 2026
ebc183d
0.0.130-rc.16
eugenehp May 5, 2026
0a240e6
address ZUNA GPU f16 fallback failure and embedding search timestamp …
eugenehp May 5, 2026
a47e1ea
0.0.130-rc.17
eugenehp May 5, 2026
be8208d
docker + skill-tty
eugenehp May 6, 2026
002eee3
biome
eugenehp May 6, 2026
da2dadf
clippy
eugenehp May 6, 2026
99ae24e
clipy
eugenehp May 6, 2026
8ca213b
0.0.130-rc.18
eugenehp May 6, 2026
110cf6a
fix tty
eugenehp May 6, 2026
f7b8aa8
cargo deny
eugenehp May 6, 2026
72d82d6
0.0.130-rc.19
eugenehp May 6, 2026
aaa7a63
fix --deep signature
eugenehp May 7, 2026
2679287
0.0.130-rc.20
eugenehp May 7, 2026
d93429a
0.0.130-rc.21
eugenehp May 8, 2026
35d6790
updated iroh
eugenehp May 8, 2026
4570bf4
0.0.130-rc.22
eugenehp May 8, 2026
b4902d5
upgraded llama.cpp and added mtp
eugenehp May 8, 2026
f92f477
0.0.130-rc.23
eugenehp May 9, 2026
94eebca
fixed biome
eugenehp May 9, 2026
a515659
0.0.130-rc.24
eugenehp May 9, 2026
75436db
fixed sscache + cmake
eugenehp May 10, 2026
25892ab
0.0.130-rc.25
eugenehp May 10, 2026
52d14ac
updated llama-cpp-rs
eugenehp May 16, 2026
61a067e
deps
eugenehp May 16, 2026
2446df3
0.0.130-rc.26
eugenehp May 16, 2026
68a817b
fixed llama
eugenehp May 17, 2026
835604f
0.0.130-rc.27
eugenehp May 17, 2026
6fa32f1
0.0.130-rc.28
eugenehp May 19, 2026
be072e5
fixed i18n
eugenehp May 19, 2026
a0efb0f
0.0.130-rc.29
eugenehp May 19, 2026
dc3cb9a
turboquant index
eugenehp May 19, 2026
228c3f9
0.0.130-rc.30
eugenehp May 19, 2026
abba096
llama-cpp-rs@0.3.0
eugenehp May 20, 2026
ae2a749
0.0.130-rc.31
eugenehp May 20, 2026
b4cbe53
fix: sync Cargo.lock for CI --locked builds
eugenehp May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 16 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
# Moved from src-tauri/.cargo/config.toml to the workspace root so that all
# workspace members share the same build configuration.
#
# RLX (optional): Cargo resolves `rlx` via ../rlx/rlx (workspace.dependencies).
# CI — .github/actions/checkout-rlx clones https://github.com/MIT-RLX/rlx.git
# Local — `npm run setup:rlx` or direnv (.envrc) symlinks ../rlx -> RLX_ROOT
# (default /Users/Shared/rlx; override in gitignored rlx.path).
#
# `relative = true` paths are resolved relative to this file's parent
# directory (the project root).

Expand Down Expand Up @@ -79,6 +84,17 @@ target-dir = "src-tauri/target"
# On non-Windows platforms cmake ignores this variable.
CMAKE_MSVC_RUNTIME_LIBRARY = "MultiThreadedDLL"

# ── macOS: cmake / sccache paths ──────────────────────────────────────────────
# Homebrew cmake/sccache are not on the default PATH when cargo invokes build
# scripts. The cmake-0.1.x crate respects the CMAKE env var as the binary path.
#
# These are NOT set here because cargo's [env] table is unconditional: a value
# like "/opt/homebrew/bin/cmake" leaks to Windows / Linux runners where the
# path doesn't exist, causing cmake-rs to panic with "is `cmake` not installed?"
# (os error 3 / ENOENT). Instead they are exported only on macOS by:
# - .envrc (for `cargo build` via direnv)
# - scripts/tauri-build.js (for `npm run tauri:build`)

# ── macOS deployment target ───────────────────────────────────────────────────
#
# 14.0 satisfies both:
Expand Down
36 changes: 36 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Heavy artifacts that should never be sent to the Docker build context.
# Without this, `docker build` for Dockerfile.upgrade-test transfers tens of
# GB of local target/ output and chokes on I/O.

# Rust build artifacts
target/
src-tauri/target/
crates/*/target/
**/*.rlib

# Node / frontend
node_modules/
.svelte-kit/
build/
.vite/

# IDE / OS
.git/
.idea/
.vscode/
.DS_Store

# Logs / test results
test-results/
playwright-report/
logs/
*.log
*.log.zst

# Local data
.skill/
data/
fixtures/

# Cargo registry should come from the volume mount, not the context
.cargo/
18 changes: 18 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,28 @@ if [ "$(uname)" = "Darwin" ]; then
if [ -x "$GAR" ]; then
export AR="$GAR"
fi

# Homebrew cmake/sccache are not on the default PATH when cargo invokes
# build scripts. The cmake-0.1.x crate respects CMAKE as the binary path.
# Kept out of .cargo/config.toml because [env] is unconditional and would
# leak these macOS paths to Windows / Linux runners (cmake-rs panics with
# "is `cmake` not installed?" / os error 3).
if [ -z "${CMAKE:-}" ] && [ -x "/opt/homebrew/bin/cmake" ]; then
export CMAKE="/opt/homebrew/bin/cmake"
fi
if [ -z "${SCCACHE_PATH:-}" ] && [ -x "/opt/homebrew/bin/sccache" ]; then
export SCCACHE_PATH="/opt/homebrew/bin/sccache"
fi
fi

# Use prebuilt llama.cpp if available (skip cmake rebuild).
# Run `npm run setup:llama-prebuilt` to download.
if [ -d ".llama-prebuilt/lib" ]; then
export LLAMA_PREBUILT_DIR="$(pwd)/.llama-prebuilt"
fi

# Sibling RLX checkout for optional llm-rlx / text-embeddings-rlx features.
# Default: symlink ../rlx -> /Users/Shared/rlx (override via rlx.path or RLX_ROOT).
if [ -f "scripts/ensure-rlx.sh" ]; then
bash scripts/ensure-rlx.sh
fi
18 changes: 16 additions & 2 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,22 @@ fi
# Run cargo fmt on staged Rust files
if echo "$STAGED_FILES" | grep -q '\.rs$'; then
echo "🦀 Running cargo fmt…"
cargo fmt
git add $( echo "$STAGED_FILES" | grep '\.rs$' )
# GUI git clients (editors, Tower, etc.) launch hooks in a non-interactive
# shell that doesn't source ~/.zshrc, so rustup's ~/.cargo/bin is missing
# from PATH. Source the env file rustup ships, or fall back to the default
# install path.
if [ -f "$HOME/.cargo/env" ]; then
. "$HOME/.cargo/env"
elif [ -d "$HOME/.cargo/bin" ]; then
export PATH="$HOME/.cargo/bin:$PATH"
fi
if ! command -v cargo >/dev/null 2>&1; then
echo "⚠️ cargo not found on PATH; skipping cargo fmt." >&2
echo " Install rustup (https://rustup.rs) or add ~/.cargo/bin to your shell's PATH." >&2
else
cargo fmt
git add $( echo "$STAGED_FILES" | grep '\.rs$' )
fi
fi

echo "✅ Pre-commit checks passed (basic validation only)."
Expand Down
21 changes: 21 additions & 0 deletions .github/actions/checkout-rlx/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Checkout RLX
description: >-
Clone https://github.com/MIT-RLX/rlx next to the skill repo so path
dependencies (../../../rlx/rlx) resolve in CI.

inputs:
ref:
description: Branch, tag, or SHA to checkout
required: false
default: main

runs:
using: composite
steps:
- name: Clone MIT-RLX/rlx
shell: bash
env:
RLX_REF: ${{ inputs.ref }}
RLX_URL: https://github.com/MIT-RLX/rlx.git
GITHUB_ACTIONS: "true"
run: bash scripts/ensure-rlx.sh
22 changes: 22 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ jobs:
- name: Fetch skills submodule
run: git submodule update --init --depth=1 skills

- name: Checkout RLX
uses: ./.github/actions/checkout-rlx

- name: Setup Rust bootstrap (Linux)
uses: ./.github/actions/setup-rust-bootstrap-linux

Expand Down Expand Up @@ -470,6 +473,9 @@ jobs:
with:
fetch-depth: 1

- name: Checkout RLX
uses: ./.github/actions/checkout-rlx

- name: Validate Windows app manifest
shell: bash
run: node scripts/check-windows-manifest.mjs src-tauri/manifest.xml
Expand Down Expand Up @@ -610,6 +616,10 @@ jobs:
# only happens once per change to the install script. On cache hit the
# install script detects the SDK via filesystem and skips the download.
- name: Cache Vulkan SDK
# Don't fail the job on transient cache-service errors (actions/cache@v5
# occasionally returns "failure" instead of "miss"). The install script
# below handles a missing SDK by downloading it on the spot.
continue-on-error: true
uses: actions/cache@v5
with:
path: C:\VulkanSDK
Expand Down Expand Up @@ -742,6 +752,9 @@ jobs:
with:
fetch-depth: 1

- name: Checkout RLX
uses: ./.github/actions/checkout-rlx

- name: Setup Rust bootstrap (Linux)
uses: ./.github/actions/setup-rust-bootstrap-linux

Expand Down Expand Up @@ -851,6 +864,9 @@ jobs:
with:
fetch-depth: 1

- name: Checkout RLX
uses: ./.github/actions/checkout-rlx

- name: Setup Rust bootstrap (Linux)
uses: ./.github/actions/setup-rust-bootstrap-linux

Expand Down Expand Up @@ -936,6 +952,9 @@ jobs:
- name: Fetch skills submodule
run: git submodule update --init --depth=1 skills

- name: Checkout RLX
uses: ./.github/actions/checkout-rlx

- name: Free disk space
run: node scripts/ci.mjs free-disk-space

Expand Down Expand Up @@ -1022,6 +1041,9 @@ jobs:
with:
fetch-depth: 1

- name: Checkout RLX
uses: ./.github/actions/checkout-rlx

- name: Setup Node.js
uses: actions/setup-node@v6
with:
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/pr-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,9 @@ jobs:
ref: ${{ steps.meta.outputs.ref }}
fetch-depth: 0

- name: Checkout RLX
uses: ./.github/actions/checkout-rlx

# ── Build label (version string used in artifact names + PR comment) ────
- name: Compute build label
id: label
Expand Down
12 changes: 9 additions & 3 deletions .github/workflows/release-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ jobs:
with:
fetch-depth: 0 # full history for git tag --format and changelog generation

- name: Checkout RLX
uses: ./.github/actions/checkout-rlx

# ── Verify tag matches tauri.conf.json version ────────────────────────────
- name: Resolve version
id: version_meta
Expand Down Expand Up @@ -164,12 +167,15 @@ jobs:
shell: bash
run: |
set -euo pipefail
# Build both in one invocation for consistent feature unification
# Build both in one invocation for consistent feature unification.
# NOTE: `|| return $?` is required — `set -e` is inhibited inside a
# function called via `if ! cmd`, so a failing cargo build would
# silently fall through and run_cmd would still return 0.
run_cmd() {
# Build daemon first — its default features compile llama-cpp-sys-4
# with mtmd+vulkan+q1 via skill-llm's target-specific deps.
cargo build -p skill-daemon --release --locked --target x86_64-unknown-linux-gnu --timings
cargo build -p skill --release --locked --target x86_64-unknown-linux-gnu --features custom-protocol --timings
cargo build -p skill-daemon --release --locked --target x86_64-unknown-linux-gnu --timings || return $?
cargo build -p skill --release --locked --target x86_64-unknown-linux-gnu --features custom-protocol --timings || return $?
}
if ! run_cmd; then
if [[ -n "${LLAMA_PREBUILT_DIR:-}" ]]; then
Expand Down
44 changes: 27 additions & 17 deletions .github/workflows/release-mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ jobs:
with:
fetch-depth: 0 # full history so git tag --format can read the annotation

- name: Checkout RLX
uses: ./.github/actions/checkout-rlx

# ── Verify tag matches tauri.conf.json version ────────────────────────────
# Catches "forgot to bump the version" before wasting 20 min on a build.
- name: Resolve version
Expand Down Expand Up @@ -174,32 +177,39 @@ jobs:
# feature unification produces one consistent llama-cpp-sys-4 build
# (with mtmd + metal + q1). Two separate invocations can cause cargo
# to reuse a cached llama-cpp-sys-4 static lib that lacks mtmd symbols.
# NOTE: `|| return $?` after each cargo invocation is required.
# `set -e` is inhibited inside a function called via `if ! cmd` /
# captured exit code, so without explicit `|| return` a failing
# cargo build would silently continue and run_cmd would still return 0.
run_cmd() {
# Build daemon first — its default features (llm + embed-exg) compile
# llama-cpp-sys-4 with mtmd+metal+q1 via skill-llm's target-specific deps.
# Building skill second reuses the cached native libs.
cargo build -p skill-daemon --release --locked --target aarch64-apple-darwin --timings
cargo build -p skill --release --locked --target aarch64-apple-darwin --features custom-protocol --timings

cargo build -p skill-daemon --release --locked --target aarch64-apple-darwin --timings || return $?
cargo build -p skill-tty --release --locked --target aarch64-apple-darwin --timings || return $?
cargo build -p skill --release --locked --target aarch64-apple-darwin --features custom-protocol --timings || return $?

# Fix @rpath for skill-daemon immediately after build
# llama-cpp-4 builds .dylib files by default; we need to embed them
# in the .app bundle and update the binary's search paths
DAEMON_BIN="src-tauri/target/aarch64-apple-darwin/release/skill-daemon"
if [ -f "$DAEMON_BIN" ]; then
echo "Fixing @rpath for skill-daemon…"

# Create Frameworks directory if it doesn't exist
mkdir -p "src-tauri/target/aarch64-apple-darwin/release/Frameworks"

# Copy any .dylib files that the daemon depends on
for LIB in libggml-base.0.dylib libllama.1.dylib; do
if [ -f "src-tauri/target/aarch64-apple-darwin/release/$LIB" ]; then
cp "src-tauri/target/aarch64-apple-darwin/release/$LIB" \
"src-tauri/target/aarch64-apple-darwin/release/Frameworks/"
install_name_tool -change @rpath/$LIB @executable_path/../Frameworks/$LIB "$DAEMON_BIN"
fi
done
if [ ! -f "$DAEMON_BIN" ]; then
echo "::error::Daemon binary missing after successful cargo build: $DAEMON_BIN"
return 1
fi
echo "Fixing @rpath for skill-daemon…"

# Create Frameworks directory if it doesn't exist
mkdir -p "src-tauri/target/aarch64-apple-darwin/release/Frameworks"

# Copy any .dylib files that the daemon depends on
for LIB in libggml-base.0.dylib libllama.1.dylib; do
if [ -f "src-tauri/target/aarch64-apple-darwin/release/$LIB" ]; then
cp "src-tauri/target/aarch64-apple-darwin/release/$LIB" \
"src-tauri/target/aarch64-apple-darwin/release/Frameworks/" || return $?
install_name_tool -change @rpath/$LIB @executable_path/../Frameworks/$LIB "$DAEMON_BIN" || return $?
fi
done
}
if ! run_cmd; then
if [[ -n "${LLAMA_PREBUILT_DIR:-}" ]]; then
Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/release-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ jobs:
with:
fetch-depth: 0

- name: Checkout RLX
uses: ./.github/actions/checkout-rlx

- name: Validate Windows app manifest
shell: bash
run: node scripts/check-windows-manifest.mjs src-tauri/manifest.xml
Expand Down Expand Up @@ -225,6 +228,10 @@ jobs:
# toolchain. Installing them in a single step via background jobs cuts
# ~1-2 min of sequential wait time on cache-miss runs.
- name: Cache Vulkan SDK
# Don't fail the job on transient cache-service errors (actions/cache@v5
# occasionally returns "failure" instead of "miss"). The install step
# below handles a missing SDK by downloading it on the spot.
continue-on-error: true
uses: actions/cache@v5
with:
path: C:\VulkanSDK
Expand Down Expand Up @@ -546,8 +553,11 @@ jobs:

# Build both packages in a single cargo invocation so feature
# unification happens once and shared dependencies compile only once.
# NOTE: `|| return $?` is required — `set -e` is inhibited inside a
# function called via `if ! cmd`, so a failing cargo build would
# silently fall through and run_cmd would still return 0.
run_cmd() {
cargo build -p skill-daemon -p skill --release --locked --target x86_64-pc-windows-msvc --features custom-protocol --timings
cargo build -p skill-daemon -p skill --release --locked --target x86_64-pc-windows-msvc --features custom-protocol --timings || return $?
}

if ! run_cmd; then
Expand Down Expand Up @@ -906,7 +916,7 @@ jobs:

# ── Discord notification ──────────────────────────────────────────────────
- name: Notify Discord of release
if: always() && steps.version_meta.outputs.dry_run != 'true'
if: always() && steps.version_meta.outputs.is_release == 'true'
shell: bash
env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ node_modules
.env.*
!.env.example
!.envrc
rlx.path
vite.config.js.timestamp-*
vite.config.ts.timestamp-*

Expand Down
Loading
Loading