v1.0.1
Maintenance release addressing a multi-dimension code review: robustness fixes, offline test coverage for the page-side layer, and internal cleanup. No new tools (still 62) and no breaking changes.
Robustness
- WebDAV requests now time out (
AbortSignal) so a half-awake Molten box can't hang a tool indefinitely. - The headless bridge self-heals a wiped
window.__fvttafter an in-world reload (re-inject or reconnect + retry) instead of wedging until a process restart. bulk-deleterecords per-item failures and keeps going — no lost partial progress on a permanent op.- Central error mapping for every tool (cold-box / permission / not-found guidance), with curated messages passed through unchanged and zod/specific messages preserved.
- Added process-level
unhandledRejection/uncaughtExceptionhandlers.
Testing
- Extracted the deterministic page-side logic (SRD spell-slot tables, NPC system-data construction, attack assembly) into pure helpers and unit-tested them offline. 423 → 464 tests.
- Added tests for the previously-untested error classifier.
Cleanup & tooling
- Tool wiring extracted to a single
src/registry.ts: the handlers map is the source of truth and the advertised tool list is derived from it (no more drift between a registration list and a 180-line dispatch switch). - Removed a dead event-push subsystem; removed dead exports; wired
knipinto CI. - Node floor set to 22+; CI now tests Node 22 + 24.
Security
- The Magic-URL startup token is redacted from logs.
copy-assetnow guards the source path as well as the destination.
Full changelog: v1.0.0...v1.0.1