Skip to content

feat(bin): add live fleet task-list view - #2

Merged
ItsFlow merged 7 commits into
mainfrom
fm/live-tasklist-view
Jul 28, 2026
Merged

feat(bin): add live fleet task-list view#2
ItsFlow merged 7 commits into
mainfrom
fm/live-tasklist-view

Conversation

@ItsFlow

@ItsFlow ItsFlow commented Jul 26, 2026

Copy link
Copy Markdown
Owner

What Changed

  • Added fm-tasklist-view.sh, a read-only live terminal board that renders in-flight, queued, upcoming, and recently done fleet work from FM_HOME snapshots.
  • Added option validation and display safeguards for interval, width, done-limit, color, clearing, and one-shot rendering, including visibility for held or orphaned current backlog records.
  • Documented the new task-list renderer and added shell coverage for board composition, priority order, option handling, width limits, and read-only behavior.

Risk Assessment

✅ Low: The updated change is a bounded read-only renderer over the existing snapshot contract, and the prior gate-visibility and option-parsing risks have been addressed without introducing material new source risks.

Testing

After inspecting the diff to confirm the intent, I ran the focused tasklist behavior suite and the modified backend suite, then manually rendered the CLI board and a short live refresh loop against a realistic fixture while proving state/ and data/ checksums stayed unchanged; all checks passed.

Evidence: Tasklist board one-frame render
$ FM_HOME=/var/folders/tc/llfmckm54ls5tzxm08q758lm0000gn/T/no-mistakes-evidence/01KYNBY2MJA1G1B1WE4TET47HP/tasklist-fixture/home PATH=/var/folders/tc/llfmckm54ls5tzxm08q758lm0000gn/T/no-mistakes-evidence/01KYNBY2MJA1G1B1WE4TET47HP/tasklist-fixture/fakebin:$PATH bin/fm-tasklist-view.sh --once --no-color --width 96 --done 2

FLEET · /var/folders/tc/llfmckm54ls5tzxm08q758lm0000gn/T/no-mistakes-evidence/01KYNBY2MJA1G1B1WE4TET47HP/tasklist-fixture/home
as of 2026-07-29 00:24:47

IN FLIGHT  (4 live · 2 in parallel)
────────────────────────────────────────────────────────────────────────────────────────────────
  ✓ done      scout-task       webapp       Investigate login redirects                         
  ▶ working   ship-api         api          Add pagination to the events API                    
    └ https://github.com/acme/repo/pull/9
  ▶ working   ship-search      api          Speed up the search index                           
  ⏸ parked    ship-ui          webapp       Rework the settings sidebar                           ⚠ needs decision

QUEUED  (ready, priority order)
────────────────────────────────────────────────────────────────────────────────────────────────
  queued-cache     api          Add a caching layer to the search endpoint          
  queued-report    analytics    Weekly usage report generator                       

UPCOMING  (waiting on a dependency or a hold)
────────────────────────────────────────────────────────────────────────────────────────────────
  blocked-migrate  Migrate to the new pagination shape                   blocked-by: ship-api
  held-canary      Run the production canary                             hold: captain runs th…

DONE · recent
────────────────────────────────────────────────────────────────────────────────────────────────
  2026-07-19 done-auth        Fix OAuth token refresh                             
    └ https://github.com/acme/repo/pull/7
  2026-07-18 done-scout       Audit bundle size                                   
    └ data/done-scout/report.md
Evidence: Tasklist live refresh transcript
$ FM_HOME=/var/folders/tc/llfmckm54ls5tzxm08q758lm0000gn/T/no-mistakes-evidence/01KYNBY2MJA1G1B1WE4TET47HP/tasklist-fixture/home PATH=/var/folders/tc/llfmckm54ls5tzxm08q758lm0000gn/T/no-mistakes-evidence/01KYNBY2MJA1G1B1WE4TET47HP/tasklist-fixture/fakebin:$PATH bin/fm-tasklist-view.sh --interval 0.5 --no-clear --no-color --width 80

FLEET · /var/folders/tc/llfmckm54ls5tzxm08q758lm0000gn/T/no-mistakes-evidence/01KYNBY2MJA1G1B1WE4TET47HP/tasklist-fixture/home
as of 2026-07-29 00:25:23

IN FLIGHT  (4 live · 2 in parallel)
────────────────────────────────────────────────────────────────────────────────
  ✓ done      scout-task       webapp       Investigate login redirects         
  ▶ working   ship-api         api          Add pagination to the events API    
    └ https://github.com/acme/repo/pull/9
  ▶ working   ship-search      api          Speed up the search index           
  ⏸ parked    ship-ui          webapp       Rework the settings sidebar           ⚠ needs decision

QUEUED  (ready, priority order)
────────────────────────────────────────────────────────────────────────────────
  queued-cache     api          Add a caching layer to the search e…
  queued-report    analytics    Weekly usage report generator       

UPCOMING  (waiting on a dependency or a hold)
────────────────────────────────────────────────────────────────────────────────
  blocked-migrate  Migrate to the new pagination shape   blocked-by: ship-api
  held-canary      Run the production canary             hold: captain runs th…

DONE · recent
────────────────────────────────────────────────────────────────────────────────
  2026-07-19 done-auth        Fix OAuth token refresh             
    └ https://github.com/acme/repo/pull/7
  2026-07-18 done-scout       Audit bundle size                   
    └ data/done-scout/report.md

refreshing every 0.5s · Ctrl-C to quit
FLEET · /var/folders/tc/llfmckm54ls5tzxm08q758lm0000gn/T/no-mistakes-evidence/01KYNBY2MJA1G1B1WE4TET47HP/tasklist-fixture/home
as of 2026-07-29 00:25:24

IN FLIGHT  (4 live · 2 in parallel)
────────────────────────────────────────────────────────────────────────────────
  ✓ done      scout-task       webapp       Investigate login redirects         
  ▶ working   ship-api         api          Add pagination to the events API    
    └ https://github.com/acme/repo/pull/9
  ▶ working   ship-search      api          Speed up the search index           
  ⏸ parked    ship-ui          webapp       Rework the settings sidebar           ⚠ needs decision

QUEUED  (ready, priority order)
────────────────────────────────────────────────────────────────────────────────
  queued-cache     api          Add a caching layer to the search e…
  queued-report    analytics    Weekly usage report generator       

UPCOMING  (waiting on a dependency or a hold)
────────────────────────────────────────────────────────────────────────────────
  blocked-migrate  Migrate to the new pagination shape   blocked-by: ship-api
  held-canary      Run the production canary             hold: captain runs th…

DONE · recent
────────────────────────────────────────────────────────────────────────────────
  2026-07-19 done-auth        Fix OAuth token refresh             
    └ https://github.com/acme/repo/pull/7
  2026-07-18 done-scout       Audit bundle size                   
    └ data/done-scout/report.md

refreshing every 0.5s · Ctrl-C to quit
�[?25h�[?25h
Evidence: Read-only render proof

state/data checksum comparison: unchanged

state/data checksum comparison: unchanged
before: /var/folders/tc/llfmckm54ls5tzxm08q758lm0000gn/T/no-mistakes-evidence/01KYNBY2MJA1G1B1WE4TET47HP/tasklist-state-before.sha256
after:  /var/folders/tc/llfmckm54ls5tzxm08q758lm0000gn/T/no-mistakes-evidence/01KYNBY2MJA1G1B1WE4TET47HP/tasklist-state-after.sha256

Pipeline

Updates from git push no-mistakes

⏭️ **intent** - skipped

✅ No issues found.

🔧 **Rebase** - 2 issues found → auto-fixed ✅
  • ⚠️ tests/fm-backend.test.sh - merge conflict rebasing onto refs/remotes/no-mistakes-push/fm/live-tasklist-view
  • ⚠️ tests/fm-backend.test.sh - merge conflict rebasing onto origin/main

🔧 Fix applied.
✅ Re-checked - no issues remain.

🔧 **Review** - 2 issues found → auto-fixed ✅
  • ⚠️ bin/fm-tasklist-view.sh:146 - $upcoming is built only from queued records while $inflight is built only from live state/*.meta tasks. The snapshot contract also has current backlog records that intentionally have no live child metadata, such as in-flight holds (current_role == "held") and invalid inventory disclosures in main_inventory; those now disappear from every band, so a home with an in-flight external/captain hold or orphaned in-flight row can render as empty instead of surfacing the hold/gate.
  • ⚠️ bin/fm-tasklist-view.sh:72 - --width unconditionally shifts and accepts the next token as the width. A malformed call like fm-tasklist-view.sh --width --once consumes --once, resets the invalid width to 80, and then enters the live loop instead of failing usage, which can hang scripted one-shot invocations.

🔧 Fix: Fix tasklist gates and option parsing
✅ Re-checked - no issues remain.

✅ **Test** - passed

✅ No issues found.

  • Inspected the target diff 61cd98dc91bcacef664bea0682ecdc60a0db9a02..ce5185b20561aa21f8903cc287cb903f4aaa3db6 to extract intent and affected tests.
  • bash tests/fm-tasklist-view.test.sh
  • bash tests/fm-backend.test.sh
  • Manual evidence render: FM_HOME=... PATH=... bin/fm-tasklist-view.sh --once --no-color --width 96 --done 2 captured to tasklist-view-transcript.txt.
  • Manual live refresh check: FM_HOME=... PATH=... bin/fm-tasklist-view.sh --interval 0.5 --no-clear --no-color --width 80 captured two frames to tasklist-live-loop-transcript.txt.
  • Manual read-only check: compared SHA-256 checksums for fixture state/ and data/ before and after rendering.
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

ItsFlow added 7 commits July 29, 2026 00:04
Add bin/fm-tasklist-view.sh, a read-only live projection of this home's
task and priority list for a persistent split pane. It renders IN FLIGHT
(with a parallel-worker marker), QUEUED (ready), UPCOMING (blocked or
held), and DONE-RECENT bands in backlog priority order, auto-refreshing
on a configurable interval with a one-shot mode for testing.

It is a thin renderer over bin/fm-fleet-snapshot.sh --json, the same
read-only data owner bin/fm-fleet-view.sh uses, so the board cannot
drift from the real backlog/state contract. Review-ready PR links and
done artifacts render on their own line so they stay clickable in
narrow panes. FM_HOME is required (fail-closed), and a briefly absent
or locked source keeps the last good frame instead of crashing.

Colocated tests cover band composition, priority ordering, the parallel
marker, secondmate exclusion, graceful empty rendering, the fail-closed
home contract, the --done/--width knobs, and a proof that a render
mutates no state or data file.
@ItsFlow
ItsFlow force-pushed the fm/live-tasklist-view branch from 9b4a337 to ce5185b Compare July 28, 2026 22:28
@ItsFlow ItsFlow changed the title feat: add live task-list board feat(bin): add live fleet task-list view Jul 28, 2026
@ItsFlow
ItsFlow merged commit 1b4054f into main Jul 28, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant