aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAgando <roduccomm@gmail.com>2026-10-23 19:39:38 +0200
committerAgando <roduccomm@gmail.com>2026-10-23 19:39:38 +0200
commit4774b19f5e73df4edc2dd062433dd12c70dac0ab (patch)
treef1e89626ecf6ef76cefc7a2a2a8309d53e8147bb
parentc9924e45d765b5c28ac0abcf78339b828b4ef0a0 (diff)
docs(newos4): update brief for the agent, v4.6.57 to v4.6.73
Seven behaviour changes it has to act on, not just seven code changes: the command is `hermes` not `chat` (ChatStudio owns that name), replies arrive untyped within 30s, the cursor is epoch milliseconds, only 429 is retryable, the old reply endpoint is 410, multi-path grep/head/tail, and on-demand agents are not a fault.
-rw-r--r--_docs/os4-update-v4.6.71-73.md82
1 files changed, 82 insertions, 0 deletions
diff --git a/_docs/os4-update-v4.6.71-73.md b/_docs/os4-update-v4.6.71-73.md
new file mode 100644
index 0000000..d13af04
--- /dev/null
+++ b/_docs/os4-update-v4.6.71-73.md
@@ -0,0 +1,82 @@
+# Update brief for the newOS4 agent — v4.6.57 → v4.6.73
+
+Everything below is live on `webx11.duckdns.org/spaces/newos4`. Each line names what changed in
+**your** behaviour, not just in the code. Written 2026-10-23 by Hermes (host side).
+
+## 1. The terminal has no shell — and now says so
+
+`;`, `&&`, `||`, `|` are **refused** with: `No shell here — \`&&\` is not interpreted. Run one
+command per line.` The refusal means **nothing ran**. Do not retry with different spacing; split it.
+
+Quoted operators are literal: `echo "a && b"` prints `a && b`. A single pipe still works
+**interactively only** — through `run_command` it is refused.
+
+## 2. Multi-path commands actually read every path
+
+`grep`, `head`, `tail`, `wc` accept several files. `grep` prints `file:line: text` when given more
+than one, `file:count` with `-c`, and reports each missing file separately. Before v4.6.58–67 a
+second path was dropped silently and the exit code was 0 — that is why a "clean" result could be
+wrong. If you ask for two files, count that two answers came back.
+
+## 3. One error counter
+
+`errors` = debug DB entries **+ failed tool calls**. `/logs/current.log` is now a mirror, not the
+source. `terminal.countErrors()` returns `{debug, latency, log, total}`. The dashboard and the world
+model read the same number; if they disagree, that is a bug, not two views.
+
+## 4. `ls` always returns text
+
+Directory listings print a text line as well as clickable chips. If you ever see an empty listing
+again, use `list_files` and file it as a bug.
+
+## 5. `view_module` shows the deployed file
+
+Output starts with `// deployed: <path> @ vX`. The `_mods/<Class>.js` edit cache is a **labelled
+fallback** only. Trust the banner: it names what you are reading.
+
+## 6. Predictor arithmetic
+
+`errorSum` is a sum; the percentage is the mean. Runs under 1.5 s are stored but not scored.
+Predictions are floored at 1 s. Accuracy needs paired predictions — `0/0 paired` means "no data",
+never "0%". The store is the **server file** `<your space>/_data/predictor.json`; the browser copy
+is a 5-minute read-through cache and a banner appears only when the two diverge.
+
+## 7. Agents are on-demand, and the label says so
+
+`orchestrator-status` prints `Mode: on-demand — N/M worker(s) available, K delegation(s)`. There is
+no background queue and no A2A mailbox to fill. An agent that has never run is **available**, not
+broken — `spawn` is not `dispatch`. Delegations are counted inside `delegateTask()`.
+
+## 8. Skills
+
+`load_skills` is tokenised and body-aware; word order no longer decides. Results carry `score` and
+`matchedTokens`. Zero results name the tokens it looked for and the closest skill names. The two
+old shell skills were merged into one: `command-composition-rules` (searching either old name lands
+there).
+
+## 9. You can talk to Hermes
+
+```
+hermes <message> send (legacy alias: feedback)
+hermes-poll check for a reply now
+hermes-reset rotate the token, start a fresh thread
+```
+
+Replies arrive **by themselves** within 30 s; you do not need to poll. Inside your tool loop use the
+`chat_hermes` tool: `{action:"send", text}` / `{action:"read"}` — the answer is asynchronous, read it
+on a later step.
+
+The command is **not** called `chat`: `ChatStudioModule` owns that name. Contract:
+`_docs/chat-contract.md`. Cursor is an **epoch in milliseconds**. Only `429` is retryable;
+`503` means the host is throttling (nginx), not that your message was wrong.
+
+## 10. Do not use the old reply channel
+
+`POST /api/debug/agent-replies.php` returns **410 Gone**. `feedback` no longer files a bug report —
+it goes to the same chat thread. One write path, one truth.
+
+## 11. Still open — do not report these as new
+
+`§2` file/node counts can disagree; `list_files` has rare false negatives; `kanban.db` is empty while
+the HTML board is live; and **edits made in `_mods/` do not survive a reload** — durable changes must
+go into the repo files.