humainflow-web/src/app/services
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
..
admin fix: correct real bugs and remove dead code found in a full-project quality review 2026-07-21 14:27:34 +02:00
assistant Fix create-with-AI minimize/resume regression from cancellable-call stub 2026-09-02 13:39:55 +02:00
authorization fix: correct real bugs and remove dead code found in a full-project quality review 2026-07-21 14:27:34 +02:00
bias feat: update flow editor enhancements 2026-09-01 15:53:39 +02:00
blocks fix(blocks): follow the renamed block type catalog endpoint 2026-09-02 11:20:48 +02:00
containers feat: update flow editor enhancements 2026-09-01 15:53:39 +02:00
dialogs Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
flows Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
graph-selection Add dependency flow validation and execution input UX updates 2026-03-27 15:18:03 +01:00
llm-provider feat(vault): add vault and LLM provider services 2026-09-01 23:23:14 +02:00
notifications Strengthen frontend spec coverage 2026-04-21 12:39:33 +02:00
projects Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
retriever feat: add execution groups and schema-driven flow fields 2026-07-20 16:22:50 +02:00
shared feat(vault): add vault and LLM provider services 2026-09-01 23:23:14 +02:00
task-executions Group the flows list by project, with shared context and project runs 2026-09-03 07:53:42 +02:00
vault feat(vault): add vault and LLM provider services 2026-09-01 23:23:14 +02:00