From d5b6e6f12c8c3c4551050f8fc7d19fb78d6b581b Mon Sep 17 00:00:00 2001 From: Agando Date: Fri, 23 Oct 2026 21:35:02 +0200 Subject: fix(newos4): the virtual /sys entry leaked into listings, trees and counts (v4.6.88-90) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit One phantom entry, three symptoms: - ls() injected 'sys' whenever it was called without a path, so 'cd _agents; ls' advertised a sys directory that does not exist, and list_files('_agents/sys') answered 'Directory not found' — the reported false negative. Injection is now gated on dir === root. - tree() pushed the same virtual name into the walk and dereferenced it, throwing mid-output on every root listing. Guarded. - _gatherFileInfo() walked into /sys and counted a synthetic subtree: 146 files / 114 dirs for a 44-file / 15-dir store. Virtual entries are skipped. Verified: root still lists sys; _agents and skills do not; tree('') completes; world model total (44) equals an independent walk of fs.root (44), agree: true. --- help.html | 20 ++++++++++++++++++++ main.html | 6 +++--- modules/core/core-bundle.js | 28 ++++++++++++++++++++++------ modules/core/module-loader.js | 2 +- modules/core/module-world-model.js | 5 +++++ modules/core/virtual-fs.js | 23 +++++++++++++++++------ 6 files changed, 68 insertions(+), 16 deletions(-) diff --git a/help.html b/help.html index 2ab9bfa..a464d5f 100644 --- a/help.html +++ b/help.html @@ -1688,6 +1688,26 @@ listmods

📋 Changelog

+
+
v4.6.88–90 — October 2026 + one phantom entry, three bugs
+
    +
  • A directory listing invented a sys entry. ls + injects the virtual /sys — but it tested the argument instead of the + result, so after cd _agents the listing showed sys inside + _agents, and a follow-up list_files('_agents/sys') failed with + "Directory not found". The listing lied; the resolver was right. Injection now happens only + for the root directory.
  • +
  • tree crashed on the root listing. The same virtual entry was + pushed into the walk and then dereferenced, throwing + Cannot read properties of undefined mid-output — a partial tree, which is where + two different file counts came from.
  • +
  • The file counts now agree. The world model's walk descended into the + synthetic /sys subtree, so it reported 146 files in 114 directories for a store + that holds 44 in 15. It skips virtual entries now, and matches an independent walk exactly.
  • +
+
+
v4.6.86–87 — October 2026 audit honesty, static assets
diff --git a/main.html b/main.html index 66077b5..16b4d63 100644 --- a/main.html +++ b/main.html @@ -1349,13 +1349,13 @@ - + - + - +