<feed xmlns='http://www.w3.org/2005/Atom'>
<title>newos4/scripts/test-webdav-paths.mjs, branch main</title>
<subtitle>newOS4 - the browser terminal that runs WebX11 user spaces</subtitle>
<id>https://newos.webx11.duckdns.org/newos4/atom?h=main</id>
<link rel='self' href='https://newos.webx11.duckdns.org/newos4/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://newos.webx11.duckdns.org/newos4/'/>
<updated>2026-10-02T19:25:46+00:00</updated>
<entry>
<title>newOS4 v4.6.18: nginx dav trailing-slash semantics</title>
<updated>2026-10-02T19:25:46+00:00</updated>
<author>
<name>Agando</name>
<email>roduccomm@gmail.com</email>
</author>
<published>2026-10-02T19:25:46+00:00</published>
<link rel='alternate' type='text/html' href='https://newos.webx11.duckdns.org/newos4/commit/?id=2ec6532511eb5cae90d4ec2813742000914853a7'/>
<id>urn:sha1:2ec6532511eb5cae90d4ec2813742000914853a7</id>
<content type='text'>
Discovered by dav-health-check.sh E2E (10/10 pass now):
- nginx dav module REQUIRES trailing slash on MKCOL (no-slash → 409)
  and on directory DELETE (no-slash → 409/404); existing dir + slash
  MKCOL → 405 (the real 'already exists' signal)
- _normalizeRemotePath now PRESERVES trailing slashes (collection ops)
- _ensureDir MKCOLs with trailing slash
- _deleteFile retries with slash on 409/404 (collection delete)
- health-check expectations corrected (405 = existing, slash required)
</content>
</entry>
<entry>
<title>newOS4 webdav path fix + WebX11 resilience package (2026-10-02)</title>
<updated>2026-10-02T19:21:15+00:00</updated>
<author>
<name>Agando</name>
<email>roduccomm@gmail.com</email>
</author>
<published>2026-10-02T19:21:15+00:00</published>
<link rel='alternate' type='text/html' href='https://newos.webx11.duckdns.org/newos4/commit/?id=ca7cd43de05620f372b55f49147eb6820d858fac'/>
<id>urn:sha1:ca7cd43de05620f372b55f49147eb6820d858fac</id>
<content type='text'>
Root cause fixes (mindtech incident):
- webdav.js: _normalizeRemotePath strips full URLs/space prefixes, applied
  to all request entry points + _absoluteUrl for MOVE/COPY Destinations
- _ensureDir: __list__ existence fast-path (kills MKCOL 409 storms)
- dashboard-files.js: updateFilesJson parses __list__ autoindex (no more
  '#' entries), ensureSpaceExists only re-inits on genuine 404
- 20-test regression suite: scripts/test-webdav-paths.mjs

Resilience:
- dav-auth-check.py: server-side WebDAV write auth microservice (nginx
  auth_request on 8904) — anonymous/wrong-token writes now 401
- fail2ban-telegram.py: ban alerts + auto-unban for known space users
- backup-spaces.sh: daily hardlink snapshots, 14-day retention
- space-health-check.py: junk dirs / myfiles.json / version drift / session
  sanity → Telegram alerts
- dashboard-files.js: visible 503 error panel with Retry + auto-retry
- v4.6.16: main.html + module-loader LATEST_VER aligned (was drifted)
</content>
</entry>
</feed>
