Skip to content

FE-573: Project dashboard workflow state#38

Merged
lunelson merged 5 commits into
mainfrom
ln/fe-573-project-dashboard-workflow
Apr 12, 2026
Merged

FE-573: Project dashboard workflow state#38
lunelson merged 5 commits into
mainfrom
ln/fe-573-project-dashboard-workflow

Conversation

@lunelson
Copy link
Copy Markdown
Contributor

feat: project dashboard shows per-phase workflow status badges

Amp-Thread-ID: https://ampcode.com/threads/T-019d7708-5385-70ab-bb6e-9d9d10a0632f
Co-authored-by: Amp amp@ampcode.com

chore: mark 11a done, update coverage counts

Amp-Thread-ID: https://ampcode.com/threads/T-019d7708-5385-70ab-bb6e-9d9d10a0632f
Co-authored-by: Amp amp@ampcode.com

plan: add slice 11b — fixture scenarios + dev seed CLI for outer-loop testing

Amp-Thread-ID: https://ampcode.com/threads/T-019d7708-5385-70ab-bb6e-9d9d10a0632f
Co-authored-by: Amp amp@ampcode.com

feat: fixture scenarios + dev seed cli

Amp-Thread-ID: https://ampcode.com/threads/T-019d776b-9a7d-7521-b45c-ee24c4e45fca
Co-authored-by: Amp amp@ampcode.com

chore: batch scope cards for slices 12 and 13

Amp-Thread-ID: https://ampcode.com/threads/T-019d776b-9a7d-7521-b45c-ee24c4e45fca
Co-authored-by: Amp amp@ampcode.com

@linear
Copy link
Copy Markdown

linear Bot commented Apr 10, 2026

FE-573 Project dashboard workflow state

Surface durable workflow state on the project list so users can tell which projects are unstarted, in progress, closed with debt, invalidated, or export-ready without opening each workspace. This replaces the deferred revisit slot with a missing but lower-risk requirement.

Copy link
Copy Markdown
Contributor Author

lunelson commented Apr 10, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@lunelson lunelson changed the title feat: project dashboard shows per-phase workflow status badges FE-573: Project dashboard workflow state Apr 10, 2026
@lunelson lunelson marked this pull request as ready for review April 12, 2026 06:29
@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented Apr 12, 2026

🤖 Augment PR Summary

Summary: This PR surfaces per-phase workflow state on the project dashboard and adds reusable fixture scenarios for outer-loop testing.

Changes:

  • Extend GET /api/projects to return a compact workflowSummary (scope/design/requirements/criteria) per project.
  • Render per-phase workflow status badges on each project card in the Project List UI.
  • Refactor server tests to consume shared scenario seeding helpers instead of inline seed code.
  • Add a shared src/server/fixtures/scenarios.ts module plus a npm run seed CLI entry point for manual seeding.

Technical Notes: ProjectListItem is still derived from listProjectStates; the create-project mutation only depends on the returned id.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode Bot left a comment

Choose a reason for hiding this comment

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

Review completed. 3 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

Comment thread src/server/core.ts
const workflow = getCurrentWorkflowState(db, project.id);
return {
...project,
workflowSummary: {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

workflowSummary only includes each phase’s status, so consumers can’t distinguish “normal closed” vs forced/low-readiness closures that are represented elsewhere in WorkflowPhaseState (e.g., closureBasis/readiness). If FE-573 needs “closed with debt”/export readiness differentiation in the list, consider whether this summary needs to carry more than status.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

{phaseLabels.map(({ key, label }) => (
<span
key={key}
className={`rounded-sm px-1.5 py-0.5 text-xs font-medium ${statusStyles[p.workflowSummary[key]]}`}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

These badges currently render only the phase label, with the actual status conveyed only via color (statusStyles[...]), which is hard to interpret for color-blind users and not exposed to screen readers. Consider also exposing the status text/semantics (e.g., via an accessible label) derived from p.workflowSummary[key].

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

];

renderProjectList();
expect(screen.getByText('Scope')).toBeDefined();
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This test asserts that the phase labels render, but those labels are static and don’t verify that different workflowSummary values affect the rendered badge styling/semantics. As written, a regression where the UI ignores workflowSummary could still pass.

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Copy link
Copy Markdown
Contributor Author

lunelson commented Apr 12, 2026

Merge activity

  • Apr 12, 12:28 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Apr 12, 12:29 PM UTC: Graphite rebased this pull request as part of a merge.
  • Apr 12, 12:30 PM UTC: @lunelson merged this pull request with Graphite.

@lunelson lunelson changed the base branch from ln/fe-542-criteria-review-mode to graphite-base/38 April 12, 2026 12:28
@lunelson lunelson changed the base branch from graphite-base/38 to main April 12, 2026 12:29
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