Releases: AnEntrypoint/agentgui
AgentGUI v1.0.1000
AgentGUI v1.0.1000
Latest commit: c1d78f1
fix(ws): close authenticated WS connections on unknown routes
The WS connection handler matched /hot-reload, /api/terminal/sessions/, and
/sync; any other route passed the PASSWORD gate but fell through with no
handler, leaving an authenticated socket open and idle forever. Added an else
branch that closes it (4404 unknown-route).
Witnessed: /sync still returns sync_connected, a bogus route now closes with
4404, boot clean, tests 47/47.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Install with:
bun x agentgui@latest
npm install -g agentgui
npx agentguiWeb interface: http://localhost:3000/gm/
Notes:
- Data stored in
~/.gmgui/folder - Requirements: Node.js 18+
AgentGUI v1.0.999
AgentGUI v1.0.999
Latest commit: 5847d4d
fix(electron): run the server child as plain Node, drain readiness polls
startServer spawned process.execPath (the Electron binary) to host server.js
but didn't set ELECTRON_RUN_AS_NODE, so the background HTTP server booted a
full second Electron/Chromium app runtime instead of running as plain Node -
the documented way to run a node script via the Electron binary. Added
ELECTRON_RUN_AS_NODE=1 to the spawn env. Also pollReady never drained the
http.get response on its retry path, leaving the socket open until timeout -
added res.resume().
Electron main process (node-side); syntax static-verified (no Electron runtime
in this env to exercise the GUI path).
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Install with:
bun x agentgui@latest
npm install -g agentgui
npx agentguiWeb interface: http://localhost:3000/gm/
Notes:
- Data stored in
~/.gmgui/folder - Requirements: Node.js 18+
AgentGUI v1.0.998
AgentGUI v1.0.998
Latest commit: d3be618
chore(deps): drop 3 more unused dependencies
ccfollow, @lanmower/ccf, and webtalk have zero references anywhere in agentgui
(no import/require, no spawn, no bun x, no config or bin reference across
.js/.mjs/.cjs/.json/.sh). ccfollow and @lanmower/ccf are libraries with no bin
and zero imports; webtalk ships a CLI server but agentgui never invokes it and
has no voice feature that would. Leftover declarations.
CI installs are non-frozen, so committing package.json alone is safe (lockfiles
reconcile). Boot clean, tests 47/47. deps 17 -> 14.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Install with:
bun x agentgui@latest
npm install -g agentgui
npx agentguiWeb interface: http://localhost:3000/gm/
Notes:
- Data stored in
~/.gmgui/folder - Requirements: Node.js 18+
AgentGUI v1.0.997
AgentGUI v1.0.997
Latest commit: a7b468e
chore(deps): drop 5 unused direct dependencies
@agentclientprotocol/sdk, execa, form-data, p-retry, and zod have zero
import/require references anywhere in the source (.js/.mjs/.cjs across
lib/server/scripts/bin/electron/site) - the ACP implementation is hand-rolled
in acp-protocol.js and does not use the SDK. As pure libraries they cannot be
used without an import, so the declarations are dead.
All CI installs are non-frozen (npm install --ignore-scripts, bun install - no
npm ci / --frozen-lockfile), so they reconcile the lockfiles from package.json;
committing package.json alone is safe. bun.lock is untracked (CI regenerates);
package-lock.json left untouched to avoid an uncertain cross-tool rewrite -
non-frozen npm install reconciles it. Boot clean, tests 47/47.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Install with:
bun x agentgui@latest
npm install -g agentgui
npx agentguiWeb interface: http://localhost:3000/gm/
Notes:
- Data stored in
~/.gmgui/folder - Requirements: Node.js 18+
AgentGUI v1.0.996
AgentGUI v1.0.996
Latest commit: af87d73
docs: fix stale plugin + static/ references after teardown
The plugin-system removal and the earlier static/ removal left the docs
describing an architecture that no longer exists. Updated AGENTS.md (server.js
description + replaced the obsolete 'Plugin Dependencies' section with a
'Plugin system removed' note) and rewrote the README Architecture file-map to
the current site/app/ + lib structure, dropping the removed lib/plugins/ and
static/ trees and correcting 'ACP auto-launch on startup' to on-demand.
Historical run-note changelog entries left intact.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Install with:
bun x agentgui@latest
npm install -g agentgui
npx agentguiWeb interface: http://localhost:3000/gm/
Notes:
- Data stored in
~/.gmgui/folder - Requirements: Node.js 18+
AgentGUI v1.0.995
AgentGUI v1.0.995
Latest commit: e73ed0e
refactor: remove the entire dead plugin system (488 lines)
The lib/plugins/ system was dead scaffolding end to end. Plugin routes were
unreachable (http-handler forwards only a few prefixes to the plugin express
app -> 404), plugin wsHandlers were never wired (the loader only mounted
state.routes; the real WS handlers come from registerWsHandlers in
ws-handlers-util.js), and plugin api objects were never consumed. The four
remaining plugins were confirmed inert: database-plugin's init was a no-op
(database.js already runs initSchema at import), stream-plugin managed local
Maps nobody read, workflow-plugin had empty no-op wsHandlers, and
websocket-plugin imported WebSocketServer and fetched db/stream/agents without
using any of them. The real server (server.js + ws-handlers-util + http-handler
- database.js + routes-upload) is fully independent.
Removed the 4 plugins, plugin-loader.js, createPluginLoader + its wiring in
server.js, and retargeted the workflow-plugin test to the registry assertion
it actually exercised. With acp/files/agents removed earlier, lib/plugins/ is
now empty.
Witnessed: boot clean (no [PLUGINS] line), WS agents.list returns the real
registry, tests 47/47, validate-mutations 29/29. ws/busboy/express deps still
used by ws-setup/routes-upload.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Install with:
bun x agentgui@latest
npm install -g agentgui
npx agentguiWeb interface: http://localhost:3000/gm/
Notes:
- Data stored in
~/.gmgui/folder - Requirements: Node.js 18+
AgentGUI v1.0.994
AgentGUI v1.0.994
Latest commit: c5fd860
refactor(plugins): remove dead agents-plugin (fake hardcoded agent data)
agents-plugin built a fake hardcoded agent list (gm-cc/gm-oc/gm-gc/gm-kilo)
unrelated to the real registry the client uses via the WS agents.list handler.
Its two routes were unreachable (404 - http-handler only forwards a few
prefixes to the plugin express app), its wsHandlers were empty, and its api
was never consumed (plugin wsHandlers/api are never wired into the server).
Only websocket-plugin nominally depended on it via plugins.get('agents'),
which it never used. Dropped the dep and the unused db/stream/agents locals.
Witnessed: [PLUGINS] Loaded extensions drops 'agents', websocket still loads,
WS agents.list still returns the real registry agents, tests 47/47,
validate-mutations 29/29, boot clean.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Install with:
bun x agentgui@latest
npm install -g agentgui
npx agentguiWeb interface: http://localhost:3000/gm/
Notes:
- Data stored in
~/.gmgui/folder - Requirements: Node.js 18+
AgentGUI v1.0.993
AgentGUI v1.0.993
Latest commit: b076541
refactor(plugins): remove dead/redundant files-plugin
lib/plugins/files-plugin.js registered three routes, all dead:
- POST /api/folders was never forwarded to the plugin express app by
http-handler (only /api/upload/, /files/, /v1/history are) -> 404 - GET /files/:id and POST /api/upload/:id were shadowed by routes-upload.js
(createExpressApp), the real Busboy-upload + fsbrowse impl wired at
server.js:7 and registered first, so Express first-match always won
Its /api/upload handler was a no-op that stored nothing, its browseDirectory
api had no callers, and it fetched the database dependency without using it.
No plugin depends on 'files'. Removal is behavior-preserving - the duplicate
routes were already shadowed.
Witnessed: [PLUGINS] Loaded extensions drops 'files'; /gm/api/upload/ still
served by routes-upload; validate-mutations 29/29; tests 47/47; boot clean.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Install with:
bun x agentgui@latest
npm install -g agentgui
npx agentguiWeb interface: http://localhost:3000/gm/
Notes:
- Data stored in
~/.gmgui/folder - Requirements: Node.js 18+
AgentGUI v1.0.992
AgentGUI v1.0.992
Latest commit: 509bf01
refactor: remove 10 dead exported functions across lib/ (74 lines)
All verified unreferenced anywhere - no importer in lib/, server.js, the test
suites, no barrel re-export, and the browser client cannot import server lib:
claude-runner-run.js getRegisteredAgents, isAgentRegistered
execution-machine.js isStreaming, isActive
acp-sdk-manager.js getRunningPorts
acp-server-machine.js getMachineActors
gm-agent-configs.js forceReinstallGMAgentConfigs
asset-server.js createChunkBatcher
agent-descriptors.js getAllDescriptors
Kept findCommand/maskToken/resizeSession/writeToSession - exported but still
used within their own module. Boot clean, tests 47/47.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Install with:
bun x agentgui@latest
npm install -g agentgui
npx agentguiWeb interface: http://localhost:3000/gm/
Notes:
- Data stored in
~/.gmgui/folder - Requirements: Node.js 18+
AgentGUI v1.0.991
AgentGUI v1.0.991
Latest commit: 80d4b7c
refactor(agents): remove the cli-wrapper id-rename (root of the id-mismatch class)
discoverAgents() replaced each found ACP agent (e.g. opencode, protocol acp)
with a CLI_WRAPPERS entry (cli-opencode, protocol cli-wrapper, acpId opencode).
This cli-* id scheme was used nowhere else - the registry, the WS client, and
acp-sdk-manager all key on the plain id - so every cross-reference into
discoveredAgents broke:
- getModelsForAgent returned [] for all ACP agents (fixed defensively last
commit, now resolved at the source) - agent-descriptors gave opencode/gemini the generic description and dropped
the model input spec (id === 'opencode' never matched 'cli-opencode') - process-message carried a dead wrapper-resolution branch
The cli-wrapper branch did exactly what the plain acp branch already does, so
the wrapper added only indirection and bugs. Removed CLI_WRAPPERS and the
rename, the dead branches in server-utils/process-message, and retargeted the
regression test to the acp path. discoveredAgents ids now match the registry.
Witnessed: startup 'Agent IDs: claude-code, opencode, gemini, kilo, codex';
models probe reaches ensureRunning; getAgentDescriptor('opencode') now returns
its real description + model spec; boot clean; tests 47/47.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Install with:
bun x agentgui@latest
npm install -g agentgui
npx agentguiWeb interface: http://localhost:3000/gm/
Notes:
- Data stored in
~/.gmgui/folder - Requirements: Node.js 18+