@componentor/fs 3.0.45 → 3.0.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@componentor/fs",
3
- "version": "3.0.45",
3
+ "version": "3.0.47",
4
4
  "description": "High-performance OPFS-based Node.js fs polyfill with true sync API, VFS binary format, and bidirectional OPFS mirroring",
5
5
  "license": "MIT",
6
6
  "author": "Componentor",
package/readme.md CHANGED
@@ -604,6 +604,28 @@ Make sure `opfsSync` is enabled (it's `true` by default). Files are mirrored to
604
604
 
605
605
  See [CHANGELOG.md](./CHANGELOG.md) for the full version history.
606
606
 
607
+ ### v3.0.47 (2026)
608
+
609
+ **Fixes:**
610
+ - Multi-tab broker survives service-worker idle-kill (≥30s on Chrome). Secondary tabs no longer fail with `[Shell] Failed to load cwd` after the SW is restarted — the leader re-registers on a 5 s heartbeat and the SW flushes any queued follower `transfer-port` messages to the new control port
611
+ - Eliminate a race where heartbeat re-registration could silently drop in-flight follower `transfer-port` messages (new control port is now posted to the SW before the old one is closed)
612
+ - `leader-changed` is broadcast exactly once at initial registration instead of on every heartbeat tick — prevents spurious EIO errors on long-running follower operations from leader-port reconnect churn
613
+
614
+ ### v3.0.46 (2026)
615
+
616
+ **Features:**
617
+ - Implicit directory support: directories implied by file paths are now recognized by `stat`, `lstat`, `readdir`, `opendir`, `access`, `realpath`, `exists`, `mkdir`, and `ensureParent`
618
+ - Generation-counter cache for lazy implicit-dir rebuild
619
+
620
+ **Fixes:**
621
+ - Fix crash on `fstat`/`fchmod`/`fchown`/`futimes` when fd was opened via `opendir` on an implicit directory
622
+ - `rmdir` on implicit directories now returns ENOTEMPTY (non-recursive) or deletes descendants (recursive) instead of ENOENT
623
+ - `nlink` for real directories now counts implicit subdirectories, consistent with `readdir`
624
+ - Implicit directory timestamps are stable across repeated `stat()` calls
625
+
626
+ **Tests:**
627
+ - 14 new tests for implicit directory behavior
628
+
607
629
  ### v3.0.45 (2026)
608
630
 
609
631
  **Fixes:**