@shivaedev/work-board 0.4.1 → 0.5.0

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.
Files changed (119) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +27 -16
  3. package/assets/native.js +36 -0
  4. package/dist/board.d.ts +1 -1
  5. package/dist/board.d.ts.map +1 -1
  6. package/dist/board.js +38 -8
  7. package/dist/board.js.map +1 -1
  8. package/dist/browser/client.d.ts +88 -0
  9. package/dist/browser/client.d.ts.map +1 -0
  10. package/dist/browser/client.js +53 -0
  11. package/dist/browser/client.js.map +1 -0
  12. package/dist/browser/session.d.ts +89 -0
  13. package/dist/browser/session.d.ts.map +1 -0
  14. package/dist/browser/session.js +20 -0
  15. package/dist/browser/session.js.map +1 -0
  16. package/dist/cli.js +1 -1
  17. package/dist/files/changes.d.ts +4 -1
  18. package/dist/files/changes.d.ts.map +1 -1
  19. package/dist/files/changes.js +7 -3
  20. package/dist/files/changes.js.map +1 -1
  21. package/dist/files/list.d.ts +1 -1
  22. package/dist/files/list.d.ts.map +1 -1
  23. package/dist/files/list.js +5 -3
  24. package/dist/files/list.js.map +1 -1
  25. package/dist/history/schema.js +1 -1
  26. package/dist/history/schema.js.map +1 -1
  27. package/dist/history/script.d.ts.map +1 -1
  28. package/dist/history/script.js +15 -12
  29. package/dist/history/script.js.map +1 -1
  30. package/dist/http/assets.d.ts +2 -0
  31. package/dist/http/assets.d.ts.map +1 -1
  32. package/dist/http/assets.js +10 -0
  33. package/dist/http/assets.js.map +1 -1
  34. package/dist/http/history.d.ts.map +1 -1
  35. package/dist/http/history.js +1 -13
  36. package/dist/http/history.js.map +1 -1
  37. package/dist/http/sameOrigin.d.ts +3 -0
  38. package/dist/http/sameOrigin.d.ts.map +1 -0
  39. package/dist/http/sameOrigin.js +14 -0
  40. package/dist/http/sameOrigin.js.map +1 -0
  41. package/dist/page/ageScript.d.ts +2 -0
  42. package/dist/page/ageScript.d.ts.map +1 -0
  43. package/dist/page/ageScript.js +23 -0
  44. package/dist/page/ageScript.js.map +1 -0
  45. package/dist/page/client.d.ts +1 -1
  46. package/dist/page/client.d.ts.map +1 -1
  47. package/dist/page/client.js +73 -74
  48. package/dist/page/client.js.map +1 -1
  49. package/dist/page/navigationScript.d.ts.map +1 -1
  50. package/dist/page/navigationScript.js +7 -5
  51. package/dist/page/navigationScript.js.map +1 -1
  52. package/dist/page/searchScript.d.ts.map +1 -1
  53. package/dist/page/searchScript.js +6 -4
  54. package/dist/page/searchScript.js.map +1 -1
  55. package/dist/page/shell.js +1 -1
  56. package/dist/page/shell.js.map +1 -1
  57. package/dist/page/stateScript.js +1 -1
  58. package/dist/page/style.d.ts.map +1 -1
  59. package/dist/page/style.js +1 -0
  60. package/dist/page/style.js.map +1 -1
  61. package/dist/page/swap.d.ts +1 -1
  62. package/dist/page/swap.d.ts.map +1 -1
  63. package/dist/page/swap.js +16 -5
  64. package/dist/page/swap.js.map +1 -1
  65. package/dist/path/isMarkdown.d.ts +2 -0
  66. package/dist/path/isMarkdown.d.ts.map +1 -0
  67. package/dist/path/isMarkdown.js +7 -0
  68. package/dist/path/isMarkdown.js.map +1 -0
  69. package/dist/rpc/affected.d.ts +4 -0
  70. package/dist/rpc/affected.d.ts.map +1 -0
  71. package/dist/rpc/affected.js +75 -0
  72. package/dist/rpc/affected.js.map +1 -0
  73. package/dist/rpc/contract.d.ts +134 -0
  74. package/dist/rpc/contract.d.ts.map +1 -0
  75. package/dist/rpc/contract.js +59 -0
  76. package/dist/rpc/contract.js.map +1 -0
  77. package/dist/rpc/hints.d.ts +17 -0
  78. package/dist/rpc/hints.d.ts.map +1 -0
  79. package/dist/rpc/hints.js +28 -0
  80. package/dist/rpc/hints.js.map +1 -0
  81. package/dist/rpc/keys.d.ts +7 -0
  82. package/dist/rpc/keys.d.ts.map +1 -0
  83. package/dist/rpc/keys.js +9 -0
  84. package/dist/rpc/keys.js.map +1 -0
  85. package/dist/rpc/pageKeys.d.ts +3 -0
  86. package/dist/rpc/pageKeys.d.ts.map +1 -0
  87. package/dist/rpc/pageKeys.js +14 -0
  88. package/dist/rpc/pageKeys.js.map +1 -0
  89. package/dist/rpc/server.d.ts +12 -0
  90. package/dist/rpc/server.d.ts.map +1 -0
  91. package/dist/rpc/server.js +32 -0
  92. package/dist/rpc/server.js.map +1 -0
  93. package/package.json +9 -4
  94. package/src/board.ts +44 -9
  95. package/src/browser/client.ts +59 -0
  96. package/src/browser/session.ts +26 -0
  97. package/src/cli.ts +1 -1
  98. package/src/files/changes.ts +14 -4
  99. package/src/files/list.ts +5 -4
  100. package/src/history/schema.ts +1 -1
  101. package/src/history/script.ts +15 -12
  102. package/src/http/assets.ts +11 -0
  103. package/src/http/history.ts +1 -12
  104. package/src/http/sameOrigin.ts +14 -0
  105. package/src/page/ageScript.ts +22 -0
  106. package/src/page/client.ts +73 -74
  107. package/src/page/navigationScript.ts +7 -5
  108. package/src/page/searchScript.ts +6 -4
  109. package/src/page/shell.ts +1 -1
  110. package/src/page/stateScript.ts +1 -1
  111. package/src/page/style.ts +1 -0
  112. package/src/page/swap.ts +16 -5
  113. package/src/path/isMarkdown.ts +6 -0
  114. package/src/rpc/affected.ts +77 -0
  115. package/src/rpc/contract.ts +62 -0
  116. package/src/rpc/hints.ts +34 -0
  117. package/src/rpc/keys.ts +9 -0
  118. package/src/rpc/pageKeys.ts +14 -0
  119. package/src/rpc/server.ts +55 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ ### Changed
6
+
7
+ - Record the approved Platform-first live client direction and its actual shared HTTP/browser fixture evidence; Work Board adopts that foundation in 0.5.0 below.
8
+
9
+ ## 0.5.0 - 2026-10-06
10
+
11
+ ### Added
12
+
13
+ - Add Pause/Resume updates with a bounded pending-hint count and transient,
14
+ motion-free outlines on changed reading blocks. Resume, reconnect and watcher
15
+ uncertainty reconcile the workspace without reporting retained reads as fresh.
16
+
17
+ ### Changed
18
+
19
+ - Use native Effect RPC, AtomRegistry and effect-contract live/resume support
20
+ for browser reads and update ownership, bundled locally with esbuild. Preserve
21
+ server-rendered HTML and ordinary GET links; the compatibility `/events`,
22
+ search and history endpoints remain available.
23
+ - Invalidate affected source documents, stable identities and derived views
24
+ through both former and current backlinks, board membership, criterion evidence
25
+ and attention targets. Leave unrelated documents mounted; reconcile fully when
26
+ paths, delivery or the rebuilt index are uncertain. Sequence numbers detect
27
+ server-local PubSub loss; they are not a durable replay protocol.
28
+
29
+ ### Fixed
30
+
31
+ - Prepare the local native browser bundle before standalone and sharded workspace
32
+ tests, sharing the production build command so fresh CI checkouts can run the
33
+ browser regressions without a prior package build.
34
+ - Refresh missing favorites after navigation-only changes, recreate native client
35
+ ownership after a persisted pageshow, and retain explicit Mark seen cancellation,
36
+ clearing and expiry disclosure while automatic updates are paused. Keep one
37
+ local baseline per workspace, 30-day/2 MiB limits and source files read only.
38
+
3
39
  ## 0.4.1 - 2026-10-05
4
40
 
5
41
  ### Fixed
package/README.md CHANGED
@@ -294,22 +294,33 @@ event: change
294
294
  data: {"paths":["plan.md"]}
295
295
  ```
296
296
 
297
- Open pages fetch their file again and replace only the blocks that changed,
298
- also when blocks were added or removed around them; the rest of the page,
299
- including which `<details>` are open and every drawn diagram, stays as it is,
300
- and the page never reloads. A page that loses the connection shows
301
- "reconnecting" and catches up once it is back. When the open file is deleted
302
- or renamed, the page shows that it is gone. A refresh that gets no page back
303
- keeps the page as it is and shows "refresh failed" until the next one
304
- succeeds.
305
-
306
- If watching the folder fails, the server restarts the watch, waiting longer
307
- after each failure. Meanwhile `/events` sends `event: down`, open pages show
308
- "reconnecting", and once watching resumes `event: ready` makes them catch up on
309
- anything they missed.
310
-
311
- Each open page keeps one connection to `/events`, and browsers allow only a few
312
- per host, so the intended use is one board per browser.
297
+ Open pages use locally bundled native Effect RPC and AtomRegistry queries over
298
+ `POST /_board/rpc`. The existing GET endpoints and `/events` stream remain
299
+ available for compatibility. No browser assets or source data need a cloud service.
300
+
301
+ Changed hints invalidate affected documents and derived views through former and
302
+ current references, board membership, criterion evidence and attention targets.
303
+ Unrelated documents keep their mounted query and DOM blocks. Relevant updates
304
+ preserve unchanged controls, expanded details and diagrams; changed reading blocks
305
+ receive a brief outline without animation. Native GET links and server-rendered
306
+ HTML remain usable with JavaScript disabled.
307
+
308
+ Use **Pause updates** to stop automatic invalidation while reading. The count
309
+ reports observed hints, bounded at **256+**, rather than a count of edits or work
310
+ completed. Resume and reconnect reconcile the full workspace. A missed server-local
311
+ PubSub sequence, unknown path or incomplete index also requires reconciliation;
312
+ there is no durable event journal or replay guarantee.
313
+
314
+ Connection, source-watcher availability, pending reads and read failures remain
315
+ separate. The status reports **live** only when the connection and last observed
316
+ watcher are available and active page/navigation reads have settled. A failed read
317
+ keeps the visible source and reports **refresh failed**. A transport outage or
318
+ unavailable watcher reports **reconnecting**. Mark seen remains an explicit action;
319
+ pausing never disables clearing or the 30-day baseline expiry.
320
+
321
+ Each page owns a native streaming HTTP subscription and disposes its registry on
322
+ pagehide. Returning from the browser's page cache creates a fresh client. Browser
323
+ HTTP connection limits still apply; simultaneous tab capacity is not established.
313
324
 
314
325
  ## Embedding
315
326