humainflow-web/src/app
Lucio Lelii 0b706ea95c Group the flows list by project, with shared context and project runs
Projects group the flow list in place: no new page or tab, the existing sidebar
list gains collapsible per-project sections plus a project filter. Everything is
behind PROJECTS_ENABLED in shared/feature-flags, and with no projects the list
renders exactly as it did before - flows-list.spec guards that.

FlowsList stays the single owner of the load, filter, sort and list state; the
grouping is extracted into a pure flow-grouping.ts and a presentational
flows-group component. A wrapper rendering N flows lists would have re-registered
the same list state and re-triggered the load N times. The group chrome mirrors
tasks-executions-list, which already implements collapsible groups, so the two
sidebars read as one product.

toFlowCreateRequest deliberately still carries no project. It builds the
full-replace PUT the editor issues on every save, so a project sent there would
be silently dropped each time; membership changes only through
assignFlowToProject. flow-mapper.spec guards it.

Deleting a project destroys its flows, so it gets its own dialog rather than a
wider ConfirmDialogService: it names the count, lists the flows, says that
finalized flows go too - which the flow list otherwise forbids - and requires the
project name to be typed. Widening the shared confirm service for one destructive
caller would have rippled through every other call site.

Moving a flow between projects is a menu item, not drag-and-drop: the sidebar is
320px with its own scroll, and the whole card is already a click target, so a
drag gesture would fight the open-flow gesture. Flow order inside a project uses
up/down arrows for the same reason.

Shared context is edited in a dialog modelled on the Global Inputs panel, which
is the mental model users already have for ${{global.x}}; the title toolbar shows
the inherited values read-only, because that is where prompts are written.

"Run project" creates and starts a run - creating alone would look like nothing
happened. Runs come back BLOCKED or STOPPED when a step needs inputs or failed,
and the UI says so instead of claiming progress. Project runs surface in /tasks
as sibling groups labelled with a project chip, derived in tasks-executor: no
second nesting level and no backend change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-03 07:53:42 +02:00
..
guards fix: correct real bugs and remove dead code found in a full-project quality review 2026-07-21 14:27:34 +02:00
interceptors Split admin services from authorization and add session checks 2026-04-15 12:10:36 +02:00
layouts Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
models Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
pages Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
services Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
shared Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
stores Add fullscreen mode, wider zoom-out, and draggable execution graph positions 2026-09-02 20:00:34 +02:00
utilities Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
app.config.ts feat: improve auth flow and task execution UX 2026-04-09 14:01:56 +02:00
app.css initial commit 2025-12-11 12:51:55 +01:00
app.html Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
app.routes.ts refactor: code quality improvements (tasks 1-15) 2026-04-09 14:53:02 +02:00
app.spec.ts Strengthen frontend spec coverage 2026-04-21 12:39:33 +02:00
app.ts Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00