@shivaedev/work-board 0.9.0 → 0.10.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 (168) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +31 -1
  3. package/assets/native.js +35 -29
  4. package/dist/board.d.ts.map +1 -1
  5. package/dist/board.js +14 -1
  6. package/dist/board.js.map +1 -1
  7. package/dist/browser/client.d.ts +2 -0
  8. package/dist/browser/client.d.ts.map +1 -1
  9. package/dist/browser/client.js +2 -1
  10. package/dist/browser/client.js.map +1 -1
  11. package/dist/browser/entry.d.ts.map +1 -1
  12. package/dist/browser/entry.js +2 -0
  13. package/dist/browser/entry.js.map +1 -1
  14. package/dist/browser/handoffs/copy.d.ts +3 -0
  15. package/dist/browser/handoffs/copy.d.ts.map +1 -0
  16. package/dist/browser/handoffs/copy.js +47 -0
  17. package/dist/browser/handoffs/copy.js.map +1 -0
  18. package/dist/browser/handoffs/fields.d.ts +11 -0
  19. package/dist/browser/handoffs/fields.d.ts.map +1 -0
  20. package/dist/browser/handoffs/fields.js +45 -0
  21. package/dist/browser/handoffs/fields.js.map +1 -0
  22. package/dist/browser/handoffs/schema.d.ts +89 -0
  23. package/dist/browser/handoffs/schema.d.ts.map +1 -0
  24. package/dist/browser/handoffs/schema.js +38 -0
  25. package/dist/browser/handoffs/schema.js.map +1 -0
  26. package/dist/browser/handoffs/setup.d.ts +2 -0
  27. package/dist/browser/handoffs/setup.d.ts.map +1 -0
  28. package/dist/browser/handoffs/setup.js +108 -0
  29. package/dist/browser/handoffs/setup.js.map +1 -0
  30. package/dist/browser/responses/draftSession.d.ts +1 -1
  31. package/dist/browser/responses/draftSession.d.ts.map +1 -1
  32. package/dist/browser/responses/draftSession.js +4 -4
  33. package/dist/browser/responses/draftSession.js.map +1 -1
  34. package/dist/browser/responses/preview.js.map +1 -1
  35. package/dist/cli.js.map +1 -1
  36. package/dist/files/list.d.ts.map +1 -1
  37. package/dist/handoffs/html.d.ts +37 -0
  38. package/dist/handoffs/html.d.ts.map +1 -0
  39. package/dist/handoffs/html.js +31 -0
  40. package/dist/handoffs/html.js.map +1 -0
  41. package/dist/handoffs/page.d.ts +7 -0
  42. package/dist/handoffs/page.d.ts.map +1 -0
  43. package/dist/handoffs/page.js +31 -0
  44. package/dist/handoffs/page.js.map +1 -0
  45. package/dist/handoffs/records.d.ts +7 -0
  46. package/dist/handoffs/records.d.ts.map +1 -0
  47. package/dist/handoffs/records.js +30 -0
  48. package/dist/handoffs/records.js.map +1 -0
  49. package/dist/handoffs/service.d.ts +55 -0
  50. package/dist/handoffs/service.d.ts.map +1 -0
  51. package/dist/handoffs/service.js +82 -0
  52. package/dist/handoffs/service.js.map +1 -0
  53. package/dist/handoffs/source.d.ts +11 -0
  54. package/dist/handoffs/source.d.ts.map +1 -0
  55. package/dist/handoffs/source.js +31 -0
  56. package/dist/handoffs/source.js.map +1 -0
  57. package/dist/http/assets.d.ts.map +1 -1
  58. package/dist/http/assets.js.map +1 -1
  59. package/dist/http/events.d.ts.map +1 -1
  60. package/dist/http/loopback.d.ts.map +1 -1
  61. package/dist/http/page.d.ts.map +1 -1
  62. package/dist/http/respond.d.ts.map +1 -1
  63. package/dist/metadata/backlinks.d.ts.map +1 -1
  64. package/dist/metadata/backlinks.js +1 -0
  65. package/dist/metadata/backlinks.js.map +1 -1
  66. package/dist/metadata/fields.d.ts +14 -1
  67. package/dist/metadata/fields.d.ts.map +1 -1
  68. package/dist/metadata/model.js.map +1 -1
  69. package/dist/metadata/problems.d.ts.map +1 -1
  70. package/dist/metadata/problems.js +1 -0
  71. package/dist/metadata/problems.js.map +1 -1
  72. package/dist/metadata/schema.d.ts +18 -1
  73. package/dist/metadata/schema.d.ts.map +1 -1
  74. package/dist/metadata/schema.js +3 -1
  75. package/dist/metadata/schema.js.map +1 -1
  76. package/dist/page/escape.d.ts.map +1 -1
  77. package/dist/page/metadata.d.ts.map +1 -1
  78. package/dist/page/metadata.js +6 -1
  79. package/dist/page/metadata.js.map +1 -1
  80. package/dist/page/metadataDetails.d.ts.map +1 -1
  81. package/dist/page/metadataDetails.js +3 -0
  82. package/dist/page/metadataDetails.js.map +1 -1
  83. package/dist/page/nav.d.ts.map +1 -1
  84. package/dist/page/navigationScript.js +1 -1
  85. package/dist/page/shell.d.ts +1 -1
  86. package/dist/page/shell.d.ts.map +1 -1
  87. package/dist/page/shell.js.map +1 -1
  88. package/dist/page/startTemplates.d.ts +89 -3
  89. package/dist/page/startTemplates.d.ts.map +1 -1
  90. package/dist/page/swap.d.ts +1 -1
  91. package/dist/page/swap.d.ts.map +1 -1
  92. package/dist/page/swap.js +2 -2
  93. package/dist/page/updated.d.ts.map +1 -1
  94. package/dist/render/board.d.ts.map +1 -1
  95. package/dist/render/callouts.d.ts.map +1 -1
  96. package/dist/render/code.d.ts.map +1 -1
  97. package/dist/render/documentHeadings.d.ts.map +1 -1
  98. package/dist/render/documentLinks.d.ts.map +1 -1
  99. package/dist/render/footnotes.d.ts.map +1 -1
  100. package/dist/render/highlighter.d.ts.map +1 -1
  101. package/dist/render/highlighter.js.map +1 -1
  102. package/dist/render/markdown.js.map +1 -1
  103. package/dist/render/questionnaireDocuments.d.ts.map +1 -1
  104. package/dist/render/visualDocuments.d.ts.map +1 -1
  105. package/dist/responses/agent.d.ts +8 -8
  106. package/dist/responses/agent.js.map +1 -1
  107. package/dist/responses/flags.d.ts.map +1 -1
  108. package/dist/responses/outcome.d.ts.map +1 -1
  109. package/dist/responses/publish.d.ts +1 -1
  110. package/dist/responses/publish.d.ts.map +1 -1
  111. package/dist/responses/publish.js +7 -7
  112. package/dist/responses/publish.js.map +1 -1
  113. package/dist/responses/publishIn.d.ts +1 -1
  114. package/dist/responses/publishIn.d.ts.map +1 -1
  115. package/dist/responses/publishIn.js +3 -3
  116. package/dist/responses/publishIn.js.map +1 -1
  117. package/dist/responses/records.d.ts.map +1 -1
  118. package/dist/responses/records.js +2 -1
  119. package/dist/responses/records.js.map +1 -1
  120. package/dist/responses/waitFor.d.ts.map +1 -1
  121. package/dist/rpc/contract.d.ts +67 -1
  122. package/dist/rpc/contract.d.ts.map +1 -1
  123. package/dist/rpc/contract.js +3 -2
  124. package/dist/rpc/contract.js.map +1 -1
  125. package/dist/rpc/handoffContract.d.ts +142 -0
  126. package/dist/rpc/handoffContract.d.ts.map +1 -0
  127. package/dist/rpc/handoffContract.js +26 -0
  128. package/dist/rpc/handoffContract.js.map +1 -0
  129. package/dist/rpc/server.d.ts +2 -0
  130. package/dist/rpc/server.d.ts.map +1 -1
  131. package/dist/rpc/server.js +4 -1
  132. package/dist/rpc/server.js.map +1 -1
  133. package/dist/search/collector.d.ts.map +1 -1
  134. package/dist/search/entries.js.map +1 -1
  135. package/dist/search/linkCollector.d.ts.map +1 -1
  136. package/dist/serve-cli.js +2 -2
  137. package/dist/serve-cli.js.map +1 -1
  138. package/dist/serve.d.ts.map +1 -1
  139. package/dist/views/state.js.map +1 -1
  140. package/package.json +3 -3
  141. package/src/board.ts +14 -1
  142. package/src/browser/client.ts +3 -1
  143. package/src/browser/entry.ts +2 -0
  144. package/src/browser/handoffs/copy.ts +45 -0
  145. package/src/browser/handoffs/fields.ts +50 -0
  146. package/src/browser/handoffs/schema.ts +44 -0
  147. package/src/browser/handoffs/setup.ts +113 -0
  148. package/src/browser/responses/draftSession.ts +11 -4
  149. package/src/handoffs/html.ts +42 -0
  150. package/src/handoffs/page.ts +45 -0
  151. package/src/handoffs/records.ts +34 -0
  152. package/src/handoffs/service.ts +103 -0
  153. package/src/handoffs/source.ts +35 -0
  154. package/src/metadata/backlinks.ts +1 -0
  155. package/src/metadata/problems.ts +1 -0
  156. package/src/metadata/schema.ts +3 -1
  157. package/src/page/metadata.ts +7 -1
  158. package/src/page/metadataDetails.ts +3 -0
  159. package/src/page/navigationScript.ts +1 -1
  160. package/src/page/shell.ts +1 -1
  161. package/src/page/swap.ts +2 -2
  162. package/src/responses/publish.ts +7 -7
  163. package/src/responses/publishIn.ts +10 -3
  164. package/src/responses/records.ts +4 -1
  165. package/src/rpc/contract.ts +3 -2
  166. package/src/rpc/handoffContract.ts +26 -0
  167. package/src/rpc/server.ts +6 -1
  168. package/src/serve-cli.ts +2 -2
package/CHANGELOG.md CHANGED
@@ -4,10 +4,35 @@
4
4
 
5
5
  ### Changed
6
6
 
7
+ - Record agent-owned project editing and human-owned response content, practical
8
+ best-effort conflict handling, and deferred direct editing/undo in the delivery
9
+ plan. Ordinary file editing remains sufficient for agents; the approved D3
10
+ handoff convention is delivered in 0.10.0 below.
11
+ - Build package JavaScript, declarations and source maps with TypeScript 7.
7
12
  - Remove document export and shareable artifact/packet generation from the vision
8
13
  and delivery scope. Keep onboarding/report templates and linked in-app review.
9
14
  - 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.
10
15
 
16
+ ## 0.10.0 - 2026-10-06
17
+
18
+ ### Added
19
+
20
+ - Local Markdown handoffs with reviewed source snapshots, explicit receipt states
21
+ and a copyable prompt for an existing agent session. Agents acknowledge using
22
+ ordinary file edits; preparing a handoff does not launch or wake an agent.
23
+ - Native RPC preparation/history, draft persistence, safe rich context rendering,
24
+ no-JavaScript reading and native navigation. Reuse the opt-in Linux file
25
+ publisher; retries retain receipt rather than creating duplicate direction.
26
+
27
+ ## 0.9.1 - 2026-10-06
28
+
29
+ ### Fixed
30
+
31
+ - Treat syntactically damaged frontmatter in the published responses/ record
32
+ namespace as unknown history, including unterminated headers. Do not mistake
33
+ unreadable feedback for an empty response list or an unanswered deadline.
34
+ Ordinary Markdown outside that namespace retains its reading compatibility.
35
+
11
36
  ## 0.9.0 - 2026-10-06
12
37
 
13
38
  ### Added
package/README.md CHANGED
@@ -62,9 +62,37 @@ preference says otherwise. A keyboard skip link moves directly to the content.
62
62
  | --- | --- | --- |
63
63
  | `<dir>` | required | The folder to serve. |
64
64
  | `--port` | `4747` | The port on `127.0.0.1`. `0` picks a free one. |
65
- | `--responses` | `false` | Explicitly enable local question/response writes. The first writer requires Linux, a real workspace directory, `/proc/self/fd`, hard links and directory synchronization. Reading remains available on other supported Node platforms. |
65
+ | `--responses` | `false` | Explicitly enable local question/response/handoff writes. The first writer requires Linux, a real workspace directory, `/proc/self/fd`, hard links and directory synchronization. Reading remains available on other supported Node platforms. |
66
66
  | `--home` | none | The file shown at `/` as a board, relative to the folder. The command stops with an error unless it leads to one of the markdown files listed from the folder. Without it, `/` shows the first file as a document. |
67
67
 
68
+ ## Hand a task to an existing agent session
69
+
70
+ Open a uniquely identified project item and choose **Prepare an agent handoff**.
71
+ Review the current Markdown/Mermaid context, enter a local recipient label, goal,
72
+ constraints and next action, then preview and prepare. The existing `--responses`
73
+ opt-in also enables this writer. Work Board creates `handoffs/<id>.md` with a stable
74
+ ID, direction, original source path/revision and the exact reviewed source below
75
+ its frontmatter, including declared criteria. Context is limited to 256 KiB.
76
+
77
+ **Copy tiny prompt** gives you a short instruction containing the absolute file
78
+ path. Paste it into the agent session you already use. Preparing a file records
79
+ `requested`; it does not wake or launch an agent. Without clipboard permission,
80
+ the prompt is selected for manual copying. Saved handoffs remain readable without
81
+ JavaScript; preparing them requires JavaScript and the existing Linux writer.
82
+
83
+ The agent reads the file and edits `handoff.state` to `acknowledged`, `rejected`
84
+ or `unavailable`, with optional `handoff.by` and `handoff.note`. These are literal
85
+ local labels and receipt, independent of task status, execution or human
86
+ acceptance. Agents can keep using the existing question poll/wait commands for
87
+ human answers. No acknowledgment command or special project editor is required.
88
+
89
+ Retries using the same handoff ID preserve the agent's receipt and extra metadata;
90
+ conflicting direction, moved/duplicate IDs and a changed source before initial
91
+ preparation are rejected. A missing receipt remains unconfirmed, including after
92
+ restart. Saved context remains inspectable if the source disappears or changes.
93
+ Drafts share the existing browser-local workspace store and its 30-day/2-MiB
94
+ bounds; clearing that store clears response and handoff drafts together.
95
+
68
96
  ## Local responses and one logical wait per question
69
97
 
70
98
  Start one shared server with explicit write opt-in:
@@ -130,6 +158,8 @@ recovery, not exactly-once agent action. The server's 30-second request leases a
130
158
  one-second reconciliation checks are distinct from the human's 48-hour deadline.
131
159
  During a transport/index outage, waits retry the same question; at the deadline,
132
160
  an unavailable service is reported as unavailable rather than falsely unanswered.
161
+ Damaged frontmatter in the `responses/` record namespace also makes history
162
+ unavailable; repair the record before treating its question as unanswered.
133
163
 
134
164
  The client uses bundled native Effect RPC over the existing local command path.
135
165
  Serving imports are loaded only for the server command. Each waiter has no