Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1823 commits
Select commit Hold shift + click to select a range
c95fd1b
improved images search
eugenehp Apr 18, 2026
638b4f6
updates
eugenehp Apr 18, 2026
fbf350f
fix dependabot issue
eugenehp Apr 18, 2026
5154dda
fix dependabot issue
eugenehp Apr 18, 2026
9e75598
i18n + hooks
eugenehp Apr 18, 2026
2fae124
svelte fixes
eugenehp Apr 18, 2026
0e9a3be
fixed CI chache
eugenehp Apr 18, 2026
bebde17
webkit safe_destroy
eugenehp Apr 18, 2026
91c8601
bump CI
eugenehp Apr 18, 2026
98128f7
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24
eugenehp Apr 18, 2026
51f4336
new packaging
eugenehp Apr 18, 2026
e8319fa
bumped llama
eugenehp Apr 18, 2026
b42efe8
fix dependabot issues
eugenehp Apr 18, 2026
e394fd0
updated emotiv
eugenehp Apr 18, 2026
762b095
bump
eugenehp Apr 18, 2026
c51fde1
linter
eugenehp Apr 18, 2026
fe44309
fixed the router
eugenehp Apr 18, 2026
8dd8f11
better UI loop
eugenehp Apr 18, 2026
4f243f5
fixed cache + CSV processing
eugenehp Apr 18, 2026
f56b105
linter
eugenehp Apr 18, 2026
de69ef1
qwen3.6
eugenehp Apr 18, 2026
9d49b66
more quants
eugenehp Apr 18, 2026
ad663f7
added screenshots back
eugenehp Apr 18, 2026
76517da
screenshot
eugenehp Apr 18, 2026
9e755dc
updated search
eugenehp Apr 18, 2026
0f68207
linter
eugenehp Apr 18, 2026
91e266c
updated llama-cpp
eugenehp Apr 19, 2026
5fc045d
daemon launcher on mac
eugenehp Apr 19, 2026
1583ed0
calibration fixes
eugenehp Apr 19, 2026
188bef5
linter
eugenehp Apr 19, 2026
6ee60e0
hooks
eugenehp Apr 19, 2026
58d5285
ci fix
eugenehp Apr 19, 2026
9225160
updare linux ci
eugenehp Apr 19, 2026
baf7336
ci
eugenehp Apr 19, 2026
e922799
ci again
eugenehp Apr 19, 2026
62b872e
build better CI
eugenehp Apr 19, 2026
c4be5fe
improved linux
eugenehp Apr 19, 2026
86c89cd
bump
eugenehp Apr 19, 2026
9ac9941
tar uploads
eugenehp Apr 19, 2026
773fac8
description
eugenehp Apr 19, 2026
bf6c6c5
0.0.123
eugenehp Apr 19, 2026
a57d9a7
fixed connectivity
eugenehp Apr 19, 2026
56ff10b
better connect
eugenehp Apr 19, 2026
27d9124
fixed `set default`
eugenehp Apr 19, 2026
82bda8d
fixed calibration
eugenehp Apr 19, 2026
507e8c3
linter
eugenehp Apr 20, 2026
c33312c
linter
eugenehp Apr 20, 2026
d74b62a
fixed daemon invoke
eugenehp Apr 20, 2026
bb793b6
0.0.124
eugenehp Apr 20, 2026
09965ba
fixed auto connect
eugenehp Apr 20, 2026
3809669
0.0.125
eugenehp Apr 20, 2026
66c40f5
daemon restart on launch
eugenehp Apr 20, 2026
9700811
0.0.126
eugenehp Apr 20, 2026
a54dc59
deps(npm): bump the npm-all group with 9 updates
dependabot[bot] Apr 20, 2026
b6fe728
Merge pull request #52 from NeuroSkill-com/dependabot/npm_and_yarn/np…
eugenehp Apr 20, 2026
018383b
linter
eugenehp Apr 20, 2026
8c1feda
svelte linter
eugenehp Apr 20, 2026
2c578db
biome
eugenehp Apr 20, 2026
1f536cc
lsl update
eugenehp Apr 22, 2026
c3df136
updated llama
eugenehp Apr 22, 2026
d9efdf6
added new devices support
eugenehp Apr 22, 2026
3e319ce
fixes https://github.com/NeuroSkill-com/skill/issues/51
eugenehp Apr 22, 2026
3473bd2
fixes https://github.com/NeuroSkill-com/skill/issues/50
eugenehp Apr 22, 2026
1fefb8e
fixes:
eugenehp Apr 22, 2026
825a4ab
i18n
eugenehp Apr 22, 2026
8632ed9
0.0.127
eugenehp Apr 22, 2026
7ab623b
Added unsloth/Qwen3.6-27B-GGUF
eugenehp Apr 22, 2026
a2a51f6
refactored UI
eugenehp Apr 22, 2026
630224a
fixed glib with a patch
eugenehp Apr 23, 2026
5f04883
muda
eugenehp Apr 23, 2026
5bcde38
updTed settings and engine
eugenehp Apr 23, 2026
2b4a9e7
linter
eugenehp Apr 23, 2026
e7dc48c
notify
eugenehp Apr 23, 2026
60bdbc5
glib
eugenehp Apr 23, 2026
119131b
llmfit
eugenehp Apr 23, 2026
fb2f6d1
0.0.128
eugenehp Apr 23, 2026
d7e3e63
phf_generator
eugenehp Apr 23, 2026
da41175
updated llama
eugenehp Apr 23, 2026
63105fa
crossbeam fix
eugenehp Apr 23, 2026
9ebf2ef
dependabot
eugenehp Apr 23, 2026
19d4bfd
llama upgrade
eugenehp Apr 23, 2026
3347394
grayscale
eugenehp Apr 23, 2026
29c5279
kittentts
eugenehp Apr 23, 2026
0a2c83a
features
eugenehp Apr 23, 2026
af65fe1
0.0.129
eugenehp Apr 24, 2026
0ea9d63
kittentts
eugenehp Apr 24, 2026
0a9567e
updated CI
eugenehp Apr 24, 2026
fcdea2c
Completed in this session:
eugenehp Apr 24, 2026
3ac291f
widgets
eugenehp Apr 24, 2026
1c4a545
fixed apple script
eugenehp Apr 24, 2026
30b2f63
Add terminal command tracking, dev loops, brain-fused analysis
eugenehp Apr 24, 2026
4205bb1
Update vscode extension changelog with sidebar, terminal tracking, br…
eugenehp Apr 24, 2026
27cba5b
continue work on the widgets
eugenehp Apr 24, 2026
b273f2a
added terminal
eugenehp Apr 24, 2026
507cd5f
improved hnsw
eugenehp Apr 25, 2026
43198a8
utc
eugenehp Apr 25, 2026
aed57c6
Add developer insights, conversations DB, EEG timeseries, embedding s…
eugenehp Apr 25, 2026
8d80214
Fix ConversationRow missing Serialize derive
eugenehp Apr 25, 2026
2d24b02
Add code context HNSW index, EEG timeseries worker, developer insight…
eugenehp Apr 25, 2026
6f2714c
Fix daemon build: handlers.rs port/TOTP, EEG timeseries worker signature
eugenehp Apr 25, 2026
c6aab3d
Add changelog fragments for 6 major features
eugenehp Apr 25, 2026
b639bff
extensions
eugenehp Apr 26, 2026
e5c5f54
updated terminal
eugenehp Apr 26, 2026
7959df1
tty
eugenehp Apr 26, 2026
a3a4d17
tty
eugenehp Apr 27, 2026
cbda71c
tty
eugenehp Apr 27, 2026
81517a6
fixes #53
eugenehp Apr 27, 2026
bc6195e
contributing
eugenehp Apr 27, 2026
9725423
change release system
eugenehp Apr 29, 2026
1f80346
fix CI
eugenehp Apr 29, 2026
947c9f2
fixed discord ci
eugenehp Apr 29, 2026
12cced2
updated deps
eugenehp Apr 29, 2026
05423a6
deps(npm): bump the npm-all group with 10 updates (#60)
dependabot[bot] May 8, 2026
5bee27b
deps(npm): bump the npm-all group with 12 updates (#64)
dependabot[bot] May 11, 2026
52af69c
deps(npm): bump the npm-all group with 9 updates (#65)
dependabot[bot] May 18, 2026
5626f4d
deps(npm): bump the npm-all group with 9 updates (#66)
dependabot[bot] May 30, 2026
32637b1
0.0.130-rc.1
eugenehp Apr 29, 2026
f311e0e
fix win/linux
eugenehp Apr 29, 2026
6c190ab
0.0.130-rc.2
eugenehp Apr 29, 2026
fbfd5bd
umap e2e
eugenehp Apr 29, 2026
986c7cf
fixed issues with the metrics, keychain access (3 -> 1 + on demand), …
eugenehp Apr 29, 2026
0f98b13
0.0.130-rc.3
eugenehp Apr 29, 2026
4f485c2
0.0.130-rc.4
eugenehp Apr 29, 2026
0237622
fix vulkan cache on windows ci
eugenehp Apr 29, 2026
c5b88a1
0.0.130-rc.5
eugenehp Apr 30, 2026
1c7af70
0.0.130-rc.6
eugenehp Apr 30, 2026
1035ca4
Replace per-app AppleScript window tracking (which triggered a macOS …
eugenehp May 2, 2026
4c296b7
0.0.130-rc.7
eugenehp May 2, 2026
7b4431b
cargo deny
eugenehp May 2, 2026
6a7ba98
updated llm catalog
eugenehp May 2, 2026
96d13bf
fix tty
eugenehp May 2, 2026
d64faeb
safety checks
eugenehp May 2, 2026
f148faf
fix windows CI
eugenehp May 2, 2026
0afe8f1
fix(cargo): remove obsolete muda and phf_generator patches
eugenehp May 2, 2026
5d4a654
fixed cargo clippy
eugenehp May 2, 2026
64d4a40
0.0.130-rc.8
eugenehp May 2, 2026
327f2a8
0.0.130-rc.9
eugenehp May 2, 2026
5ff672e
fix windows ci
eugenehp May 2, 2026
f35650b
0.0.130-rc.10
eugenehp May 2, 2026
6b2b216
1. GPU f16 SHADER_F16 panic → `catch_unwind` in worker.rs
eugenehp May 2, 2026
1855274
log_enabled_by_default
eugenehp May 2, 2026
d33a938
0.0.130-rc.11
eugenehp May 2, 2026
c2a1f2b
auto-update + update RC settings
eugenehp May 3, 2026
a20c215
1. Settings tab font-size lint rule (scripts/check-settings-font-size…
eugenehp May 3, 2026
50c580f
translations
eugenehp May 3, 2026
d6ff3c2
0.0.130-rc.12
eugenehp May 3, 2026
9118570
deps(npm): bump the npm-all group with 10 updates
dependabot[bot] May 4, 2026
ae4a90b
0.0.130-rc.13
eugenehp May 4, 2026
010582f
fix max buffer
eugenehp May 4, 2026
898344a
1 hour roll over in csv
eugenehp May 4, 2026
9b5d83b
roll csv/parquet
eugenehp May 5, 2026
972e01e
echt
eugenehp May 5, 2026
637d4c6
added drop tests
eugenehp May 5, 2026
6a13a85
24 hours test
eugenehp May 5, 2026
7a60205
i18n
eugenehp May 5, 2026
550a4c5
better tests
eugenehp May 5, 2026
3f67280
0.0.130-rc.14
eugenehp May 5, 2026
cf62082
normalized fonts
eugenehp May 5, 2026
70b7c7c
0.0.130-rc.15
eugenehp May 5, 2026
d3c5edb
0.0.130-rc.16
eugenehp May 5, 2026
67b39ea
address ZUNA GPU f16 fallback failure and embedding search timestamp …
eugenehp May 5, 2026
585e2b4
0.0.130-rc.17
eugenehp May 5, 2026
77837d5
docker + skill-tty
eugenehp May 6, 2026
966f375
biome
eugenehp May 6, 2026
b9c89ec
clippy
eugenehp May 6, 2026
d13968f
clipy
eugenehp May 6, 2026
b924490
0.0.130-rc.18
eugenehp May 6, 2026
ab79bf0
fix tty
eugenehp May 6, 2026
c39a504
cargo deny
eugenehp May 6, 2026
1e7435b
0.0.130-rc.19
eugenehp May 6, 2026
71923d0
fix --deep signature
eugenehp May 7, 2026
de6fbe1
0.0.130-rc.20
eugenehp May 7, 2026
f159999
0.0.130-rc.21
eugenehp May 8, 2026
748c179
updated iroh
eugenehp May 8, 2026
b71be60
0.0.130-rc.22
eugenehp May 8, 2026
37901d7
upgraded llama.cpp and added mtp
eugenehp May 8, 2026
e855254
0.0.130-rc.23
eugenehp May 9, 2026
181964a
fixed biome
eugenehp May 9, 2026
8822643
0.0.130-rc.24
eugenehp May 9, 2026
c6aaa71
fixed sscache + cmake
eugenehp May 10, 2026
100d0b2
0.0.130-rc.25
eugenehp May 10, 2026
0ca4a1a
updated llama-cpp-rs
eugenehp May 16, 2026
2749ba5
deps
eugenehp May 16, 2026
e3c21f3
0.0.130-rc.26
eugenehp May 16, 2026
ea81b46
fixed llama
eugenehp May 17, 2026
87142e7
0.0.130-rc.27
eugenehp May 17, 2026
6656aa6
0.0.130-rc.28
eugenehp May 19, 2026
fa760d7
fixed i18n
eugenehp May 19, 2026
dc670aa
0.0.130-rc.29
eugenehp May 19, 2026
a392191
turboquant index
eugenehp May 19, 2026
8757587
0.0.130-rc.30
eugenehp May 19, 2026
c4fc29d
llama-cpp-rs@0.3.0
eugenehp May 20, 2026
c694eb2
0.0.130-rc.31
eugenehp May 20, 2026
0ed46e7
fix: sync Cargo.lock for CI --locked builds
eugenehp May 20, 2026
42e19b5
migrated to rlx
eugenehp May 30, 2026
c4ce9c6
updated cargo deny
eugenehp May 30, 2026
285c951
updated tests
eugenehp May 30, 2026
4d6f250
updated npm run scripts
eugenehp May 30, 2026
9526703
chore: add npm run clean script for build artifacts and node_modules
eugenehp May 30, 2026
9daa835
ci: bump apt cache version to pick up libopenblas-dev
eugenehp May 30, 2026
fd9bf5c
fixed umap test
eugenehp May 30, 2026
ad85157
fixed cargo deny
eugenehp May 30, 2026
b329711
ci fix
eugenehp May 31, 2026
4367570
ci: gpu fix
eugenehp May 31, 2026
8304c79
fixed CI
eugenehp May 31, 2026
30502bd
0.0.131-rc.2
eugenehp May 31, 2026
4c2b517
fix release ci
eugenehp Jun 1, 2026
37ed760
0.0.131-rc.3
eugenehp Jun 1, 2026
92dc9a2
fixed windows and linux builds
eugenehp Jun 1, 2026
38e8d29
0.0.131-rc.4
eugenehp Jun 1, 2026
06525b8
upgrade to rlx 0.2.4
eugenehp Jun 9, 2026
cb0e2d8
upgraded to rlx 0.2.5
eugenehp Jun 10, 2026
7069951
0.0.131-rc.5
eugenehp Jun 10, 2026
77f626a
0.0.131-rc.6
eugenehp Jun 10, 2026
738eaf0
updated to rlx 0.2.11
eugenehp Jul 6, 2026
6fd437a
updated tts
eugenehp Jul 6, 2026
4ce5a9a
update tts weights
eugenehp Jul 6, 2026
a687bdd
log
eugenehp Jul 6, 2026
cbc6152
log
eugenehp Jul 6, 2026
7025c0b
log
eugenehp Jul 6, 2026
712d413
log
eugenehp Jul 6, 2026
ddbe74d
log
eugenehp Jul 6, 2026
ac7b982
fixed rls path
eugenehp Jul 6, 2026
a4ee0a9
fixed cargo deny
eugenehp Jul 6, 2026
2b16556
added cli toggle for local/remote rlx
eugenehp Jul 7, 2026
0a2a247
added cli toggle for local/remote rlx
eugenehp Jul 7, 2026
8d334a0
cli
eugenehp Jul 7, 2026
a658713
fixed tests
eugenehp Jul 7, 2026
3711eca
new rlx config
eugenehp Jul 19, 2026
773baad
updated npm
eugenehp Jul 19, 2026
10cf296
updated ts
eugenehp Jul 19, 2026
afc9c15
build: commit inflect-nano TTS bundle so CI can build the app
eugenehp Jul 19, 2026
8815293
fixed npm issues
eugenehp Jul 19, 2026
c166baa
cask CI
eugenehp Jul 19, 2026
2757c8b
updated ci
eugenehp Jul 19, 2026
6b0ed69
fixed a disclaimer
eugenehp Jul 19, 2026
6d1f49e
better discord message
eugenehp Jul 19, 2026
22d1583
deleted fastembed
eugenehp Jul 19, 2026
bf67eaf
0.0.131-rc.7
eugenehp Jul 19, 2026
1249cfa
build: commit rlx-ocr safetensors bundle so CI can build skill-screen…
eugenehp Jul 19, 2026
89e0114
wip
eugenehp Jul 19, 2026
1e61f1b
0.0.131-rc.8
eugenehp Jul 19, 2026
644c6ec
updated rlx metal
eugenehp Jul 19, 2026
94474ee
0.0.131-rc.9
eugenehp Jul 19, 2026
22b67cb
disable widgekit
eugenehp Jul 20, 2026
24f32bd
fixed clippy
eugenehp Jul 20, 2026
5475d8b
fixed calibration test
eugenehp Jul 20, 2026
c10eb92
cleanup
eugenehp Jul 21, 2026
08e33dc
0.0.131-rc.10
eugenehp Jul 23, 2026
366ef98
0.0.131-rc.11
eugenehp Jul 23, 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
  •  
  •  
  •  
50 changes: 50 additions & 0 deletions .cargo/audit.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# cargo-audit ignore list — all transitive deps we cannot directly upgrade.
# These are informational-only advisories (unmaintained / unsound);
# no actual vulnerabilities are present.

# Yanked crates — transitive deps we can't control.
[yanked]
enabled = false

[advisories]
ignore = [
# ── gtk-rs GTK3 family — unmaintained, no GTK4 upgrade path until Tauri migrates ──
"RUSTSEC-2024-0411", # gdkwayland-sys
"RUSTSEC-2024-0412", # gdk
"RUSTSEC-2024-0413", # atk
"RUSTSEC-2024-0414", # gdkx11-sys
"RUSTSEC-2024-0415", # gtk
"RUSTSEC-2024-0416", # atk-sys
"RUSTSEC-2024-0417", # gdkx11
"RUSTSEC-2024-0418", # gdk-sys
"RUSTSEC-2024-0419", # gtk3-macros
"RUSTSEC-2024-0420", # gtk-sys

# ── glib — unsound VariantStrIter, patched in >=0.20.0; blocked by gtk3 above ──
"RUSTSEC-2024-0429", # glib

# ── Other unmaintained transitive deps ────────────────────────────────────
"RUSTSEC-2021-0139", # ansi_term (via structopt/clap2 in iroh test clients)
"RUSTSEC-2023-0089", # atomic-polyfill (via heapless 0.7 in iroh stack)
"RUSTSEC-2024-0370", # proc-macro-error (via gtk3-macros)
"RUSTSEC-2024-0375", # atty unmaintained (via structopt/clap2 in iroh test clients)
"RUSTSEC-2024-0436", # paste
"RUSTSEC-2025-0057", # fxhash
"RUSTSEC-2025-0075", # unic-char-range
"RUSTSEC-2025-0080", # unic-common
"RUSTSEC-2025-0081", # unic-char-property
"RUSTSEC-2025-0098", # unic-ucd-version
"RUSTSEC-2025-0100", # unic-ucd-ident
"RUSTSEC-2025-0119", # number_prefix
"RUSTSEC-2025-0134", # rustls-pemfile (via oura-api/reqwest 0.11)
"RUSTSEC-2025-0141", # bincode

# ── Unsound warnings in legacy transitive deps ────────────────────────────
"RUSTSEC-2021-0145", # atty potential unaligned read (legacy clap2 chain)

# ── lru — unsound IterMut, patched in >=0.16.3; transitive dep ───────────
"RUSTSEC-2026-0002", # lru

# ── rand — unsound with custom logger using rand::rng(); transitive dep ──
"RUSTSEC-2026-0097", # rand (0.7.3 via tauri/phf, 0.8.5 via keyring/emotiv/etc.)
]
204 changes: 204 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
# ── Workspace-level Cargo configuration ────────────────────────────────────────
#
# 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).

# ── Default build target ──────────────────────────────────────────────────────
#
# cargo's [build] section has no per-host-OS conditionals, so a hardcoded
# `target = "aarch64-apple-darwin"` here would break Windows / Linux builds
# ("can't find crate for `core`").
#
# Platform default is therefore left as the host triple. Per-platform
# targeting is handled at two levels:
#
# 1. npm / Tauri builds (recommended):
# npm run tauri:build ← auto-selects target via scripts/tauri-build.js
# macOS → --target aarch64-apple-darwin
# Windows/Linux → host triple (no --target flag)
#
# 2. Raw `cargo` on macOS:
# Either pass --target aarch64-apple-darwin explicitly, or let direnv
# source the repo-root .envrc which exports CARGO_BUILD_TARGET for you.
#
# ── Windows build prerequisite: LLVM / libclang ───────────────────────────────
#
# llama-cpp-sys uses bindgen to generate Rust↔C bindings at build time.
# bindgen requires libclang.dll, which ships with the LLVM toolchain.
#
# One-time setup (run once, then restart your terminal):
#
# winget install LLVM.LLVM
#
# # Then add to your user environment (PowerShell):
# [System.Environment]::SetEnvironmentVariable(
# "LIBCLANG_PATH", "C:\Program Files\LLVM\bin", "User")
#
# Without this, cargo build fails with:
# "Unable to find libclang: couldn't find any valid shared libraries
# matching: ['clang.dll', 'libclang.dll']"
#
# LIBCLANG_PATH is intentionally NOT set here because the path is
# installation-dependent and force=true would break machines where LLVM
# lives elsewhere. Set it in your system/user environment variables instead.

[build]
# target intentionally omitted — defaults to the host triple
#
# ── Shared target directory ───────────────────────────────────────────────────
#
# All workspace members compile into src-tauri/target/. This keeps the
# binary output where the Tauri CLI and build scripts (tauri-build.js,
# assemble-macos-app.sh, etc.) expect it, and avoids the multi-GB
# duplication that occurred when individual crates had their own target/.
target-dir = "src-tauri/target"
#
# ── Build caching (sccache) ───────────────────────────────────────────────────
#
# Do NOT hardcode `rustc-wrapper = "sccache"` here.
#
# Some developer machines (especially fresh Windows setups) do not have
# sccache installed, and a workspace-level rustc-wrapper makes *every* cargo
# command fail with:
# "could not execute process `sccache ... rustc.exe -vV` (program not found)"
#
# Instead, scripts/tauri-build.js auto-detects sccache and sets
# RUSTC_WRAPPER only when the executable is present.

[env]
# Dynamic CRT for cmake-based -sys crates (llama-cpp-sys, etc.).
# Several native dependencies (DirectML, ONNX Runtime, Vulkan loader) ship
# as pre-built DLLs linked against the dynamic CRT (/MD). Mixing /MT and
# /MD in the same process causes heap corruption and "side-by-side
# configuration is incorrect" errors. Using /MD everywhere is consistent
# and the NSIS installer bundles the VC++ Redistributable DLLs app-locally
# so end users don't need a separate install.
# 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:
# - llama.cpp's std::filesystem (available since 10.15)
# - MLX Metal kernels using simdgroup_matrix (requires Metal 3.0 / macOS 14+)
#
# Apple Silicon (M-series, MacBook Neo A-series) — same Rust triple for all arm64 Macs.
# Aliases: mac-neo, aarch64-apple-darwin-neo, apple-a18 (see scripts/lib/target-triples.mjs).
#
# Apple Silicon (M1+) ships with macOS 11.0 minimum, so 14.0 is fine.
#
# Two separate knobs are needed:
#
# MACOSX_DEPLOYMENT_TARGET
# Read by the `cc` crate to generate -mmacosx-version-min in
# CMAKE_C_FLAGS / CMAKE_CXX_FLAGS (passed by cmake-0.1.57).
#
# CMAKE_OSX_DEPLOYMENT_TARGET
# llama-cpp-sys-2/build.rs forwards all CMAKE_* env vars directly to
# cmake configure via config.define(key, value). cmake then appends
# its own -mmacosx-version-min AFTER CMAKE_C_FLAGS, so Clang's
# "last flag wins" rule overrides any default baked into CMAKE_C_FLAGS.
#
# force=true is required so that a system-level MACOSX_DEPLOYMENT_TARGET
# (e.g. set by Xcode to 10.13) cannot silently override these values.
#
# ⚠️ After changing either value you MUST delete the stale cmake cache:
# rm -rf src-tauri/target/release/build/llama-cpp-sys-2-*/
# rm -rf src-tauri/target/debug/build/mlx-sys-burn-*/
MACOSX_DEPLOYMENT_TARGET = { value = "14.0", force = true }
CMAKE_OSX_DEPLOYMENT_TARGET = { value = "14.0", force = true }

# ── macOS: increase main-thread stack size ────────────────────────────────────
#
# macOS defaults to an 8 MB main-thread stack. The Tauri `run()` function
# has an enormous frame because `generate_handler!` expands ~150 command
# handlers inline, plus the setup/run closures, `AppState::default()`, and
# deep generics from serde / HNSW / llama.cpp. 8 MB is not enough.
#
# The stack-size flag is emitted from build.rs via `cargo:rustc-link-arg-bins`
# so it only applies to the final executable, NOT to the lib crate (ld64
# rejects `-stack_size` on dylibs). See build.rs for the actual value.
#
# NOTE: [target.aarch64-apple-darwin] and [target.x86_64-apple-darwin]
# sections are intentionally absent here because macOS needs no target-wide
# rustflags. The stack size is handled exclusively by build.rs.

# ── Linux: fast linker (mold) ─────────────────────────────────────────────────
#
# mold is a drop-in replacement for ld/lld that is significantly faster for
# large binaries. When mold + clang are installed, scripts/tauri-build.js
# automatically sets CARGO_TARGET_*_LINKER and CARGO_TARGET_*_RUSTFLAGS
# environment variables so cargo uses mold without hardcoding it here.
#
# Do NOT hardcode [target.*-unknown-linux-gnu] linker/rustflags here — it
# breaks builds for developers who don't have mold or clang installed.
#
# Install (Debian/Ubuntu): sudo apt install mold clang
# Install (Fedora): sudo dnf install mold clang
# Install (Arch): sudo pacman -S mold clang
# Install (macOS): not needed — Apple's ld is already fast

# ── Windows MSVC: increase main-thread stack size ────────────────────────────
#
# Windows allocates only 1 MB of stack to the main thread by default (vs 8 MB
# on macOS / Linux). The Tauri + llama.cpp initialisation path uses enough
# stack (serde, HNSW, deep generics) to hit the guard page and produce a
# STATUS_STACK_OVERFLOW (0xC00000FD) crash before any window is shown.
#
# /STACK:<reserve>[,<commit>] — PE header stack reservation.
# reserve = 8 MB (8 * 1024 * 1024 = 8388608)
# commit = 64 KB (default; pages are committed lazily, so this is fine)
#
# The flag is passed through -C link-args so it works without a separate
# .cargo/config linker directive. It only affects the main thread; worker
# threads set their own size via std::thread::Builder::stack_size.
# ── Windows MSVC: fast linker (lld-link) ─────────────────────────────────────
#
# lld-link is LLVM's drop-in replacement for MSVC's link.exe. It is
# significantly faster for large Rust projects (the Windows release build
# spends most of its time linking). When LLVM is installed (winget or CI),
# lld-link.exe is available in the LLVM bin directory.
#
# The linker is set via CARGO_TARGET_*_LINKER in the CI workflow and in
# tauri-build.js (auto-detected). Do NOT hardcode it here because it
# breaks builds for developers who don't have LLVM installed — they
# fall back to the default MSVC link.exe which always works.
#
# Install: winget install LLVM.LLVM

# Dynamic CRT: the binary links against vcruntime140.dll / msvcp140.dll.
# The NSIS installer bundles these DLLs app-locally (in $INSTDIR alongside
# skill.exe) so users don't need the VC++ Redistributable pre-installed.
# The installer also offers to download the full VC++ Redist as a fallback.
[target.x86_64-pc-windows-msvc]
rustflags = ["-C", "link-args=/STACK:8388608"]

[target.aarch64-pc-windows-msvc]
rustflags = ["-C", "link-args=/STACK:8388608"]

# ── Windows MinGW (x86_64-pc-windows-gnu): MinGW bash build script ────────────
#
[target.x86_64-pc-windows-gnu]
rustflags = ["-C", "link-args=-Wl,--stack,8388608"]

[target.i686-pc-windows-gnu]
rustflags = ["-C", "link-args=-Wl,--stack,8388608"]
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/
48 changes: 48 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# direnv — https://direnv.net/
# Run `direnv allow` once after cloning.
#
# On macOS: sets the default cargo target to Apple Silicon so that
# `cargo build`, `cargo check`, `cargo clippy` etc. all target
# aarch64-apple-darwin without an explicit --target flag.
#
# On Windows / Linux: CARGO_BUILD_TARGET is left unset, cargo uses the
# host triple (x86_64-pc-windows-msvc / x86_64-unknown-linux-gnu).

if [ "$(uname)" = "Darwin" ]; then
export CARGO_BUILD_TARGET=aarch64-apple-darwin

# Use GNU ar if available (Homebrew binutils) to suppress
# "illegal option -- D" warnings from Apple's system ar.
# Install: brew install binutils
GAR="$(brew --prefix binutils 2>/dev/null)/bin/gar"
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
if [ -f "scripts/ensure-rlx-models.sh" ]; then
bash scripts/ensure-rlx-models.sh
fi
Loading
Loading