Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1312 commits
Select commit Hold shift + click to select a range
54a8751
feat: configurable terminal hotkeys, search, font size, and pane splits
0xSero Jul 8, 2026
6be54d1
fix: decouple agent browser tools from panel state and widen chromium…
0xSero Jul 8, 2026
24867f2
feat: cap workspace splits at three columns by two rows
0xSero Jul 8, 2026
3dec544
fix: clamp restored workspace layouts to the split grid cap
0xSero Jul 8, 2026
8f84a99
test: cover terminal splits, grid caps, chat isolation, and keybinds
0xSero Jul 8, 2026
9e23009
perf: stop syncing transcript and session caches through durable ui p…
0xSero Jul 8, 2026
c238f0e
fix: keep controller credentials out of remote ui preference sync
0xSero Jul 8, 2026
0b00611
perf: split transcript crash cache into per-session keys
0xSero Jul 8, 2026
5f1729b
test: cover per-session transcript cache
0xSero Jul 8, 2026
65d8d0c
perf: mount sidebar terminal owners lazily on first activation
0xSero Jul 8, 2026
73f2594
feat: let sidechats pick their own model
0xSero Jul 8, 2026
10524ca
fix: register xml grammar so html files highlight
0xSero Jul 8, 2026
1d63131
fix: open sidebar sessions in place instead of hard page reloads
0xSero Jul 8, 2026
00c8d74
feat: infer model family avatars for local recipe ids
0xSero Jul 8, 2026
40cdb7e
fix: drop stale replay drains when a pane swaps sessions
0xSero Jul 8, 2026
52e332f
test: guard replay queue against stale pane handles
0xSero Jul 8, 2026
9ac7633
fix: fall back through avatar owner candidates for local model paths
0xSero Jul 8, 2026
7192e00
test: align terminal pane navigation tests with chat isolation
0xSero Jul 9, 2026
eae9167
test: align e2e suite with removed hard-nav fallback and replay handl…
0xSero Jul 9, 2026
2cfa5d9
feat: surface terminals as sidebar sessions and keep them across navi…
0xSero Jul 9, 2026
184e5d8
perf: warm-start the projects list from a localStorage cache
0xSero Jul 9, 2026
27d8059
fix: speed up desktop terminal startup
0xSero Jul 9, 2026
035b5ae
fix: open chat rows without terminal panes
0xSero Jul 9, 2026
0c29da9
perf: defer agent shell work on app pages
0xSero Jul 9, 2026
415abd3
perf: lazy load markdown-heavy UI
0xSero Jul 9, 2026
d0e24ca
perf: split shared UI boot code
0xSero Jul 9, 2026
7421066
perf: defer agent timeline renderer
0xSero Jul 9, 2026
8bc4cc8
perf: delay sidebar session hydration
0xSero Jul 9, 2026
8e7afa1
perf: remove page-load agent and proxy drag
0xSero Jul 9, 2026
9afa4e2
perf: stop sidebar prefetch and duplicate dashboard recipes
0xSero Jul 9, 2026
8a88406
fix: keep terminal panes out of chat session lists
0xSero Jul 9, 2026
3b99d11
perf: defer agent tool effects from root app
0xSero Jul 9, 2026
4b424d1
test: add frontend perf budget audit
0xSero Jul 9, 2026
d7df212
fix: release test commits as patches
0xSero Jul 9, 2026
32a31ea
test: add browser perf budget audit
0xSero Jul 9, 2026
7ef949e
fix: keep past sessions single-pane
0xSero Jul 9, 2026
2793333
test: discover routes in performance audits
0xSero Jul 9, 2026
3452b2a
feat: add landing and setup pages
0xSero Jul 9, 2026
b58a511
docs: preserve serve pipeline design baseline
0xSero Jul 9, 2026
97d18b5
refactor: make serve runtime explicit
0xSero Jul 9, 2026
425cf03
refactor: launch vllm from serve runtime
0xSero Jul 9, 2026
ed37884
feat: unify models into serve pipeline
0xSero Jul 9, 2026
28db3b0
feat: turn status into command center
0xSero Jul 9, 2026
5ca5901
feat: guide first run into a verified serve
0xSero Jul 9, 2026
c945cc1
test: align launch integration with serve runtimes
0xSero Jul 9, 2026
c4ac996
fix: stop dashboard recipe refresh loop
0xSero Jul 9, 2026
829c450
fix: restore dashboard visual language
0xSero Jul 9, 2026
ea8d494
fix: make new workspaces predictable
0xSero Jul 9, 2026
d2a78c6
fix: keep dashboard state through reconnects
0xSero Jul 9, 2026
cdcb726
feat: promote workbench and integrations
0xSero Jul 9, 2026
afe3ea8
feat: discover codex-compatible plugins
0xSero Jul 9, 2026
2ca5dfa
feat: activate plugins in observe mode
0xSero Jul 9, 2026
df03ae0
feat: connect google workspace plugins
0xSero Jul 10, 2026
ebee81a
feat: configure explicit vision input
0xSero Jul 10, 2026
3c7da56
fix: keep recipe status out of engine args
0xSero Jul 10, 2026
6d6e001
feat: expose stable gpu identities
0xSero Jul 10, 2026
2f40e00
fix: preserve binary proxy transport
0xSero Jul 10, 2026
ad3402b
feat: encrypt local voice profiles
0xSero Jul 10, 2026
2c4149b
feat: isolate gpu capability leases
0xSero Jul 10, 2026
eb507ca
feat: validate voice reference audio
0xSero Jul 10, 2026
0fb1c1c
feat: guard model launches by gpu lease
0xSero Jul 10, 2026
dd4d358
feat: confine desktop microphone access
0xSero Jul 10, 2026
31b700a
feat: declare trusted speech plugin
0xSero Jul 10, 2026
de84c7d
fix: enforce isolated gpu ownership
0xSero Jul 10, 2026
4626a34
fix: bound streamed proxy transport
0xSero Jul 10, 2026
35b8c6a
fix: quote docker multi-gpu selectors
0xSero Jul 10, 2026
fa8ea94
fix: fail closed on gpu workload overlap
0xSero Jul 10, 2026
8a252d5
feat: manage isolated chatterbox voice
0xSero Jul 10, 2026
50f97fa
feat: configure local voice cloning
0xSero Jul 10, 2026
c7dacca
fix: restart the managed remote controller
0xSero Jul 10, 2026
e5f5564
fix: prevent legacy controller restarts
0xSero Jul 10, 2026
3a349b1
refactor: make terminals task-owned
0xSero Jul 10, 2026
e1b3d85
perf: make usage analytics load immediately
0xSero Jul 10, 2026
cd4f554
refactor: refine model search rows
0xSero Jul 10, 2026
61e8ed8
refactor: simplify agent session ownership
0xSero Jul 10, 2026
26b984e
refactor: align settings and surfaces with codex
0xSero Jul 10, 2026
8992f81
refactor: consolidate shortcuts and system settings
0xSero Jul 10, 2026
fff0d45
feat(privacy): censor controller urls
0xSero Jul 10, 2026
4d3aa79
refactor: solidify popup surfaces
0xSero Jul 10, 2026
6e9f738
refactor: elevate agent model picker
0xSero Jul 10, 2026
d8316e7
refactor: remove translucent surfaces
0xSero Jul 10, 2026
0b2e1cd
fix: recover invalid agent continuations
0xSero Jul 10, 2026
aad56a7
refactor: unify agent session activity
0xSero Jul 10, 2026
6731d31
feat: refine agent code surfaces
0xSero Jul 10, 2026
8cdd938
perf: tune route asset budgets
0xSero Jul 10, 2026
fd79337
fix: surface Hermes local agent target
0xSero Jul 10, 2026
f887a32
fix: preserve filesystem syntax context
0xSero Jul 10, 2026
6d56eb9
fix(security): route homelab clients through tailnet
0xSero Jul 10, 2026
1383acf
fix: preserve active session history
0xSero Jul 10, 2026
e77e56f
refactor: simplify composer model menu
0xSero Jul 10, 2026
e9046f9
refactor: keep task errors in the timeline
0xSero Jul 10, 2026
b4306e1
Merge pull request #176 from sybil-solutions/sol
0xSero Jul 10, 2026
248153a
refactor: align interface typography with codex (#177)
0xSero Jul 10, 2026
b7677d6
refactor: share extra argument serialization (#179)
lubluniky Jul 12, 2026
521dd80
feat(agent): read-only context/artifact inspector panel (#166)
OnlyTerp Jul 12, 2026
ab22d11
fix(controller): resolve binaries cross-platform via Bun.which
luminary19 Jul 9, 2026
1adcdb4
fix(controller): sanitize quoted PATH entries in binary search
luminary19 Jul 9, 2026
41a0bc4
fix(controller): rename restoreEnv per lint rule
0xSero Jul 12, 2026
e956b02
fix: keep long agent tool streams alive
0xSero Jul 12, 2026
4a3034a
ci: run repo-level contract/structure gates in CI; fix stale docs
0xSero Jul 12, 2026
932e61c
chore: align cleanup-tool configs and drop root scratch file
0xSero Jul 12, 2026
2031552
test: rename misnamed e2e suites to regression; gate frontend tests i…
0xSero Jul 12, 2026
5cace2b
refactor: define AggregatedSession once in shared/agent
0xSero Jul 12, 2026
054c48b
refactor(controller): collapse per-backend upgrade routes into /runti…
0xSero Jul 12, 2026
02c4dcf
refactor(controller): one process-inventory parser behind the Process…
0xSero Jul 12, 2026
07178d3
docs: update professionalize-loop ledger through I6
0xSero Jul 12, 2026
28cf872
feat(ui): retheme design tokens — unified charcoal canvas, hairline b…
0xSero Jul 12, 2026
8e8d83d
refactor(frontend): canonical session-status module; tighten SessionS…
0xSero Jul 12, 2026
a6b3dd3
docs: ledger through I8 with deliberate-skip rationale
0xSero Jul 12, 2026
92638c8
feat(ui): restyle sidebar navigation — taller rounded rows, overlay h…
0xSero Jul 12, 2026
6020948
feat(ui): restyle chat pane — activity rows, disclosures, header, use…
0xSero Jul 12, 2026
cb3ef5b
feat(ui): restyle composer — circular utility buttons, popover elevat…
0xSero Jul 12, 2026
d350a86
refactor(controller): move engine-specific helpers out of backend-bui…
0xSero Jul 12, 2026
bda7591
docs: ledger through I9
0xSero Jul 12, 2026
4b70acd
feat(ui): restyle shared primitives — pill buttons, translucent input…
0xSero Jul 12, 2026
b2c2aa2
docs: correct stale claims in AGENTS.md and package READMEs
0xSero Jul 12, 2026
e0e763a
feat(ui): sweep feature surfaces — unified popover elevation, semanti…
0xSero Jul 12, 2026
8e00219
test(controller): end-to-end chat proxy forwarding coverage
0xSero Jul 12, 2026
252add4
refactor(controller): decompose the chat-completions handler into nam…
0xSero Jul 12, 2026
fe05dc8
fix(ui): align runtime theme bootstrap with new palette — themes-data…
0xSero Jul 12, 2026
09947a9
refactor(frontend): split chatterbox voice modal into section components
0xSero Jul 12, 2026
0607f52
refactor(frontend): split left sidebar into nav/desktop/mobile sections
0xSero Jul 12, 2026
d1ddf13
docs: ledger through I12 incl. stash-resurrection incident note
0xSero Jul 12, 2026
232e97b
refactor(controller): split engines god-router into concern registrars
0xSero Jul 12, 2026
df6ff66
docs: seed CONTEXT.md with the repo's domain language
0xSero Jul 12, 2026
3612098
refactor(frontend): split git diff panel into workflow and diff-view …
0xSero Jul 12, 2026
f813432
refactor(frontend): extract recipe modal model, source helpers, summa…
0xSero Jul 12, 2026
e56194d
docs: ledger through I15
0xSero Jul 12, 2026
e6d9cf6
refactor(frontend): tools module owns tool-selection persistence
0xSero Jul 12, 2026
3e6f322
docs: ledger through I17 (PR #181 open)
0xSero Jul 12, 2026
655b38e
refactor(frontend): split google account modal into setup/connected/l…
0xSero Jul 12, 2026
f65b51a
refactor(frontend): extract setup wizard load and action helpers from…
0xSero Jul 13, 2026
61217f8
docs: close professionalize-loop ledger
0xSero Jul 13, 2026
1ff779d
fix(build): normalize path separators in the shared-contracts check (…
luminary19 Jul 13, 2026
56f691f
fix(controller): parse the CUDA UMD version banner from newer drivers…
luminary19 Jul 13, 2026
9f79742
fix(controller): use per-user models dir and OS temp dir defaults on …
luminary19 Jul 13, 2026
d1f60fa
fix(build): make repo bootstrap cross-platform (services link junctio…
luminary19 Jul 13, 2026
b2ab3f8
refactor(frontend): one landing page — fold agents page into landing …
0xSero Jul 13, 2026
1e878d6
Merge remote-tracking branch 'origin/main' into loop/professionalize
0xSero Jul 13, 2026
404166b
Merge pull request #181 from sybil-solutions/loop/professionalize
0xSero Jul 13, 2026
a8f1f39
fix(ui): denser sidebar nav — 13px labels, 16px icons, h-8 rows; reve…
0xSero Jul 13, 2026
f1499fc
feat(agent): drag-reorder sidebar projects and Projects/Tasks section…
0xSero Jul 13, 2026
5f07d24
fix(agent): keep model submenu selection stable
0xSero Jul 13, 2026
3fba1c1
refactor: controller owns its API contract — shared/contracts becomes…
0xSero Jul 13, 2026
80dad78
refactor(controller): bring integration tests and support inside the …
0xSero Jul 13, 2026
5e46e80
Merge pull request #191 from sybil-solutions/refactor/controller-package
0xSero Jul 13, 2026
34b51b7
fix(ui): smaller sidebar icons, borderless elevated composer, normali…
0xSero Jul 13, 2026
410ea32
feat(agent): in-pane terminals, sidebar Terminals section, upgraded t…
0xSero Jul 13, 2026
a8d2480
fix(ui): systematize border and highlight logic
0xSero Jul 13, 2026
24ee5d9
fix(ui): 20px left padding for the session tab in the chat pane header
0xSero Jul 13, 2026
d9c1ceb
Merge branch 'claude/codex-ui-chatgpt-style-c0c951'
0xSero Jul 13, 2026
72a3374
fix(agent): stream side chat responses live
0xSero Jul 14, 2026
ac04892
fix(controller): reject malformed transcription uploads with a 400
luminary19 Jul 10, 2026
6f6dfa6
fix(controller): size single-file gguf models in the vram calculator
luminary19 Jul 10, 2026
bfca21b
fix(downloads): prevent backpressure listener leaks
lubluniky Jul 13, 2026
2865bb5
fix(agent): stop embedded browser refresh loops
0xSero Jul 14, 2026
2021b8b
micro: quiet chat session hierarchy
0xSero Jul 15, 2026
367a88a
fix: repair plugin tools after bundle updates
0xSero Jul 15, 2026
d99a58c
fix: repair prompt preview popup
0xSero Jul 15, 2026
6ca708e
fix: restore complete lifetime usage totals
0xSero Jul 15, 2026
702f6ca
refactor: simplify usage into a lifetime profile
0xSero Jul 15, 2026
24206c0
micro: align tool rows and prompt rail
0xSero Jul 15, 2026
4f86083
fix: make controller lifetime usage canonical
0xSero Jul 15, 2026
a5dde01
micro: add quiet surface levels to status
0xSero Jul 15, 2026
ecb2172
fix: restore the status page layout
0xSero Jul 15, 2026
539b02b
refactor: turn configure into guided setup
0xSero Jul 15, 2026
8897dfa
refactor: adopt project-style configure flow
0xSero Jul 15, 2026
766a296
refactor: remove marketing site from app
0xSero Jul 16, 2026
6b0ab7b
feat: expand quick panel from compact composer
0xSero Jul 16, 2026
73a5e4f
fix: refine quick panel window controls
0xSero Jul 16, 2026
14d8950
fix: auto-replay restored agent panes on focus
0xSero Jul 16, 2026
2e2e487
fix: non-destructive chat history hydration on revisit
0xSero Jul 16, 2026
b512000
fix: dedupe concurrent session replays
0xSero Jul 16, 2026
4274dae
fix: skip runtime status patches during session replay
0xSero Jul 16, 2026
5a3586e
fix: seed transcript cache at turn start and on session exit
0xSero Jul 16, 2026
aaf19c7
test: cover non-destructive replay message reconciliation
0xSero Jul 16, 2026
e357fb4
fix: default usage view to agent sessions
0xSero Jul 16, 2026
951eaf9
refactor: extract TabbedPage into the UI kit
0xSero Jul 16, 2026
a5c8f49
micro: add dense composer variant and drop thread pane border
0xSero Jul 16, 2026
f0cf703
fix: make session navigation identity-safe
0xSero Jul 16, 2026
d10dd97
docs: clean product site hero and refresh download notes
0xSero Jul 16, 2026
614d9b0
refactor: consolidate workspace configuration
0xSero Jul 16, 2026
17c9329
test: align transcript crash recovery contract
0xSero Jul 16, 2026
9dc3ff7
docs: prune stale planning artifacts
0xSero Jul 16, 2026
27cc6c2
ci: deploy product site from main
0xSero Jul 16, 2026
00de5d1
micro: remove stale lint suppression
0xSero Jul 16, 2026
64aff48
feat: codexify session sidebar
0xSero Jul 16, 2026
6e75297
fix: preserve right sidebar state
0xSero Jul 16, 2026
f8b3182
fix: isolate async session updates
0xSero Jul 16, 2026
e06100e
fix: reject stale session navigation
0xSero Jul 16, 2026
35e84f8
fix: prevent terminal glyph corruption
0xSero Jul 16, 2026
6a6b295
fix: persist session drafts by identity
0xSero Jul 16, 2026
4fa5c6e
fix: persist per-session workspace views
0xSero Jul 16, 2026
1a71bae
fix: make session adoption atomic
0xSero Jul 16, 2026
09fc192
perf: isolate workspace pane renders
0xSero Jul 16, 2026
672fb64
micro: remove unused pane selector
0xSero Jul 16, 2026
8206f00
refactor: validate durable controller preferences
0xSero Jul 16, 2026
e7e2fed
fix: harden v2 runtime dependencies
0xSero Jul 16, 2026
7ab1873
release!: prepare Local Studio 2.0.0
0xSero Jul 16, 2026
481ec8f
docs: document the Local Studio 2.0 surface
0xSero Jul 16, 2026
4ef40ff
build: support Electron 43 desktop releases
0xSero Jul 16, 2026
41b9a5a
fix: exclude desktop artifacts from standalone builds
0xSero Jul 16, 2026
07be5be
fix: align desktop updater asset names [skip ci]
0xSero Jul 16, 2026
351e1cc
fix: ship complete agent runtime dependencies
0xSero Jul 16, 2026
886f269
docs: simplify agent instructions
0xSero Jul 17, 2026
bfa3097
refactor(agent): make runtime sidecar canonical
0xSero Jul 17, 2026
c42511e
test: replace shallow checks with recorded e2e
0xSero Jul 17, 2026
4a16109
fix: stabilize follow-up chat submission
0xSero Jul 17, 2026
6ac95e2
fix: make app routes immediately testable
0xSero Jul 17, 2026
ee9c594
ci: gate releases on validated commits
fettpl Jul 17, 2026
3d0270f
fix: restore frontend quality gate
fettpl Jul 17, 2026
5290e92
refactor(controller): establish effect runtime boundary
0xSero Jul 18, 2026
2c33604
fix(controller): fail fast on runtime startup errors
0xSero Jul 18, 2026
4b77400
refactor(controller): migrate engine lifecycle to effect
0xSero Jul 18, 2026
b477004
refactor(controller): migrate system services to effect
0xSero Jul 18, 2026
0d300c9
refactor(controller): compose scoped effect runtime
0xSero Jul 18, 2026
78bf090
fix(controller): scope engine shutdown to owned processes
0xSero Jul 18, 2026
b24b660
fix(frontend): refine composer controls and project picker
0xSero Jul 18, 2026
41db915
feat(agent): persist the default model
0xSero Jul 18, 2026
c6508d4
fix(controller): preserve engine ownership across restarts
0xSero Jul 18, 2026
5e6dbb5
fix: redact persisted controller secrets
fettpl Jul 17, 2026
52b99e6
refactor(runtime): use canonical protocol utilities
0xSero Jul 18, 2026
2b1ec26
refactor(http): derive controller route contracts
0xSero Jul 18, 2026
b9b99d6
refactor(browser): replace raw CDP with Playwright
0xSero Jul 18, 2026
4b73348
fix(browser): bundle Playwright runtime
0xSero Jul 18, 2026
3068963
ci: gate releases on validated commits
fettpl Jul 17, 2026
a581f87
fix(build): repair standalone output the tracer gets wrong
0xSero Jul 19, 2026
0880ae2
feat(composer): pluggable slash-command core with Codex composer states
0xSero Jul 19, 2026
c2565d7
fix(composer): lead the empty-query command menu with builtins
0xSero Jul 19, 2026
15bcbf1
perf(agent): stop per-frame and accumulating costs that degrade long …
0xSero Jul 19, 2026
302d26b
fix: refresh persisted secret hardening on main
fettpl Jul 19, 2026
102abf1
ci: merge validated release gate
fettpl Jul 19, 2026
b98c51e
feat(providers): sign in to pi model providers from configure
0xSero Jul 19, 2026
7823b3d
style(composer): match Codex composer and chat palette exactly
0xSero Jul 19, 2026
502e891
style(composer): second Codex parity round
0xSero Jul 19, 2026
a078d88
feat(appearance): themes, chat controls, tone separation
0xSero Jul 19, 2026
77b3678
feat(agent): goals and scheduled automations
0xSero Jul 19, 2026
d263352
style(shell): codex-clean navbar, profile footer, phone entry
0xSero Jul 19, 2026
716eb13
style(chat): codex diff-stat pill above the composer
0xSero Jul 19, 2026
8640166
feat(agent): subagents — parallel child sessions with chips
0xSero Jul 19, 2026
ca228a9
fix(files): highlight html and less in the file viewer
0xSero Jul 19, 2026
5909e10
fix(setup): harden local runtime onboarding
0xSero Jul 19, 2026
77c8448
release: prepare v2.1.0
0xSero Jul 19, 2026
c1418f3
release: land codex parity, provider hub, goals, automations, subagents
0xSero Jul 19, 2026
5f2cf69
fix(contracts): declare the effect dependency
0xSero Jul 19, 2026
08bcba2
fix(ci): install shared contract dependencies
0xSero Jul 19, 2026
3cdd3a6
ci: gate releases on validated commits
fettpl Jul 17, 2026
ed9f60a
chore: refresh secret redaction onto issue 220
fettpl Jul 20, 2026
842d00b
fix: type the composed log route registrar
fettpl Jul 20, 2026
2c38b89
fix: retain colocated controller test entries
fettpl Jul 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
  •  
  •  
  •  
88 changes: 29 additions & 59 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,92 +1,62 @@
# CRITICAL
# vLLM Studio Configuration
# Local Studio Configuration
# Copy this file to .env and modify as needed
# Run `npm run doctor` to preflight your environment before first launch

# =============================================================================
# Controller Settings
# =============================================================================

# API server settings
VLLM_STUDIO_HOST=127.0.0.1
VLLM_STUDIO_PORT=8080
LOCAL_STUDIO_HOST=127.0.0.1
LOCAL_STUDIO_PORT=8080

# Required when binding to a non-loopback host such as 0.0.0.0
VLLM_STUDIO_API_KEY=
# REQUIRED when LOCAL_STUDIO_HOST is non-loopback (e.g. 0.0.0.0) — the controller
# refuses to start without it unless LOCAL_STUDIO_ALLOW_UNAUTHENTICATED=true.
LOCAL_STUDIO_API_KEY=

# Only set this to true for trusted local environments.
# VLLM_STUDIO_ALLOW_UNAUTHENTICATED=false
# Explicit opt-out of the API-key requirement on non-loopback hosts.
# Only set this to true on trusted LANs.
# LOCAL_STUDIO_ALLOW_UNAUTHENTICATED=false

# Optional browser allowlist for direct controller access (comma-separated origins)
# VLLM_STUDIO_CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
# LOCAL_STUDIO_CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000

# --- Privileged-capability opt-ins (safe defaults are OFF) ---
# Allow recipes to specify a raw launch_command/custom_command (arbitrary binary
# execution). Leave off unless you rely on custom launch commands.
# LOCAL_STUDIO_ALLOW_CUSTOM_LAUNCH_COMMAND=false
# Default value of recipe trust_remote_code when a recipe omits it. Defaults to
# true (models needing custom modeling code work out of the box). Set to false to
# harden the default; recipes can still opt in per-recipe.
# LOCAL_STUDIO_DEFAULT_TRUST_REMOTE_CODE=true

# Inference backend port (where vLLM/SGLang runs)
VLLM_STUDIO_INFERENCE_PORT=8000
LOCAL_STUDIO_INFERENCE_PORT=8000

# Enable mock inference mode (no external LLM required). Useful for local UI/E2E testing.
# VLLM_STUDIO_MOCK_INFERENCE=true
# LOCAL_STUDIO_MOCK_INFERENCE=true

# =============================================================================
# Paths
# =============================================================================

# Directory containing model weights
VLLM_STUDIO_MODELS_DIR=/models
# Directory containing model weights. Must be writable: the controller tries to
# create it on startup and warns if it cannot.
# LOCAL_STUDIO_MODELS_DIR=/models

# Data directory for recipes and chat history
VLLM_STUDIO_DATA_DIR=./data
LOCAL_STUDIO_DATA_DIR=./data

# =============================================================================
# Backend-specific Settings (Optional)
# =============================================================================

# SGLang Python path (only needed if using SGLang backend)
# VLLM_STUDIO_SGLANG_PYTHON=/path/to/sglang/venv/bin/python

# TabbyAPI directory (only needed if using TabbyAPI/ExLlamaV3 backend)
# VLLM_STUDIO_TABBY_API_DIR=/path/to/tabbyAPI
# LOCAL_STUDIO_SGLANG_PYTHON=/path/to/sglang/venv/bin/python

# llama.cpp server binary (only needed if llama-server is not on PATH)
# VLLM_STUDIO_LLAMA_BIN=/usr/local/bin/llama-server

# ExLLaMA v3 command template. Must resolve a runnable launch command.
# Supports any binary with flags; include placeholders exactly as you want them to run.
# Example: /opt/exllamav3/bin/exllama-server --model /models/my-model --port 8000
# VLLM_STUDIO_EXLLAMAV3_COMMAND=exllama-server --host 127.0.0.1 --port 8000
# LOCAL_STUDIO_LLAMA_BIN=/usr/local/bin/llama-server

# Strict OpenAI model matching for /v1/chat/completions.
# If true, only configured recipes are routable through the controller.
# VLLM_STUDIO_STRICT_OPENAI_MODELS=false

# Local filesystem fallback for agent file tools when Daytona fails or is unavailable.
# Disabled by default. Set true only if you want model file ops to continue locally.
# VLLM_STUDIO_AGENT_FS_LOCAL_FALLBACK=false

# =============================================================================
# LiteLLM Gateway (Optional - for API routing/format translation)
# =============================================================================

LITELLM_MASTER_KEY=dev-master-key
VLLM_STUDIO_LITELLM_DATABASE_URL=postgresql://postgres:postgres@localhost:5432/litellm

# Backend inference URL (used by LiteLLM to route requests)
INFERENCE_API_BASE=http://localhost:8000/v1
INFERENCE_API_KEY=dev-placeholder-key

# =============================================================================
# Frontend Settings
# =============================================================================

# LiteLLM URL for chat (defaults to localhost if not set)
NEXT_PUBLIC_LITELLM_URL=http://localhost:4100

# Frontend container user (helps write ./data on Linux hosts)
VLLM_STUDIO_UID=1000
VLLM_STUDIO_GID=1000

# =============================================================================
# Search Integration (Optional)
# =============================================================================

# Exa AI API key for web search (used in chat for research mode)
# Get your API key from https://exa.ai
EXA_API_KEY=your-exa-api-key-here
# LOCAL_STUDIO_STRICT_OPENAI_MODELS=false
2 changes: 2 additions & 0 deletions .githooks/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/sh
node scripts/check-conventional-commits.mjs --message-file "$1"
14 changes: 14 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/sh
set -eu

staged="$(git diff --cached --name-only)"

if printf '%s\n' "$staged" | grep -qE '^(frontend|shared|tests/frontend)/'; then
echo "pre-commit: frontend staged lint/format + typecheck"
npm --prefix frontend run precommit
fi

if printf '%s\n' "$staged" | grep -q '^controller/'; then
echo "pre-commit: controller typecheck"
(cd controller && bun run typecheck)
fi
28 changes: 28 additions & 0 deletions .githooks/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/bin/sh
remote="$1"
url="$2"

while read local_ref local_sha remote_ref remote_sha
do
if [ "$local_sha" = "0000000000000000000000000000000000000000" ]; then
continue
fi

if [ "$remote_sha" = "0000000000000000000000000000000000000000" ]; then
default_ref="$(git symbolic-ref --quiet --short "refs/remotes/$remote/HEAD" 2>/dev/null || printf '%s/main' "$remote")"
base_sha="$(git merge-base "$default_ref" "$local_sha" 2>/dev/null || true)"
if [ -n "$base_sha" ]; then
range="$base_sha..$local_sha"
else
range="$local_sha"
fi
else
range="$remote_sha..$local_sha"
fi

echo "Checking conventional commits for $local_ref -> $remote/$remote_ref ($url)"
node scripts/check-conventional-commits.mjs --range "$range" || exit 1
done

echo "pre-push: frontend quality gate"
npm --prefix frontend run check:quality
3 changes: 0 additions & 3 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,9 @@
# Application-specific owners
/controller/ @0xSero
/frontend/ @0xSero
/cli/ @0xSero

# Configuration
docker-compose.yml @0xSero
config/ @0xSero

# Documentation
*.md @0xSero
docs/ @0xSero
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Bug report
about: Create a report to help us improve
title: '[BUG] '
labels: bug
labels: "Type: Bug"
assignees: ''
---

Expand All @@ -25,8 +25,8 @@ A clear and concise description of what you expected to happen.
## Environment

- **OS**: [e.g. Ubuntu 22.04, macOS 14.0]
- **vLLM Studio Version**: [e.g. 0.3.1]
- **Backend**: [vLLM / SGLang / TabbyAPI]
- **Local Studio Version**: [e.g. 0.3.1]
- **Backend**: [vLLM / SGLang / llama.cpp / MLX]
- **Model**: [e.g. Llama-3-8B-Instruct]

## Logs
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Feature request
about: Suggest an idea for this project
title: '[FEATURE] '
labels: enhancement
labels: "Type: Feature"
assignees: ''
---

Expand Down
1 change: 0 additions & 1 deletion .github/labels.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
# CRITICAL
# Repository Issue Labels

# Priority Labels
Expand Down
63 changes: 14 additions & 49 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,57 +1,22 @@
## Description
## Summary

Briefly describe the changes in this PR.
Describe the change in 1-3 sentences.

## Type of Change
## Validation

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Refactoring (no functional changes)
- [ ] CI/CD changes
- [ ] Performance improvements
List the commands you ran:

## Related Issues
```bash
# example
npm --prefix frontend run lint
npm --prefix frontend run typecheck
npm --prefix frontend test
```

Fixes #
Related to #
## UI changes

## Testing
Attach screenshots or recordings if this changes visible behavior.

Describe the testing performed for this PR:
- [ ] Unit tests pass (`bun test` / `npm test` / `pytest`)
- [ ] Integration tests pass (Playwright)
- [ ] Manual testing performed
- [ ] All linting passes (`bun run lint` / `npm run lint`)
- [ ] Type checking passes (`bun run typecheck`)
- [ ] Dead code check passes (`bun run check`)
## Risks / rollout notes

Include specific test scenarios or commands used.

## Checklist

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have tested my changes locally
- [ ] I have updated AGENTS.md if needed (for architectural changes)
- [ ] I have added appropriate labels (Priority, Type, Area)
- [ ] No new security vulnerabilities introduced

## Performance & Security

- [ ] Performance impact considered (no significant regressions)
- [ ] Dependencies audited (no known vulnerabilities)
- [ ] Secrets not exposed
- [ ] Error handling implemented appropriately

## Screenshots (if applicable)

Add screenshots to help explain your changes.

## Additional Notes

Any additional information or context for reviewers.
Call out migrations, compatibility concerns, deployment steps, or follow-up work.
Loading