Releases: NeuroSkill-com/skill
Skill v0.0.130-rc.4
Changelog
Features
- Minor updates and improvements
Contributors
- Eugene Hauptmann
Skill v0.0.130-rc.3
Changelog
Features
- fixed issues with the metrics, keychain access (3 -> 1 + on demand), windows CI
- umap e2e
Contributors
- Eugene Hauptmann
Skill v0.0.130-rc.2
Changelog
Features
- fix win/linux
Contributors
- Eugene Hauptmann
Skill v0.0.130-rc.1
Changelog
Features
- Human vs AI activity tracking: every edit and commit is now classified as
source: "human"orsource: "ai"in real-time.AIActivityTrackerwatches VSCode commands (Copilot/Codeium completions, inline chat, AI-generated commit messages) to tag subsequent edits/commits, exposesgetAIRatioForFile()(rolling 5-minute ratio) for CodeLens + sidebar, and forwards thesourcefield to the daemon forbuild_events/ai_eventsstorage.
How it works
The AIActivityTracker monitors VSCode command execution to detect AI tool usage:
- Inline completions (Copilot, Codeium) — edits within 5 seconds after an AI command are tagged
source: "ai" - Inline chat (
inlineChat.start,copilot.interactiveEditor.*) — subsequent edits in the same file are tagged AI - Commit messages —
github.copilot.git.generateCommitMessagemarks the next commit as AI-assisted - Everything else — classified as
source: "human"
What's tracked
| Signal | Classification |
|---|---|
| Manual typing | human |
| Copilot inline suggestion accepted | ai |
| Copilot inline chat edits | ai |
| Paste from external source | human |
| AI-generated commit message | ai |
| Manually typed commit message | human |
Per-file AI ratio
AIActivityTracker.getAIRatioForFile(path) returns a rolling 5-minute ratio (0.0 = all human, 1.0 = all AI) used by:
- CodeLens annotations (shows "AI-Assisted" vs focus score)
- Sidebar (Human/AI percentage display)
- Brain status command (Human/AI split)
Daemon integration
The source field is sent on every edit and git_commit event to the daemon. The daemon stores:
- AI commits as
"git commit (ai-assisted)"inbuild_events - AI commits also as
ai_eventsfor analytics weighting - Completion acceptances as
ai_eventswith type"suggestion_accepted"
Files
-
src/ai-tracker.ts— Core tracker (new) -
src/events.ts— Wired to classify edits and commits -
crates/skill-daemon/src/routes/settings_hooks_activity.rs— Daemon-side storage -
Focus-aware code review CodeLens: annotations at the top of each file show the developer's focus level when the file was last edited (
⚠ Low Focus (42),ℹ Focus: 65/100,🤖 AI-Assisted (85%), or none for high focus).NeuroSkill: Show Files Needing Reviewcommand lists low-focus human-authored files. Toggle vianeuroskill.focusCodeLens.
What you see
⚠ Low Focus (42) — Review Recommended— File was edited during low focus. Click to see all files needing review.ℹ Focus: 65/100— Moderate focus, informational only.🤖 AI-Assisted (85%)— Most edits were AI-generated, focus score not applicable.- No annotation — High focus (>70) or no data yet.
Commands
NeuroSkill: Show Files Needing Review (Cmd+Shift+P)
- Shows a QuickPick list of files edited during low focus (<50) that were mostly human-authored
- Sorted by focus score (lowest first)
- Select a file to open it
How it works
FocusCodeLensProviderqueries/brain/cognitive-load(grouped by file) every 30 seconds- Combines focus data with
AIActivityTracker.getAIRatioForFile()to distinguish human vs AI code - Files with high AI ratio (>70%) show AI label instead of focus score — AI code doesn't reflect human cognitive state
Settings
neuroskill.focusCodeLens (default: true) — Toggle CodeLens annotations on/off.
Files
-
src/codelens-provider.ts— CodeLens provider (new) -
Smart Interruption Shield: when
/brain/flow-statereportsin_flow: true, VS Code's Do Not Disturb mode auto-enables and the status bar shows$(shield) In Flow 12m.NeuroSkill: Toggle Flow Shieldcycles Auto / Forced-on / Forced-off. Toggle vianeuroskill.flowShield.
How it works
- When
/brain/flow-statereportsin_flow: true, the Flow Shield activates - Enables VSCode's Do Not Disturb mode (VSCode 1.90+)
- Shows
$(shield) In Flow 12min the status bar with elapsed time - When flow state ends, DND is automatically disabled
Manual override
NeuroSkill: Toggle Flow Shield (Cmd+Shift+P)
Cycles through three modes:
- Auto (default) — activates/deactivates based on EEG flow detection
- Forced on — always active regardless of flow state
- Forced off — never active
Settings
neuroskill.flowShield (default: true) — Enable/disable the flow shield feature.
Files
-
src/flow-shield.ts— Flow shield implementation (new) -
src/brain.ts— CallsflowShield.update()every 30s -
Adaptive Break Coach: personalized break timing based on the developer's actual EEG focus cycle (via
/brain/break-timing), not generic Pomodoro. Status bar countdown$(clock) Break in 8m, max one notification per cycle, auto-resets when fatigue indicates idleness.NeuroSkill: Take a Breakresets the timer manually. Toggle vianeuroskill.breakCoach.
How it works
- Queries
/brain/break-timingto learn the developer's natural focus cycle length - Shows a countdown in the status bar:
$(clock) Break in 8m - When the predicted focus drop is imminent (<5 min), the countdown turns visible
- When the cycle ends, shows
$(clock) Break timeand optionally notifies
Notifications
- Max one notification per focus cycle
- Message: "You've been focused for 47m. Your natural cycle is 42m — take a break?"
- Buttons: "Take Break" (resets timer) or "Dismiss"
Timer sync
The break coach automatically syncs with the daemon's fatigue data. If continuous_work_mins drops below 5 (indicating the user was idle), the session timer resets — no false break suggestions after returning from lunch.
Commands
NeuroSkill: Take a Break (Cmd+Shift+P) — Manually acknowledge a break and reset the timer.
Settings
neuroskill.breakCoach (default: true) — Enable/disable break coaching.
Files
-
src/break-coach.ts— Break coach implementation (new) -
src/brain.ts— CallsbreakCoach.refresh()andresetSessionIfIdle()every 30s -
Struggle → AI assist bridge: when
/brain/struggle-predictflags a file (EEG focus + undo rate + velocity drop + time-on-file), shows an actionable notification with Open Copilot Chat, Open Terminal, and Step Back buttons. Debounced to one suggestion per file per 10 minutes. Toggle vianeuroskill.struggleBridge.
How it works
- Monitors
/brain/struggle-predict(EEG focus + undo rate + velocity drop + time-on-file) - When
struggling: true, shows an actionable notification:"Stuck on auth.ts? (score: 78) Consider breaking the problem into smaller pieces."
Action buttons
| Button | Action |
|---|---|
| Open Copilot Chat | Opens GitHub Copilot interactive chat (or generic chat panel) |
| Open Terminal | Toggles terminal for CLI debugging |
| Step Back | Dismiss and take a mental break |
Debouncing
- Max one suggestion per file per 10 minutes
- Prevents notification fatigue while still catching genuine struggles
Settings
neuroskill.struggleBridge (default: true) — Enable/disable struggle detection and AI suggestions.
Files
-
src/struggle-bridge.ts— Struggle bridge implementation (new) -
src/brain.ts— CallsstruggleBridge.check()every 30s (replaces the old generic struggle notification) -
Personal Flow Triggers dashboard: collapsible "Your Flow Recipe" sidebar section mining 7-day EEG + activity history — best language (
/brain/code-eeg), peak hours (/brain/optimal-hours), natural cycle length (/brain/break-timing), top flow killer (/brain/context-cost). Toggle vianeuroskill.flowTriggers.
What you see
In the NeuroSkill sidebar panel, a collapsible "Your Flow Recipe" section shows:
- Best language — "Focus best on Rust (82)" — from
/brain/code-eeg - Peak hours — "Peak hours: 9:00, 10:00, 14:00" — from
/brain/optimal-hours - Natural cycle — "Natural cycle: 42m" — from
/brain/break-timing - Flow killer — "Flow killer: Slack (focus 38 at switch)" — from
/brain/context-cost
Data sources
| Insight | API Endpoint | Time Range |
|---|---|---|
| Best languages | /brain/code-eeg |
Last 7 days |
| Peak hours | /brain/optimal-hours |
Last 7 days |
| Natural cycle | /brain/break-timing |
Last 7 days |
| Flow killers | /brain/context-cost |
Last 7 days |
Settings
neuroskill.flowTriggers (default: true) — Show/hide the flow triggers section in the sidebar.
Files
-
src/sidebar.ts—_fetchFlowTriggers()and_renderFlowTriggers()methods -
Focus-scored git commits in sidebar: collapsible "Recent Commits" section shows the last 8 commits with author marker (👤 human / 🤖 AI) and a color-coded focus badge captured at commit time via
/brain/flow-state. AI-assisted commits show "AI" instead of a focus score. Toggle vianeuroskill.focusCommits.
What you see
In the NeuroSkill sidebar, a collapsible "Recent Commits" section shows the last 8 commits:
👤 82 fix: resolve auth race condition
👤 45 chore: update dependencies
🤖 AI refactor: extract helper functions
👤 71 feat: add user preferences
- 👤 = human-authored commit
- 🤖 = AI-assisted commit (message generated by Copilot)
- Focus badge = color-coded: green (>70), yellow (40-70), red (<40)
- AI commits show "AI" instead of a focus score — AI output doesn't measure human cognition
How it works
- When the extension detects a git commit (SCM input box clears), it:
- Snapshots current EEG focus via
/brain/flow-state - Checks
AIActivityTracker.isCommitAIAssisted() - Records the commit with focus score + source label
- Snapshots current EEG focus via
- Commits stored in-memory (last 15), refreshed on sidebar render
- The daemon also stores commits with human/AI distinction in
build_events
Settings
neuroskill.focusCommits (default: true) — Show/hide the commits section in the sidebar.
Files
src/sidebar.ts—recordCommit(),_renderCommits()src/extension.ts— Wires commit d...
RC channel pointer
Mutable release that always carries the latest latest.json (RC or stable build). Used by users opted into the rc update channel. Do not delete.
Skill v0.0.129
Changelog
Features
- Grayscale display mode: optional system-wide grayscale display that activates and deactivates in sync with Do Not Disturb. Reduces visual distraction during deep work. macOS only, default off — the default focus action remains Do Not Disturb only.
i18n
- Grayscale translations: added
dnd.grayscaleanddnd.grayscaleDesckeys to all 9 locales (en, de, es, fr, he, ja, ko, uk, zh).
Dependencies
-
Fix rand 0.7.3 vulnerability: vendored
phf_generator 0.8.0locally withrandbumped from 0.7 to 0.8, eliminating the vulnerablerand 0.7.3transitive dependency pulled in byselectors 0.24 → phf_codegen 0.8. -
Remove atty: migrated
iroh_test_clientfromstructopt(clap v2) toclap v4derive, dropping the unmaintainedattycrate. -
Dismiss stale Dependabot alerts: dismissed alerts for
crossbeam-deque,crossbeam-utils,crossbeam-queue,memoffset, andglib— all already at patched versions or fixed in fork. -
Update kittentts to 0.4.0: bumped
kittenttsfrom 0.3.0 to 0.4.0 in bothskill-ttsandsrc-tauri. -
Update llama-cpp-4 to 0.2.50: bumped
llama-cpp-4andllama-cpp-sys-4from 0.2.47 to 0.2.50, picking up upstream llama.cpp fixes includingcommon_*symbol renames andllama-common-basestatic library linking. -
Add grayscale crate: added
grayscale 0.0.1as a macOS-only dependency inskill-data.
Contributors
- Eugene Hauptmann
Skill v0.0.128
Changelog
Features
- llmfit
- glib
- notify
- linter
- updTed settings and engine
- muda
- fixed glib with a patch
- refactored UI
- Added unsloth/Qwen3.6-27B-GGUF
Contributors
- Eugene Hauptmann
Skill v0.0.127
Changelog
Features
- Add ANT Neuro eego amplifier family support via the
antneurocrate (native USB backend, no vendor SDK required) - Supported models: eego 8, eego 24, eego 64, eego mylab, eego sport, eego rt, eego hub
- Auto-detect channel count and sample rate from the amplifier on first data block
- Configurable cap layout via Device API settings (
antneuro_cap: auto, 10-20, 10-10, or explicit channel count) - Configurable sample rate via Device API settings (
antneuro_sample_rate: 500, 512, 1000, 2048, etc.) - Waveguard electrode name mappings for 8, 21, 24, 25, 32, and 64-channel cap configurations
- USB scanner auto-detects connected eego amplifiers every other tick
- Device images and company logo for all 7 amplifier models in the Supported Devices catalog
Bugfixes
- Fix PPG and IMU sample counts not being tracked in daemon status (ppg_sample_count/imu_sample_count always stayed at 0)
- Fix
cmd_statusdevice block missingfirmware,ppg_samples, andimu_samplesfields (neuroskill CLI showed nulls) - Fix
format_status_as_textreading stale key names (sample_countinstead ofeeg_samples)
UI
- Improved supported devices card grid: wider columns, taller images with
object-contain, text wraps instead of truncating
Contributors
- Eugene Hauptmann
- dependabot[bot]
Skill v0.0.126
Changelog
Features
- daemon restart on launch
Contributors
- Eugene Hauptmann
Skill v0.0.125
Changelog
Features
- fixed auto connect
Contributors
- Eugene Hauptmann