@plot-pm/board 0.3.1-rc.9 → 0.4.0-rc.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.
- package/dist/board-server.mjs +63 -63
- package/package.json +1 -1
- package/plot-plan-meta.sh +15 -2
package/package.json
CHANGED
package/plot-plan-meta.sh
CHANGED
|
@@ -83,6 +83,13 @@
|
|
|
83
83
|
# approved_raw the approval transition record as written (`## Status`
|
|
84
84
|
# `Approved:` or front matter `approved:` — who/when/channel,
|
|
85
85
|
# e.g. "2026-07-30, alice, in-session"); "" if absent
|
|
86
|
+
# delivered_raw the delivery transition record as written (`## Status`
|
|
87
|
+
# `Delivered:` or front matter `delivered:` — a date, often
|
|
88
|
+
# bare); "" if absent. NOT the same statement as
|
|
89
|
+
# `phase: delivered`: a plan can carry the phase with the
|
|
90
|
+
# record left empty (a bookkeeping fault plot-reconcile-scan
|
|
91
|
+
# reports), and a consumer that needs a DATE must read this
|
|
92
|
+
# rather than infer one from the phase.
|
|
86
93
|
# started_raw implementation-start records, one raw string per
|
|
87
94
|
# `Started:` line in `## Status` (repeatable; front matter
|
|
88
95
|
# `started:` contributes one entry); [] if absent.
|
|
@@ -115,7 +122,7 @@ if [ ${#files[@]} -eq 0 ] && [ ${#missing[@]} -eq 0 ]; then
|
|
|
115
122
|
fi
|
|
116
123
|
|
|
117
124
|
for f in ${missing[@]+"${missing[@]}"}; do
|
|
118
|
-
printf '{"file":"%s","format":"none","error":"file not found","phase_raw":"","phase":"NONE","phase_alt_raw":"","phase_alt":"NONE","type":"","title":"","sprint":"","story":"","assignee":"","branches":[],"prs":[],"review_raw":"","review":"NONE","impl_raw":"","impl":"NONE","approved_raw":"","released_raw":"","started_raw":[]}\n' \
|
|
125
|
+
printf '{"file":"%s","format":"none","error":"file not found","phase_raw":"","phase":"NONE","phase_alt_raw":"","phase_alt":"NONE","type":"","title":"","sprint":"","story":"","assignee":"","branches":[],"prs":[],"review_raw":"","review":"NONE","impl_raw":"","impl":"NONE","approved_raw":"","released_raw":"","delivered_raw":"","started_raw":[]}\n' \
|
|
119
126
|
"$(printf '%s' "$f" | sed 's/\\/\\\\/g; s/"/\\"/g')"
|
|
120
127
|
done
|
|
121
128
|
|
|
@@ -188,9 +195,11 @@ function reset_state() {
|
|
|
188
195
|
fm_status = ""; fm_phase = ""; fm_type = ""
|
|
189
196
|
fm_title = ""; fm_sprint = ""; fm_story = ""; fm_assignee = ""
|
|
190
197
|
fm_review = ""; fm_impl = ""; fm_approved = ""; fm_started = ""; fm_released = ""
|
|
198
|
+
fm_delivered = ""
|
|
191
199
|
canon_phase = ""; canon_type = ""
|
|
192
200
|
canon_sprint = ""; canon_story = ""; canon_assignee = ""
|
|
193
201
|
canon_review = ""; canon_impl = ""; canon_approved = ""; canon_released = ""
|
|
202
|
+
canon_delivered = ""
|
|
194
203
|
h1_title = ""
|
|
195
204
|
in_fm = 0; section = ""; in_comment = 0; branches_seen = 0
|
|
196
205
|
delete branches; n_branches = 0
|
|
@@ -199,7 +208,7 @@ function reset_state() {
|
|
|
199
208
|
delete deferred_of; delete claimed_of; delete ordered_b; n_waves = 0
|
|
200
209
|
delete started; n_started = 0
|
|
201
210
|
}
|
|
202
|
-
function emit_record( fmt, praw, palt_raw, traw, title, sprint, story, assignee, review, impl, approved, i, j, out, sorted_b, sorted_p, nb, np) {
|
|
211
|
+
function emit_record( fmt, praw, palt_raw, traw, title, sprint, story, assignee, review, impl, approved, delivered, i, j, out, sorted_b, sorted_p, nb, np) {
|
|
203
212
|
if (fm_status != "" || fm_phase != "") {
|
|
204
213
|
fmt = "frontmatter"
|
|
205
214
|
praw = (fm_status != "") ? fm_status : fm_phase
|
|
@@ -220,6 +229,7 @@ function emit_record( fmt, praw, palt_raw, traw, title, sprint, story, assigne
|
|
|
220
229
|
impl = strip_placeholder((fm_impl != "") ? fm_impl : canon_impl)
|
|
221
230
|
approved = strip_placeholder((fm_approved != "") ? fm_approved : canon_approved)
|
|
222
231
|
released = strip_placeholder((fm_released != "") ? fm_released : canon_released)
|
|
232
|
+
delivered = strip_placeholder((fm_delivered != "") ? fm_delivered : canon_delivered)
|
|
223
233
|
if (fm_started != "" && strip_placeholder(fm_started) != "") started[++n_started] = fm_started
|
|
224
234
|
# Insertion sort + dedupe (portable: no gawk asort).
|
|
225
235
|
nb = 0
|
|
@@ -266,6 +276,7 @@ function emit_record( fmt, praw, palt_raw, traw, title, sprint, story, assigne
|
|
|
266
276
|
out = out ",\"impl_raw\":\"" jesc(impl) "\",\"impl\":\"" norm_impl(impl) "\""
|
|
267
277
|
out = out ",\"approved_raw\":\"" jesc(approved) "\""
|
|
268
278
|
out = out ",\"released_raw\":\"" jesc(released) "\""
|
|
279
|
+
out = out ",\"delivered_raw\":\"" jesc(delivered) "\""
|
|
269
280
|
out = out ",\"started_raw\":["
|
|
270
281
|
for (i = 1; i <= n_started; i++) out = out (i > 1 ? "," : "") "\"" jesc(started[i]) "\""
|
|
271
282
|
out = out "]}"
|
|
@@ -292,6 +303,7 @@ in_fm {
|
|
|
292
303
|
else if (lower ~ /^impl:/ && fm_impl == "") fm_impl = val_after_colon($0)
|
|
293
304
|
else if (lower ~ /^approved:/ && fm_approved == "") fm_approved = val_after_colon($0)
|
|
294
305
|
else if (lower ~ /^released:/ && fm_released == "") fm_released = val_after_colon($0)
|
|
306
|
+
else if (lower ~ /^delivered:/ && fm_delivered == "") fm_delivered = val_after_colon($0)
|
|
295
307
|
else if (lower ~ /^started:/ && fm_started == "") fm_started = val_after_colon($0)
|
|
296
308
|
next
|
|
297
309
|
}
|
|
@@ -320,6 +332,7 @@ section == "status" {
|
|
|
320
332
|
else if (lower ~ /^[ \t]*[-*]?[ \t]*\**impl[:*]/ && canon_impl == "") canon_impl = val_after_colon($0)
|
|
321
333
|
else if (lower ~ /^[ \t]*[-*]?[ \t]*\**approved[:*]/ && canon_approved == "") canon_approved = val_after_colon($0)
|
|
322
334
|
else if (lower ~ /^[ \t]*[-*]?[ \t]*\**released[:*]/ && canon_released == "") canon_released = val_after_colon($0)
|
|
335
|
+
else if (lower ~ /^[ \t]*[-*]?[ \t]*\**delivered[:*]/ && canon_delivered == "") canon_delivered = val_after_colon($0)
|
|
323
336
|
else if (lower ~ /^[ \t]*[-*]?[ \t]*\**started[:*]/) {
|
|
324
337
|
_s = strip_placeholder(val_after_colon($0))
|
|
325
338
|
if (_s != "") started[++n_started] = _s
|