diff --git a/bin/fm-session-start.sh b/bin/fm-session-start.sh index 8e82477a53..d47e937492 100755 --- a/bin/fm-session-start.sh +++ b/bin/fm-session-start.sh @@ -257,16 +257,30 @@ print_backlog_tasks_axi_compact() { fi } +# print_backlog_beads_compact - beads-authority migration Stage 2 (see +# data/beads-authority-migration-scout/report.md section 4). Mirrors +# data/backlog.md's `## In flight`/`## Queued` structure instead of listing +# only bd's native --ready set, which silently drops in_progress/blocked +# work from the digest. Both sections are scoped by fm_beads_fleet_label so +# this stays firstmate's fleet view, not the shared federated store's full +# cross-project set (same label fm-fleet-snapshot.sh's Stage 1 beads read +# uses). Any read failure falls back to the whole title-line rendering, same +# as before Stage 2. print_backlog_beads_compact() { - local path=$1 out rc - printf 'compact backlog listing (beads task store; max %s item(s))\n' "$BACKLOG_LIMIT" - out=$(task list --ready --limit "$BACKLOG_LIMIT" 2>&1) - rc=$? - if [ "$rc" -eq 0 ]; then - printf '%s\n' "$out" + local path=$1 label out_inflight rc_inflight out_queued rc_queued + label=$(fm_beads_fleet_label) + printf 'compact backlog listing (beads task store; label %s; max %s item(s) per section)\n' "$label" "$BACKLOG_LIMIT" + out_inflight=$(task list --label "$label" --status in_progress,blocked --limit "$BACKLOG_LIMIT" 2>&1) + rc_inflight=$? + out_queued=$(task list --label "$label" --ready --limit "$BACKLOG_LIMIT" 2>&1) + rc_queued=$? + if [ "$rc_inflight" -eq 0 ] && [ "$rc_queued" -eq 0 ]; then + printf '## In flight\n%s\n' "$out_inflight" + printf '## Queued\n%s\n' "$out_queued" else printf 'beads task listing failed; falling back to title-line rendering.\n' - printf '%s\n' "$out" + printf '%s\n' "$out_inflight" + printf '%s\n' "$out_queued" if [ -f "$path" ]; then print_backlog_manual_compact "$path" "fallback" fi diff --git a/docs/configuration.md b/docs/configuration.md index 4469930014..cd7ae77f00 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -52,16 +52,18 @@ Because bootstrap requires `tasks-axi` on `PATH` on every profile, that delegati Compatible means the shared bootstrap probe accepts `tasks-axi --version` as 0.1.1 or newer, `tasks-axi update --help` exposes `--archive-body`, and `tasks-axi mv --help` exposes `[...]` for the atomic multi-ID move introduced in 0.2.2 and required by handoff delegation. That sentence is the single owner of the tasks-axi compatibility definition; every other document points here instead of restating the version gates. Bootstrap requires compatible `tasks-axi` on every profile; see "Toolchain" below for missing-tool reporting and silent default-backend behavior. -Set the local, gitignored `config/backlog-backend` file to `beads` to use the beads federated `task` store as the queue source; session-start's digest will list the store's native ready set (via `task list --ready`, bd's dependency-derived readiness with no manual tagging) instead of `data/backlog.md`. +Set the local, gitignored `config/backlog-backend` file to `beads` to use the beads federated `task` store as the queue source instead of `data/backlog.md`. +Session-start's digest mirrors `data/backlog.md`'s `## In flight`/`## Queued` split with two beads-sourced sections, both scoped by the firstmate-fleet label below: **In flight** is `task list --label