Skip to content

feat(api-workflows): remaining features - #6039

Open
brunozoric wants to merge 25 commits into
bruno/feat/workflows-umbrellafrom
bruno/feat/workflows-api-workflows-features
Open

brunozoric wants to merge 25 commits into
bruno/feat/workflows-umbrellafrom
bruno/feat/workflows-api-workflows-features

Conversation

@brunozoric

@brunozoric brunozoric commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Other engine features: workflows CRUD, step runs, config, notifications, routing, settings, identity and AI tools.

Part of the workflows split (270 files). Merges into bruno/feat/workflows-umbrella; builds only together with the other parts.

🤖 Generated with Claude Code

Split from bruno/refactor/workflows-flow for review.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 45887f9b-a17d-4803-af34-151f6e8d1cd7

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

🚓 Slop Cop

✅ Nothing worth flagging. The diff looks consistent with the PR's stated intent and the code-style rules.

Large, coherent PR that matches its stated scope (remaining workflows engine features) within a deliberate multi-part umbrella split; no integrity red flags (no secrets, no debug leftovers, no unresolved conflicts) and no clear style-rule violations found in the reviewed diff.

Automated, non-blocking heads-up from an LLM. It can be wrong — use your judgment. Regenerates on every push.

brunozoric and others added 10 commits October 21, 2026 14:51
…he domain

Websocket action names, send concurrency, the BCC chunk size, HTML escaping and error log fields are transport and logging concerns, so they move from domain/notifications to features/notifications/shared. The comment length limit stays in the domain: it shapes the message text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d team loader

Part of removing queries in loops (docs/.bruno/plans/2026-10-21-workflows-no-n-plus-one.md, Phase 1 item 5 and Phase 2 items 2-6): routing candidates read the target and the folder record once and reuse the listed users; blocking reviews, delete-multiple and delete-workflow paths use one batch call; candidateTeams goes through a request-scoped team loader.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…with one query

Part of removing queries in loops (docs/.bruno/plans/2026-10-21-workflows-no-n-plus-one.md, Phase 3): the delete cascade lists all records of a batch of reviews at once and deletes in batches with one task-abort call; assignment records are written with a concurrency limit; least-loaded ties read one userId_in list; cancel-for-delete no longer lists twice; saving a workflow reads its user targets with one ListUsers call.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Part of removing queries in loops (docs/.bruno/plans/2026-10-21-workflows-no-n-plus-one.md, Phase 3): the review and assignment repositories delete with CMS DeleteMultipleEntriesUseCase in chunks of 50 instead of one delete per entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of #6038: abstractions imported under a bare UseCase/Abstraction alias are now aliased XAbstraction, and the review events live in one events.ts per feature (shared payload, union and the step-failed event in shared/events.ts) instead of one file with all eleven. Event names, types and handler tokens are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A run saves its decision before its task turns success, so a review read before that save still shows the step in review. Stuck detection then saw the success task, passed the stale check on the old snapshot and failed the step, overwriting the run's decision (no optimistic locking, D27). It now re-reads the stored review and fails it only when its step is still this run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CurrentUserTeams cached team ids by identity id only, so after a tenant switch within one request the second tenant got the first tenant's teams. The cache key now includes the tenant, like CandidateReadAccess and ReviewTeamLoader.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A failed user, team, transport or permission lookup in the workflow editor's config use cases was reported as WorkflowPersistenceError ("The workflow could not be read or saved."), pointing at the workflow storage. It is now WorkflowLookupError (Workflows/Workflow/Lookup) with the raw cause kept off the client the same way. A step id missing from a review in NotificationRecipientService.listPool is a ReviewValidationError.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…orkflow

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…mber loading

Review of #6039: the workflow editor access check (signed in, editor permission, a failing permission load as WorkflowLookupError) lives in one WorkflowEditorAccess service used by the eight config use cases; routing loads step members (team members, exclusions, read adapter) in one place for evaluate, listMembers and checkUser, and toStepMembersParams builds the members params for the candidates list and pool notifications.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brunozoric added a commit that referenced this pull request Oct 22, 2026
…odes

Review of #6039: the workflow editor access check (signed in, editor permission, a failing permission load as WorkflowLookupError) lives in one WorkflowEditorAccess service used by the eight config use cases; routing loads step members (team members, exclusions, read adapter) in one place for evaluate, listMembers and checkUser, and toStepMembersParams builds the members params for the candidates list and pool notifications.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brunozoric added a commit that referenced this pull request Oct 22, 2026
Review of #6039: the workflow editor access check (signed in, editor permission, a failing permission load as WorkflowLookupError) lives in one WorkflowEditorAccess service used by the eight config use cases; routing loads step members (team members, exclusions, read adapter) in one place for evaluate, listMembers and checkUser, and toStepMembersParams builds the members params for the candidates list and pool notifications.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brunozoric added a commit that referenced this pull request Oct 22, 2026
Review of #6039: the workflow editor access check (signed in, editor permission, a failing permission load as WorkflowLookupError) lives in one WorkflowEditorAccess service used by the eight config use cases; routing loads step members (team members, exclusions, read adapter) in one place for evaluate, listMembers and checkUser, and toStepMembersParams builds the members params for the candidates list and pool notifications.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brunozoric and others added 13 commits October 22, 2026 13:30
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ve pages

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in the inspector

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ettings

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ep run task

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…registration winning

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ames and barrel types

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ws a pick

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ocking reviews barrel

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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