DongHyeonka and Claude Opus 5
4fe924ee0f
fix: harden bounded state sidecars
...
N-05: the conditional-validator key was a colon join over components that may
themselves contain colons, so two distinct valid bindings could collide and one
definition's ETag could be prepared for another. The key is now a validated,
byte-bounded fixed tuple encoded with JSON.stringify.
N-09: capture localStorage exactly once and compare StorageEvent.storageArea
against that object identity, so a pulse from sessionStorage or any other area
is rejected instead of matching on key and value alone. The pulse key is
registered in the storage registry as CACHE_INVALIDATION_PULSE.
N-10: race loadPage against the caller signal and re-check before observing a
page, so a non-cooperative loader can neither hold loadAll forever nor have a
post-abort completion accumulated into a successful result.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-13 23:35:48 +09:00
..
2026-08-13 16:02:21 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 19:39:59 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 19:39:59 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-02 08:43:44 +09:00
2026-07-30 15:58:20 +09:00
2026-08-13 23:23:46 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-13 16:02:21 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 19:39:59 +09:00
2026-07-30 15:58:20 +09:00
2026-08-13 16:02:21 +09:00
2026-08-01 19:39:59 +09:00
2026-08-13 16:02:21 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-13 23:35:48 +09:00
2026-08-13 23:35:48 +09:00
2026-08-13 23:35:48 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 23:59:11 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-13 23:01:48 +09:00
2026-08-02 11:36:27 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 19:39:59 +09:00
2026-08-02 04:46:33 +09:00
2026-08-02 07:11:33 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 23:17:09 +09:00
2026-08-13 23:21:58 +09:00
2026-08-13 23:21:58 +09:00
2026-08-02 03:15:22 +09:00
2026-08-01 19:39:59 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-13 16:02:21 +09:00
2026-08-13 16:02:21 +09:00
2026-08-13 23:28:22 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 23:59:11 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 19:39:59 +09:00
2026-07-30 15:58:20 +09:00
2026-08-02 00:28:17 +09:00
2026-08-02 05:26:36 +09:00
2026-08-02 04:03:14 +09:00
2026-08-02 15:02:57 +09:00
2026-08-02 05:26:36 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 19:39:59 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-02 09:10:35 +09:00
2026-08-02 10:12:34 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-13 23:05:43 +09:00
2026-08-01 19:39:59 +09:00
2026-08-13 16:02:21 +09:00
2026-08-01 19:39:59 +09:00
2026-08-01 19:39:59 +09:00
2026-08-01 19:39:59 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-13 16:02:21 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 23:17:09 +09:00
2026-08-13 16:02:21 +09:00
2026-08-13 23:05:43 +09:00
2026-07-26 13:41:23 +09:00
2026-07-30 15:58:20 +09:00
2026-08-02 10:12:34 +09:00
2026-08-13 16:02:21 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00
2026-08-01 19:39:59 +09:00
2026-07-30 15:58:20 +09:00
2026-07-30 15:58:20 +09:00