From 240cbf75c7c3cbf23fc95d6b4e0bf807dcd91360 Mon Sep 17 00:00:00 2001 From: Agando Date: Tue, 27 Oct 2026 15:33:33 +0100 Subject: fix(newos4): agent registration is absolute-path and honest about what it stored MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three of the four agent-cluster items, each with a test that is red on HEAD. - MAINT-008 (module-agent-registry.js + module-orchestrator.js): registerAgent took args[0] as the agent id and only args[1] as the capability list, while both orchestrator callers passed the command word first — so the boot log read "Agent 'register' registered with 1 capabilities" and four capabilities were stored as one. The command word is now stripped, args[1..] are joined and split on commas (both "a,b" and "a b c" work), and the callers pass [id, ...caps]. - MAINT-007 (registry + aiassist): mkdir/rm used relative paths, so a registration made from /docs created /docs/agents/ and an unregister from any other cwd removed nothing — the leaked directories the report suspected. Every path in the registry (and the four /_sessions writes in module-aiassist.js) is absolute now. - MAINT-009 (listAgents): a directory alone counted as a registered agent, so a hand-made /agents/foo appeared as "foo — unknown (0 capabilities)". Only a readable status.json with an id counts now; the rest are reported as unregistered directories. Verification: test-agent-registry.js (11 asserts). RED on HEAD: 9 of 11 fail, including the exact `✅ Agent 'register' registered with 1 capabilities` line and `hand-made — unknown (0 capabilities)`. Suite 15/15 files green; maintain --fix "node tests 15/15 pass". Live on v4.6.109: boot prints "✅ Agent 'orchestrator-0' registered with 4 capabilities"; `agent-list` warns "1 directory(ies) in /agents have no status.json (not registered): hand-made"; register from / with a comma list stores 3; unregister from /docs removes the directory and leaves no /docs/agents. MAINT-006 stays open with a narrower note: the hard stop was only reachable when every call in a batch was blocked, so a mixed batch (one repeated + one novel call) never ended. The same ceiling now applies on the mixed path, but that branch lives inside agenticLoop and is not covered by a unit test — it needs a live agent run that repeats a call. --- main.html | 6 +-- modules/core/core-bundle.js | 85 ++++++++++++++++++++++++-------- modules/core/module-agent-registry.js | 62 +++++++++++++++++------ modules/core/module-aiassist.js | 17 +++++-- modules/core/module-loader.js | 2 +- modules/core/module-orchestrator.js | 6 ++- modules/test/test-agent-registry.js | 93 +++++++++++++++++++++++++++++++++++ 7 files changed, 225 insertions(+), 46 deletions(-) create mode 100644 modules/test/test-agent-registry.js diff --git a/main.html b/main.html index 79c77cd..83cb081 100644 --- a/main.html +++ b/main.html @@ -1349,13 +1349,13 @@ - + - + - +