From 6b4049d3ba27dd68935c0565cccfe44752175393 Mon Sep 17 00:00:00 2001 From: Agando Date: Tue, 27 Oct 2026 15:23:38 +0100 Subject: fix(newos4): help names the owner of an undocumented command; loop lessons leave /skills MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two board items plus the context-window close-out. - MAINT-019 (module-system.js): `help ` answered "No help available for X" for a command that is registered but has no help line, which reads as if the command does not exist. It now says "X — registered by , which publishes no help line for it. Try: help". A command that genuinely does not exist still gets the old message. - MAINT-020 (module-aiassist.js): auto-generated loop lessons were written into /skills with their own index entries, so `skill list` filled up with system noise. Lessons now live in /lessons with /lessons/index.json; the reader still falls back to legacy loop-lesson-* entries in /skills for one release, and the one-time migration deletes them from the skills index. Verification: test-help-and-lessons.js (10 asserts, includes a lint-style guard that no lesson is written into /skills). Suite 14/14 files green; maintain --fix "node tests 14/14 pass", "help coverage 362/362". Live on v4.6.108: `help agent-register` -> "registered by AgentRegistryModule, which publishes no help line for it"; `help a2a-prune` unchanged; `help nope-not-real` still "No help available". MAINT-001 close-out (no code change here): history is capped at 20 messages with a "[context trim]" marker (first trim at turn 11 in a 60-turn probe), token compression took 80 msgs/8080 tok to 17/2625, and since v4.6.107 one turn's tool bodies are clipped to 6 000 chars each and elided past 24 000 with the newest 4 kept verbatim. Residual, recorded on the board: maxContextTokens is never sent to the server as num_ctx, so the real window is whatever the endpoint defaults to. MAINT-018 close-out: not reproducible. Live probes on v4.6.107/108 — `sed -n '1,3p' /probe.txt` prints lines 1-3, `sed -n "2,4p"` prints 2-4, `grep 'line4'` matches, and the same commands inside `script /q.sh` print correctly. The "Command not found: for;" symptom belongs to the line-by-line script runner, which is MAINT-021 and stays open. --- modules/core/module-system.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'modules/core/module-system.js') diff --git a/modules/core/module-system.js b/modules/core/module-system.js index 40b0861..43bb0b1 100644 --- a/modules/core/module-system.js +++ b/modules/core/module-system.js @@ -743,7 +743,11 @@ if (helpEntry) { this.terminal.print(helpEntry, 'info'); } else { - this.terminal.print(`No help available for ${cmd}`, 'warning'); + // MAINT-019: a registered command with no help line answered "No help + // available", which reads as if the command does not exist. Name the + // module that owns it so the user knows where to look. + const owner = allCommands[cmd]; + this.terminal.print(`${cmd} — registered by ${owner}, which publishes no help line for it. Try: help`, 'warning'); } } else { this.terminal.print(`No help available for ${cmd}`, 'warning'); -- cgit v1.2.3