buenosair
4755f6d1e3
feat(spawn): share host spawn-pi mesh + models.json with spawned containers
...
- bind $LVMH_HOST_PI_RUNTIME_DIR/spawn-pi -> /root/.pi/spawn-pi (rw) so
container pi's join the host pi's node mesh (spawn_pi/list_pi_nodes/
send_pi_message now reach across the host/container boundary)
- bind host models.json (when present) over the stale image-baked
fallback so newly added catalog models resolve in spawns
2026-09-07 13:21:49 +00:00
buenosair
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)
2026-09-02 11:51:47 +00:00
buenosair
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
2026-09-02 09:24:54 +00:00
Raphael Westphal
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)
2026-08-20 15:12:45 +02:00
Raphael Westphal
2d0839357d
feat: model selection at spawn (POST /api/spawn model -> LVMH_MODEL -> bridge createAgentSession); ops prepare resets ops session (fresh context per prepare)
2026-08-20 12:43:55 +02:00
Raphael Westphal
5292a69d66
fix(autotitle): disable GLM thinking + raise max_tokens — reasoning model burned the 24-token budget before emitting any text
2026-08-20 11:52:15 +02:00
Raphael Westphal
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
2026-08-20 11:44:05 +02:00
Raphael Westphal
ecee633479
feat: playwright browser cache mount + PLAYWRIGHT_BROWSERS_PATH; ops guide: MCP stack inherited from base image
2026-08-20 10:58:50 +02:00
Raphael Westphal
055dd88f5e
feat: MCP in containers — cloakbrowser-mcp + chromium libs baked, mcp.json standard config, shared host chromium cache mounted ro; playwright via npx
2026-08-20 10:43:23 +02:00
Raphael Westphal
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
2026-08-20 09:42:58 +02:00
Raphael Westphal
6d10877e34
feat: agent deploys — passwordless ssh key (alarm/desk/blanc-nas + gitea), write-scope gitea token, secrets mounts, gitconfig, APPEND_SYSTEM deploy guide
2026-08-20 09:34:17 +02:00
Raphael Westphal
e0b5af2276
fix(model selection): bake dotfiles models.json (both glm models, env-ref key) over frozen worker list; catalog prefers baked file — was offering models the container registry couldn't resolve
2026-08-19 14:53:08 +02:00
Raphael Westphal
5c71edfac4
feat: full model catalog (settings enabledModels + custom providers) and provider credentials in spawned containers (keys passthrough + host auth.json bind)
2026-08-19 11:41:31 +02:00
Raphael Westphal
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)
2026-08-19 11:00:39 +02:00
Raphael Westphal
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%)
2026-08-19 10:41:40 +02:00
Raphael Westphal
698b742cb3
daemon: integrate QoL slices 1-5 (model/rename/catalog, history deletes, stats, repo prepare+imageUsed+built) — 95.3% cover green
2026-08-19 10:07:52 +02:00
Raphael Westphal
7287b831e4
daemon: agent-driven workspace images — repo→image registry (GET/PUT/DELETE /api/repos), spawn resolves custom image, self-healing lvmh-ops control container with docker.sock; 132 tests, e2e 87/87
2026-08-18 23:54:09 +02:00
Raphael Westphal
66c90e48bb
fix(review round 2): daemon symlink tars, orphan-safe removes, unique seed names, git ctx, IsErrNotFound, collision-free slugs, branch validation; web first-run WS, draft reset, IME guard, churn fix, test swap repair; 106 daemon + 190 web tests green
2026-08-18 19:13:51 +02:00
Raphael Westphal
6aac763563
fix(review round 1): daemon PAT-header auth, job pruning, session-split batches, streaming tars, seed cleanup, ping/pong, byte caps, branch switch, slug --, ctx cancel, Init:true, pagination, latest/before events; web newest-window history + load-older, offline busy gate, staleness guards, memo store, auth probe, scroll key, focus-visible, draft restore, poll dedup; 106+181 tests, coverage 96.2%/95.1%+
2026-08-18 18:49:52 +02:00
Raphael Westphal
95deb650cb
worker: bake dotfiles pi config (filtered) + shared lvmh-pi-cache volume; CopyToContainer seeding
2026-08-18 16:59:51 +02:00
Raphael Westphal
55be4b2a38
daemon: seed repo volume via CopyToContainer (host-path bind bug → empty workspace); web: spawn poll reads fresh session list
2026-08-18 16:55:58 +02:00
Raphael Westphal
7f0672f5d8
fix(web): object tool args crashed React #31 — normalize at derive boundary (argsText); contract scenario replays real-plugin frame shapes end-to-end (73/73)
2026-08-18 16:23:44 +02:00
Raphael Westphal
7a7a130a1a
daemon: drop worker models.json bind (host-path bind of container path was invalid; image bakes it)
2026-08-18 15:49:37 +02:00
Raphael Westphal
f8bfaeaa21
map: tickets 06+07 resolved; 05 partial (live spawn pending gitea token)
2026-08-18 15:33:02 +02:00
Raphael Westphal
49840225e2
daemon: Gitea v1 API adapter (git.westphal.fr is Gitea, not GitLab); fix golang Dockerfile to 1.26; sudo docker in deploy
2026-08-18 15:07:02 +02:00
Raphael Westphal
0ecef2a9bd
test: ≥95% coverage — daemon 96.9% (go), web 95.5-99% (vitest 142 tests); store.ts hooks-order crash fix
2026-08-18 14:56:08 +02:00
Raphael Westphal
ecb91e941c
e2e: integration harness (69/69 green) + fix /agent/ws missing bearer auth (BUG-1)
2026-08-18 14:13:15 +02:00
Raphael Westphal
6ba718730e
daemon: set LVMH_AGENT/LVMH_REPO env on spawned containers (plugin contract)
2026-08-18 13:50:40 +02:00
Raphael Westphal
c62900e613
daemon: golang WS hub, REST, gitlab, docker spawner, sqlite (18/18 tests)
2026-08-18 13:42:34 +02:00