Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
c9182b4
Refactor and enhance VAD integration for robust speech handling (#14)
Szowesgad Feb 4, 2026
a11692b
(#16) WIP Prepare v0.7.12 release with feature additions and fixes
Szowesgad Feb 6, 2026
10e656f
(#17) Fix UI bugs, optimize hotkeys, and enhance settings layout
Szowesgad Feb 8, 2026
05c9a6b
(#19) Refactor transcription pipeline and improve streaming behavior
Szowesgad Feb 10, 2026
3877d8a
(#20) PR #19 Follow-up: Improve pipeline, UI, connectors, attachments
Szowesgad Feb 12, 2026
ee5d597
(#21) Design , integration and pipelines: Settings+UI+Silero overhaul
Szowesgad Feb 15, 2026
4529e8c
Refactor transcription overlay & add quality probe
Szowesgad Feb 16, 2026
bb4795b
core: disable whisper embedding and require runtime model loading
Szowesgad Feb 16, 2026
fddd61a
Disable degraded VAD flush fallback
Szowesgad Feb 16, 2026
6fdc916
Rename chat overlay to agent; improve onboarding UX
Szowesgad Feb 16, 2026
1ded624
Improve hotkey handling and recorder robustness
Szowesgad Feb 16, 2026
ae75e4e
core/stt: add deterministic single-worker scheduler
Szowesgad Feb 16, 2026
51f831e
Add NoSpeech event, VAD telemetry & STT scheduler
Szowesgad Feb 16, 2026
e405ae2
Capture session telemetry and quality gating
Szowesgad Feb 16, 2026
23cb0f1
Enable pipelined STT, fuzzy dedup, and drains
Szowesgad Feb 17, 2026
0017b65
feat: enhance transcription pipeline with hallucination filtering and…
Szowesgad Feb 17, 2026
12ed198
Add partial-pass telemetry and VAD speech tracking
Szowesgad Feb 17, 2026
faeb7fc
Extend NoSpeech stats & tidy docs
Szowesgad Feb 17, 2026
bc24aba
Supervisor VAD flush and partial-pass fixes
Szowesgad Feb 17, 2026
51bae4d
Fix corner rounding and masking for UI panels
Szowesgad Feb 17, 2026
3c66031
Emit preview diffs and add live transcription logging
Szowesgad Feb 17, 2026
47a10e9
Bump codescribe to v0.7.18
Szowesgad Feb 17, 2026
1de1466
Apply batch VAD for commit lane before inference
Szowesgad Feb 18, 2026
4231adf
Unify setup flow and enhance permissions UI
Szowesgad Feb 18, 2026
7e4b7a8
Drop state lock before permission calls
Szowesgad Feb 18, 2026
a238824
Timestamp-aware overlap dedup and commit VAD
Szowesgad Feb 18, 2026
36485d2
Add User tab and ultra-quality settings
Szowesgad Feb 18, 2026
2be9ed8
Add SHOW_DOCK_ICON preference and handling
Szowesgad Feb 18, 2026
4d80bc1
Refactor settings UI: toolbar, scrollable tabs
Szowesgad Feb 18, 2026
f051370
Use string constant for NSToolbar flexible space
Szowesgad Feb 18, 2026
32e4eaa
Improve overlay sizing, resizing, and decision UI
Szowesgad Feb 18, 2026
4ea83d2
Introduce Tafla surface system & SSE resume
Szowesgad Feb 19, 2026
f0c5ab6
Refactor settings UI spacing and styling
Szowesgad Feb 19, 2026
0dd6d18
Polish UI: adjust glass, colors, and voice chat
Szowesgad Feb 19, 2026
da5f274
Refine overlay/chat UI tokens, layout & styling
Szowesgad Feb 19, 2026
9441933
Restore glass and rework transcription overlay
Szowesgad Feb 19, 2026
7e3e807
Bump version; refactor UI colors and overlay text
Szowesgad Feb 19, 2026
04f7df4
Prevent double CFInvalidate & UI deadlocks
Szowesgad Feb 20, 2026
15358e2
UI/UX review: toggles, settings coexistence, search, selection
Szowesgad Feb 20, 2026
edb5a4e
Improve overlay locking, styling, and SSE safety
Szowesgad Feb 20, 2026
71a42cc
Add sound volume support and refine settings UI
Szowesgad Feb 20, 2026
eabe8e4
Drop buffered_stream flag and tune preview
Szowesgad Feb 21, 2026
9f849a5
Add quality_daemon_autostart setting and migration
Szowesgad Feb 21, 2026
55c7bbf
Update semgrep.yml
Szowesgad Feb 21, 2026
0a63ecd
Add objc_class helper and replace Class::get
Szowesgad Feb 22, 2026
3d302ca
Migrate to mode-specific LLM env vars
Szowesgad Feb 22, 2026
02d6e03
Add show_dock_icon; improve streaming timeouts
Szowesgad Feb 22, 2026
6c519d0
refactor(llm): extract responses streaming manager
Szowesgad Feb 22, 2026
3f2d5da
test: enforce strict 8089 responses probes and auth-aware model disco…
Szowesgad Feb 22, 2026
d0c91a4
ui: show llm runtime status in engine tab from settings store
Szowesgad Feb 22, 2026
7ec5f2e
Add Apple STT bridge and improve glass UI
Szowesgad Feb 23, 2026
f456481
Add Silero silence-gate and VAD-first buffering
Szowesgad Feb 23, 2026
4618602
Remove legacy env flags and add VAD cache
Szowesgad Feb 23, 2026
ff1f856
Hardcode Silero VAD defaults and remove ENV knobs
Szowesgad Feb 23, 2026
54c8b14
Add mode shortcut bindings and macOS checks
Szowesgad Feb 23, 2026
8b311b6
Refactor hotkeys UI and mode binding logic
Szowesgad Feb 23, 2026
7f23bba
Add hotkey conflict details button and sheet
Szowesgad Feb 23, 2026
a8b8414
Revamp settings UI tabs and tray menu
Szowesgad Feb 23, 2026
d58b94d
Refresh dashboards and add prompt editor functionality
Szowesgad Feb 23, 2026
a189fa4
Add clipboard and selection tools, enhance diagnostics and prompt han…
Szowesgad Feb 23, 2026
83ab2e1
Integrate OpenAI agent, tools, and environment configurations
Szowesgad Feb 23, 2026
e4cddbc
Add new core modules, enhance serialization, and remove unused code
Szowesgad Feb 23, 2026
36c52a7
Validate and sanitize endpoint URLs in streaming manager
Szowesgad Feb 23, 2026
87ad73b
Revamp tray menu structure and adjust VAD defaults
Szowesgad Feb 23, 2026
0d471a4
Migrate hotkeys to mode-first bindings
Szowesgad Feb 23, 2026
1e6d4a8
Refactor hotkey engine to use mode bindings as central source of truth
Szowesgad Feb 23, 2026
65714a5
feat(agent): wire Agent 2.0 runtime and thread-backed drawer
Szowesgad Feb 23, 2026
4c3f77e
feat(drawer): strengthen thread search corpus and history loading
Szowesgad Feb 23, 2026
14baf58
feat(agent-2.0): close P0/P1/P2 runtime-thread integration
Szowesgad Feb 23, 2026
74ad928
fix(agent-2.0): align assistive routing with shared runtime helper
Szowesgad Feb 23, 2026
52b545f
Bump v0.8.0; refactor runtime, recorder, hotkeys
Szowesgad Feb 24, 2026
02fa86b
[ok-commit] ship: harden overlay recovery and agent stream startup
Szowesgad Feb 27, 2026
64c8f3c
[ok-commit] ship: close remaining recovery and tooling polish
Szowesgad Feb 27, 2026
49c43c4
[ok-commit] ship: close governance and package metadata gaps
Szowesgad Feb 27, 2026
84b33b4
[ok-commit] decorate+hydrate: add production landing showcase and SEO…
Szowesgad Feb 27, 2026
172dd44
Format docs and prettify landing page
Szowesgad Feb 27, 2026
a58f988
[ok-commit] ship: harden config migration and wire shipping surface
Szowesgad Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 12 additions & 13 deletions .env.debug.example
Original file line number Diff line number Diff line change
Expand Up @@ -77,34 +77,34 @@ AI_FORMATTING_ENABLED=1
# AI_PROVIDER=harmony # legacy (harmony|ollama)
# AI_MAX_TOKENS=0 # 0 = no limit
# AI_ASSISTIVE_MAX_TOKENS=0 # 0 = no limit
TRANSCRIPT_SEND_MODE=end_of_utterance # end_of_utterance | streaming

# end_of_utterance | streaming:
TRANSCRIPT_SEND_MODE=end_of_utterance

# Retry policy for AI calls
# CODESCRIBE_AI_MAX_RETRIES=2
# CODESCRIBE_AI_RETRY_DELAY_MS=500
# CODESCRIBE_AI_ATTEMPT_TIMEOUT_MS=5000
# CODESCRIBE_AI_OLLAMA_ATTEMPT_TIMEOUT_MS=5000

# =============================================================================
# STREAMING / CHUNKING / BUFFERED MODE (IMPORTANT)
# =============================================================================
CODESCRIBE_STREAM_CHUNK_SEC=15.0 # Chunk size in seconds (0.5..30)
CODESCRIBE_STREAM_CHUNK_SEC=4.0 # Chunk size in seconds (0.5..30)
CODESCRIBE_STREAM_OVERLAP_RATIO=0.25 # Overlap ratio (0.05..0.8) of chunk size
CODESCRIBE_BUFFERED_STREAM=1 # 1 enables VAD buffered mode (default)
CODESCRIBE_BUFFER_DELAY_MS=3000 # Delay before emitting buffered text
CODESCRIBE_TYPING_CPS=30 # Emission speed in buffered mode
# CODESCRIBE_EVENT_PIPELINE=0 # 1 enables event-based pipeline (experimental)
CODESCRIBE_BUFFER_DELAY_MS=1800 # Delay before emitting buffered text
CODESCRIBE_TYPING_CPS=36 # Emission speed in buffered mode

# VAD for buffered mode (Silero neural network)
CODESCRIBE_VAD_THRESHOLD=0.5
CODESCRIBE_VAD_MIN_SPEECH_SEC=0.1
CODESCRIBE_VAD_MAX_SILENCE_SEC=1.2
CODESCRIBE_VAD_MAX_UTTERANCE_SEC=60
CODESCRIBE_VAD_PRE_ROLL_SEC=0.3
# VAD internals are hardcoded in core/vad/config.rs (Silero defaults).

# =============================================================================
# STREAM POSTPROCESS (REPETITION / GATING)
# =============================================================================
# CODESCRIBE_STREAM_SIMILARITY=0.90 # similarity threshold
# CODESCRIBE_STREAM_NOVELTY=0.20 # novelty threshold
# CODESCRIBE_STREAM_SIMILARITY=0.93 # similarity threshold
# CODESCRIBE_STREAM_NOVELTY=0.12 # novelty threshold
# CODESCRIBE_STREAM_DISABLE_EMBEDDINGS=0

# =============================================================================
Expand All @@ -131,7 +131,7 @@ HOLD_START_DELAY_MS=800
# UI / OVERLAYS / FEEDBACK
# =============================================================================
SHOW_TRAY_GLYPH=1
HOLD_INDICATOR=1 # bool (legacy string values ignored)
HOLD_INDICATOR=1# bool (legacy string values ignored)
HOLD_BADGE_SIZE=12
HOLD_BADGE_OFFSET_X=10
HOLD_BADGE_OFFSET_Y=-10
Expand All @@ -158,7 +158,6 @@ DUMP_AUDIO_LOGS=1
# =============================================================================
# QUALITY LOOP / REPORTING
# =============================================================================
# QUALITY_DEBUG_MODE=1
# CODESCRIBE_QUALITY_DISABLE_CLOUD=1

# =============================================================================
Expand Down
173 changes: 151 additions & 22 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,43 +1,172 @@
# CodeScribe .env (minimal + recommended)
# Source of truth: docs/env.md
# CodeScribe .env (power-user overrides)
# Priority: env vars > ~/.codescribe/.env > settings.json
# Copy: cp .env.example ~/.codescribe/.env

# =============================================================================
# LOCAL EMBEDDED (RECOMMENDED)
# CORE STT (LOCAL BY DEFAULT)
# =============================================================================
USE_LOCAL_STT=1
WHISPER_LANGUAGE=pl
LOCAL_MODEL=whisper-large-v3-turbo-mlx-q8
# WHISPER_LANGUAGE=pl
# CODESCRIBE_WHISPER_INITIAL_PROMPT=CodeScribe, LibraxisAI, Docker, GitHub
# WHISPER_INITIAL_PROMPT=... # legacy alias
# CODESCRIBE_MODEL_PATH=/path/to/whisper/model # dev override

# =============================================================================
# AI FORMATTING (OPTIONAL)
# CLOUD STT (OPTIONAL)
# =============================================================================
# AI_FORMATTING_ENABLED=1
# USE_LOCAL_STT=0
# STT_ENDPOINT=https://api.libraxis.cloud/v1/audio/transcriptions
# STT_API_KEY=...
# CODESCRIBE_LOOP_USE_CLOUD_STT=1 # quality loop only

# =============================================================================
# HOTKEYS
# =============================================================================
HOLD_MODS=fn
HOLD_EXCLUSIVE=1
TOGGLE_TRIGGER=double_option
HOLD_START_DELAY_MS=800
DOUBLE_TAP_INTERVAL_MS=200
TOGGLE_SILENCE_SEC=5.0
# HOTKEY_DOUBLE_TAP_LEFT=0 # legacy (auto-migrated to TOGGLE_TRIGGER)
# HOTKEY_DOUBLE_TAP_RIGHT=0 # legacy (auto-migrated to TOGGLE_TRIGGER)

# =============================================================================
# OVERLAY / UI
# =============================================================================
OVERLAY_POSITION_MODE=snapped_top_right
# OVERLAY_CUSTOM_X=0
# OVERLAY_CUSTOM_Y=0
SHOW_TRAY_GLYPH=1
SHOW_DOCK_ICON=1
HOLD_INDICATOR=1
HOLD_BADGE_SIZE=8
HOLD_BADGE_OFFSET_X=10
HOLD_BADGE_OFFSET_Y=-10

# =============================================================================
# AUDIO + SOUND
# =============================================================================
AUTO_SILENCE=0
BEEP_ON_START=1
SOUND_NAME=Tink
SOUND_VOLUME=0.25
# AUDIO_INPUT_DEVICE=Built-in Microphone

# =============================================================================
# CLIPBOARD + HISTORY
# =============================================================================
RESTORE_CLIPBOARD=1
RESTORE_CLIPBOARD_DELAY_MS=1000
HISTORY_ENABLED=1
DUMP_AUDIO_LOGS=1

# =============================================================================
# QUICK NOTES
# =============================================================================
QUICK_NOTES_ENABLED=0
QUICK_NOTES_SAVE_ONLY=0
# CODESCRIBE_NOTES_DIR=~/Git/vista/notes

# =============================================================================
# AI FORMATTING / ASSISTIVE
# =============================================================================
AI_FORMATTING_ENABLED=1
TRANSCRIPT_SEND_MODE=streaming # streaming | full
# AI_MAX_TOKENS=1200
# AI_ASSISTIVE_MAX_TOKENS=2000

# Shared LLM defaults
# LLM_ENDPOINT=https://api.openai.com/v1/responses
# LLM_MODEL=gpt-4.1-mini
# LLM_API_KEY=sk-...
# LLM_TEMPERATURE=0.2
LLM_USE_STREAMING=1

# Formatting overrides (optional)
# LLM_FORMATTING_ENDPOINT=
# LLM_FORMATTING_MODEL=
# LLM_FORMATTING_API_KEY=
# Retry/timeout policy
# CODESCRIBE_AI_MAX_RETRIES=3
# CODESCRIBE_AI_RETRY_DELAY_MS=2000
# CODESCRIBE_AI_ATTEMPT_TIMEOUT_MS=30000
# CODESCRIBE_AI_OLLAMA_ATTEMPT_TIMEOUT_MS=5000
# CODESCRIBE_AI_INTER_CHUNK_TIMEOUT_MS=30000
# CODESCRIBE_AI_CLIENT_TIMEOUT_MS=90000
# CODESCRIBE_AI_CONNECT_TIMEOUT_MS=5000
# CODESCRIBE_AI_POOL_IDLE_TIMEOUT_MS=90000
# CODESCRIBE_AI_TCP_KEEPALIVE_MS=30000

# Assistive overrides (optional)
# LLM_ASSISTIVE_ENDPOINT=
# LLM_ASSISTIVE_MODEL=
# Assistive overrides
# LLM_ASSISTIVE_ENDPOINT=https://api.openai.com/v1/responses
# LLM_ASSISTIVE_MODEL=gpt-5.2
# LLM_ASSISTIVE_API_KEY=
# LLM_ASSISTIVE_TEMPERATURE=0.3

# Formatting overrides
# LLM_FORMATTING_ENDPOINT=http://localhost:11434/v1/responses
# LLM_FORMATTING_MODEL=llama3.2
# LLM_FORMATTING_API_KEY=
# LLM_FORMATTING_TEMPERATURE=0.1

# =============================================================================
# CLOUD STT (OPTIONAL, CLOUD-ONLY)
# ASSISTIVE CONTEXT CAPTURE
# =============================================================================
# USE_LOCAL_STT=0
# STT_ENDPOINT=https://api.libraxis.cloud/v1/audio/transcriptions
# STT_API_KEY=...
# ASSISTIVE_CONTEXT_MAX_CHARS=20000
# ASSISTIVE_CONTEXT_COPY_DELAY_MS=150

# =============================================================================
# ATTACHMENTS / OCR
# =============================================================================
# CODESCRIBE_ATTACH_PDF_OCR=1
# CODESCRIBE_ATTACH_PDF_OCR_LANG=pol+eng
# CODESCRIBE_ATTACH_PDF_PAGES=3
# CODESCRIBE_DRAWER_INCLUDE_LEGACY=0

# =============================================================================
# STREAMING / POSTPROCESS
# =============================================================================
# Buffered (magic) tuning
# CODESCRIBE_BUFFERED_INTERIM_SEC=1.2
# CODESCRIBE_BUFFERED_CORRECTION_PREFIX=0.50
CODESCRIBE_STREAM_CHUNK_SEC=2.0
CODESCRIBE_STREAM_OVERLAP_RATIO=0.25
# CODESCRIBE_BUFFER_DELAY_MS=280
# CODESCRIBE_TYPING_CPS=90
# CODESCRIBE_EMIT_WORDS_MAX=2
CODESCRIBE_STREAM_SIMILARITY=0.90
CODESCRIBE_STREAM_NOVELTY=0.20
# CODESCRIBE_STREAM_DISABLE_EMBEDDINGS=1
# CODESCRIBE_STREAM_FORCE_EMBEDDINGS=1
# CODESCRIBE_STREAM_LEXICON=1
# CODESCRIBE_STREAM_LOG=1
# CODESCRIBE_STREAM_LOG_PATH=/tmp/codescribe_stream.log

# =============================================================================
# VAD (SILERO)
# =============================================================================
# VAD internals are hardcoded in core/vad/config.rs (Silero defaults).

# =============================================================================
# PATHS / STORAGE (ADVANCED)
# =============================================================================
# CODESCRIBE_DATA_DIR=/custom/data/dir
# CODESCRIBE_ENV_PATH=/custom/.env

# =============================================================================
# EMBEDDER (E5) - RUNTIME OVERRIDES
# =============================================================================
# CODESCRIBE_EMBEDDER_PATH=/path/to/e5
# CODESCRIBE_EMBEDDER_REPO=intfloat/multilingual-e5-small

# =============================================================================
# BUILD-TIME EMBEDDING (RELEASE ONLY)
# =============================================================================
# CODESCRIBE_NO_EMBED=1
# CODESCRIBE_EMBED_MODEL=whisper-large-v3-turbo-mlx-q8
# CODESCRIBE_EMBED_TTS=1
# CODESCRIBE_TTS_PATH=/path/to/tts

# =============================================================================
# STREAMING TUNING (OPTIONAL)
# LOGGING (OPTIONAL)
# =============================================================================
# CODESCRIBE_STREAM_CHUNK_SEC=12
# CODESCRIBE_STREAM_OVERLAP_RATIO=0.25
# CODESCRIBE_STREAM_SIMILARITY=0.90
# CODESCRIBE_STREAM_NOVELTY=0.20
# RUST_LOG=info
# LOG_LEVEL=error
44 changes: 44 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
name: Bug report
about: Report a reproducible defect in CodeScribe
title: "[bug] "
labels: ["bug", "triage"]
assignees: []
---

## Summary

Describe the defect in one or two sentences.

## Environment

- CodeScribe version:
- macOS version:
- Device (Apple Silicon model):
- Install mode (`make install`, `.app`, other):

## Steps to Reproduce

1.
2.
3.

## Expected Behavior

What should happen?

## Actual Behavior

What happened instead?

## Logs / Diagnostics

Attach relevant logs and output:

- `codescribe -v` output
- `codescribe-run.log` / `codescribe-debug.log`
- screenshots if UI/overlay related

## Additional Context

Any other details that may help reproduction.
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Security vulnerability
url: mailto:security@vetcoders.io
about: Report security issues privately by email
- name: Team contact
url: mailto:hello@vetcoders.io
about: General project contact
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: Feature request
about: Propose an improvement or new capability
title: "[feature] "
labels: ["enhancement", "triage"]
assignees: []
---

## Problem to Solve

What workflow is currently difficult or blocked?

## Proposed Solution

Describe the behavior you want.

## Alternatives Considered

What other options did you evaluate?

## Value / Impact

Who benefits and how?

## Scope

- [ ] Core runtime
- [ ] Agent / overlay
- [ ] Settings UI
- [ ] Packaging / distribution
- [ ] Documentation

## Additional Notes

Mockups, references, or constraints.
40 changes: 40 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Landing Pages

on:
push:
branches: [main, develop]
paths:
- "docs/landing/**"
- ".github/workflows/pages.yml"
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: true

jobs:
build:
name: Build landing artifact
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/configure-pages@v5
- uses: actions/upload-pages-artifact@v3
with:
path: docs/landing

deploy:
name: Deploy landing
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- id: deployment
uses: actions/deploy-pages@v4
Loading
Loading