aboutsummaryrefslogtreecommitdiff
path: root/modules/ext/webdav.js
diff options
context:
space:
mode:
authorAgando <roduccomm@gmail.com>2026-11-02 21:15:28 +0100
committerAgando <roduccomm@gmail.com>2026-11-02 21:15:28 +0100
commit3b894c31c456592a21b36a7696423ad0936edab7 (patch)
tree3f23f9a313d351dff0740de90aef56a9cca4d8f9 /modules/ext/webdav.js
parent35ca5324ca5a0b3e1e6f02663e1e44d6e06e50ba (diff)
fix(newos4): memory-graph loads stop rewriting user data; unknown sizes say unknown
Three follow-ups from the merge review, each with the assertion that pins it. module-memory-graph.js - _normalizeEdges no longer mutates stored weights. It capped legacy 'failed' edges from 0.8 to 0.2 in memory, and the next debounced save made that permanent - an irreversible migration of the user's graph with no schema version. The cap moved to _effectiveWeight(), which ranking (showStats "Strongest relationships"), the session view and prune() now use; the stored record is left exactly as written. - config.json is stamped version: 2 so a future format change can migrate deliberately. ext/webdav.js - the two fallback parsers emit size: null instead of 0. They cannot see the size column, and 0 rendered as "0 B" - the same "every file looks empty" symptom as the parseInt bug fixed in e639c2d, one regex miss away. - _formatSize(null) renders '—' (unknown) rather than '0 B'; 0 still renders '0 B'. module-aiassist.js - the lock timeout now says what to do: "AI is still busy with another turn (waited Ns). Wait for it to finish, or run 'ai-stop' and retry - the running turn's lock is left alone." It used to be a dead-end string. Tests: test-memory-graph 39 (T6.4 rewritten to the read-time contract: stored weight stays 0.8, effective 0.2, success unaffected), test-webdav-sizes 28 (A14d null -> '—'). maintain 26/26, live v4.6.141: _effectiveWeight 0.2 with the edge object unchanged, _formatSize(null) '—', '0 B' still '0 B'.
Diffstat (limited to 'modules/ext/webdav.js')
-rw-r--r--modules/ext/webdav.js11
1 files changed, 9 insertions, 2 deletions
diff --git a/modules/ext/webdav.js b/modules/ext/webdav.js
index e78e876..c7efbf9 100644
--- a/modules/ext/webdav.js
+++ b/modules/ext/webdav.js
@@ -480,7 +480,10 @@ class WebDAVModule {
entries.push({
name: decodeURIComponent(href.replace(/\/$/, '').split('/').pop() || href),
type: isDir ? 'dir' : 'file',
- size: 0,
+ // null, not 0: these are the fallback parsers, which cannot see the
+ // size column. 0 rendered as "0 B", i.e. a listing that looked like
+ // every file was empty (the bug _parseAutoindexSize fixes upstream).
+ size: null,
mtime: null,
href: href
});
@@ -496,7 +499,10 @@ class WebDAVModule {
entries.push({
name: decodeURIComponent(href.replace(/\/$/, '').split('/').pop() || href),
type: isDir ? 'dir' : 'file',
- size: 0,
+ // null, not 0: these are the fallback parsers, which cannot see the
+ // size column. 0 rendered as "0 B", i.e. a listing that looked like
+ // every file was empty (the bug _parseAutoindexSize fixes upstream).
+ size: null,
mtime: null,
href: href
});
@@ -2479,6 +2485,7 @@ class WebDAVModule {
}
_formatSize(bytes) {
+ if (bytes === null || bytes === undefined) return '—'; // listing could not determine it
const n = Number(bytes);
if (!Number.isFinite(n) || n < 0) return '—';
if (n < 1024) return n + ' B';