Skip to content

fix: NO ENGAGEMENT lists engagements only, not rendered dashboards - #22

Merged
suboss87 merged 1 commit into
Mainfrom
devin/1785813663-unbound-engagement-list
Aug 5, 2026
Merged

fix: NO ENGAGEMENT lists engagements only, not rendered dashboards#22
suboss87 merged 1 commit into
Mainfrom
devin/1785813663-unbound-engagement-list

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Found while running a fresh-user end-to-end pass (init → scan → debrief → prep → doctor → dashboard → unbound dir). After fde dashboard renders ~/fde-engagements/fieldbook-current.html, running fde resume from an unbound workspace advertised that HTML file as an existing client:

NO ENGAGEMENT for this workspace.
existing: acme, fieldbook-current.html, globex-health-ltd

cmdResume's unbound branch listed raw readdirSync entries filtered only on .-prefix, unlike cmdStatus / gatherEngagements, which both require a <dir>/.fde. Applied the same guard (plus .sort() for stable output), so only real engagements are offered as bind targets.

New test asserts the list after a dashboard render is exactly existing: clienta and contains no fieldbook-current.html. 73/73 tests + all 45 bin/check.js gates pass.

Link to Devin session: https://app.devin.ai/sessions/f135381c4682413bae73dff38eb6d1a3
Requested by: @suboss87


Open in Devin Review

Co-Authored-By: Subash Natarajan <suboss87@gmail.com>
@suboss87 suboss87 self-assigned this Aug 4, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

Runtime verification — unbound engagement list + Fieldbook UI

Tested end-to-end with the real CLI against a sandboxed FDEOPS_ENGAGEMENTS_ROOT, and the rendered fieldbook opened in Chrome as file:///…. A git worktree at HEAD~1 was used as the pre-fix build for contrast.

The fix

🔴 Before (HEAD~1) 🟢 After (this PR)
before after
existing: acme-corp, fieldbook-current.html, fieldbook.html, globex-freight, strayfile.txt, strayzdir existing: acme-corp, globex-freight (exit 2)

Break attempts all held: a stray file, a stray directory without .fde/, a dotfile, and an engagement whose .fde/ was deleted (directory kept) — the last one still disappears from the list, proving the filter checks for .fde/ rather than just "is a directory".

Fieldbook UI is truthful against .fde/*.md

fieldbook card

Trust at risk (from Dan Ruiz's [signal:red]), phase Build & Guard, NOW = the Next: line, 1 open med risk, 2 people (Maya green / Dan red, team status ● 1 ○ 1), decision + receipt rows — all match the markdown. --all renders acme red vs globex amber (1 red / 1 amber / 0 green). Sidebar search filters and highlights correctly.

Privacy: no <private> leak

Bank account for payout: 12345678 was placed in context.md, risks.md and stakeholders.md, then both dashboards re-rendered.

leak check
cli leak check

Secret present in all 3 markdown files (control), 0 occurrences in both HTML files, Ctrl+F on view-source: → 0/0, private - redacted marker → 1/1, and 0 hits in resume, resume --full, triage, prep, status --all, receipts, garden, doctor, scan.

Surrounding flow + caveats

log --undo, redact <term> (preview + --apply), status --all, prep, garden, scan all behaved as expected; doctor exits 1 on hygiene issues as documented.

Two things to note, neither caused by this PR:

  • dashboard --open could not be verified here — it opened about:blank because this sandbox's google-chrome shim URI-encodes the plain path passed to xdg-open. Untested rather than failing.
  • Each fde log contact entry renders twice in the LOG panel: it is written to both stakeholders.md ## Signal history and .fde/.signal-ledger, and extractLog reads both without de-duplication.

@suboss87
suboss87 merged commit eb8addb into Main Aug 5, 2026
2 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