6ef27e5cd6
feat(models): add glm-5.3-flash to worker model fallback catalog
buenosair2026-09-07 12:06:06 +00:00
b62e4e717a
fix: glm not found in dotfiles-less workers — bridge promotes models.json.fallback at startup (the fallback was never read by anything)
buenosair2026-09-04 07:59:54 +00:00
310127cf7a
fix(model selection): deploys from dotfiles-less machines no longer wipe the remote baked pi config (deploy.sh excludes docker/pi-agent); resync endpoint fixed for in-container runs (bash/rsync/python3/npm in daemon image, cross-device copy instead of rename)
buenosair2026-09-02 11:51:47 +00:00
09fc72556d
feat: markdown block parsing in LLM output — headings, lists (ul/ol), blockquotes, hr on top of fences + inline; 300 tests green
buenosair2026-09-02 09:49:56 +00:00
0f245c9ee2
feat: start on a blank container — spawn with empty:true and no repo (skip clone, default worker image); Spawn UI enables blank spawn without repo selection
buenosair2026-09-02 09:24:54 +00:00
7ff9f77f40
feat: unified tool cards (glyph + arg, call+result in one card, ✓/✗ status), client-side message queue (queue while busy, flush on settle, removable pending bubbles), mobile chat-header wrap
buenosair2026-09-01 14:14:52 +00:00
5962b50c8d
style: normalize formatting (tabs) in ChatStream tests + index.css from review pass
buenosair2026-09-01 13:52:03 +00:00
3b799c69fb
web: tool cards show what ran — summary line (bash command / file path) + edit/write line diffs (LCS, +/- coloring); 286 tests green
buenosair2026-09-01 13:17:54 +00:00
f5ee3a0f2d
feat: empty-container spawn (scratch workspace, no repo volume); fix bridge session isolation — explicit SessionManager per spawn stops SDK resuming the repo's old session (which also overrode LVMH_MODEL)
Raphael Westphal2026-08-20 15:12:45 +02:00
bdfa61a8b2
web: pretty tool cards — args rendered as the real command/path (priority keys, label-less single field), output label; 276 tests green
Raphael Westphal2026-08-20 14:55:55 +02:00
2d0839357d
feat: model selection at spawn (POST /api/spawn model -> LVMH_MODEL -> bridge createAgentSession); ops prepare resets ops session (fresh context per prepare)
Raphael Westphal2026-08-20 12:43:55 +02:00
5292a69d66
fix(autotitle): disable GLM thinking + raise max_tokens — reasoning model burned the 24-token budget before emitting any text
Raphael Westphal2026-08-20 11:52:15 +02:00
1b6bd54a74
feat: LLM auto-titles — daemon names unnamed sessions from their first user message via one cheap ZAI completion (no agent-turn pollution); flows into sidebar + tab title
Raphael Westphal2026-08-20 11:44:05 +02:00
9d369f410e
feat: live document title — chat tab shows session name + activity (writing…/tool name/working…), overview shows busy/active counts; 268 tests, gates ≥95%
Raphael Westphal2026-08-20 11:19:21 +02:00
ecee633479
feat: playwright browser cache mount + PLAYWRIGHT_BROWSERS_PATH; ops guide: MCP stack inherited from base image
Raphael Westphal2026-08-20 10:58:50 +02:00
055dd88f5e
feat: MCP in containers — cloakbrowser-mcp + chromium libs baked, mcp.json standard config, shared host chromium cache mounted ro; playwright via npx
Raphael Westphal2026-08-20 10:43:23 +02:00
b35eca40c3
feat: agent deploy pipeline — passwordless SSH (alarm/desk/blanc-nas via tailnet IPs in ssh config), gitea write token to workers, secrets mounts, gitconfig, APPEND_SYSTEM guide
Raphael Westphal2026-08-20 09:42:58 +02:00
b51a3b564f
fix: worker auth.json bind must use HOST path (docker.sock resolves bind sources on the host, not in the daemon container)
Raphael Westphal2026-08-19 15:04:54 +02:00
a4fe178724
fix: LVMH_HOST_PI_AGENT_DIR must point at the daemon-internal /pi-dotfiles mount — host path made docker create an empty auth.json DIR inside workers, breaking model resolution (unknown)
Raphael Westphal2026-08-19 15:01:07 +02:00
5c71edfac4
feat: full model catalog (settings enabledModels + custom providers) and provider credentials in spawned containers (keys passthrough + host auth.json bind)
Raphael Westphal2026-08-19 11:41:31 +02:00
d4af41e7dc
deploy: keep --ignore-scripts for vendored packages (prepare=husky is a devDep, fails either way)
Raphael Westphal2026-08-19 11:28:52 +02:00
bcf5a82eba
fix: rm npm symlink before installing shim (COPY followed it and clobbered npm-cli.js)
Raphael Westphal2026-08-19 11:17:29 +02:00
bfac99274d
deploy: anchor rsync excludes (unanchored .git/node_modules stripped vendored pi packages from the build context)
Raphael Westphal2026-08-19 11:15:12 +02:00
0bfa55a94a
fix: npm-real launcher (npm is a JS symlink, mv broke it); keep .git in vendored git: packages (pi runs git fetch on existing installs)
Raphael Westphal2026-08-19 11:08:22 +02:00
cbf52d2b76
feat: full pi config in containers — git: packages vendored at bake (ignore-scripts), npm shim for runtime installs, dotfiles mount + POST /api/pi-config/resync rebuilds worker+ops images (95% cover, race clean)
Raphael Westphal2026-08-19 11:00:39 +02:00
957ea03aa1
feat: session busy indicator — daemon tracks mid-turn state (agent_start/settled), busy field on session rows + live broadcast; pulsing pip in sidebar and cards (265 web tests, daemon 95.4%)
Raphael Westphal2026-08-19 10:41:40 +02:00
c8ad68aaea
web: integrate QoL slices 1-5 (model switch/rename, history deletes, usage stats, repo prepare+badges+imageUsed, markdown/search/FAB/timestamps) — 263 tests, ≥95% all metrics
Raphael Westphal2026-08-19 10:35:40 +02:00
698b742cb3
daemon: integrate QoL slices 1-5 (model/rename/catalog, history deletes, stats, repo prepare+imageUsed+built) — 95.3% cover green
Raphael Westphal2026-08-19 10:07:52 +02:00
60460aebd7
web: sessions list shows active pi only; close-pi button in chat header; 154 tests, ≥95% coverage
Raphael Westphal2026-08-18 17:57:35 +02:00
a67efdb5ec
web: sessions list shows active pi only; close-pi button in chat header (agent sessions); tests to 154, coverage ≥95 all metrics
Raphael Westphal2026-08-18 17:56:31 +02:00
71ab821abd
worker: make/jq/gopls in base image + per-repo .lvmh/setup.sh hook (agent-driven persistent setup)
Raphael Westphal2026-08-18 17:38:38 +02:00
72c593da18
plugin: honor LVMH_SESSION_ID (daemon-assigned id for spawned containers); e2e+smoke+integration green
Raphael Westphal2026-08-18 15:57:48 +02:00
9c486f5e11
bridge: call session.bindExtensions — SDK never fires session_start without it
Raphael Westphal2026-08-18 15:54:28 +02:00
7a7a130a1a
daemon: drop worker models.json bind (host-path bind of container path was invalid; image bakes it)
Raphael Westphal2026-08-18 15:49:37 +02:00
b5d267e61e
bridge: resolve pi SDK via absolute container path (global npm ESM resolution)
Raphael Westphal2026-08-18 15:47:49 +02:00
49840225e2
daemon: Gitea v1 API adapter (git.westphal.fr is Gitea, not GitLab); fix golang Dockerfile to 1.26; sudo docker in deploy
Raphael Westphal2026-08-18 15:07:02 +02:00