Skip to content

Add public and shared Library workflows - #9952

Merged
joshistoast merged 12 commits into
invoke-ai:mainfrom
JPPhoto:public-workflows
Oct 23, 2026
Merged

joshistoast merged 12 commits into
invoke-ai:mainfrom
JPPhoto:public-workflows

Conversation

@JPPhoto

@JPPhoto JPPhoto commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

In multi-user mode, owners can set saved Library workflows to Private or Public from the Yours tab. Public workflows appear in Shared and remain callable from compatible workflow nodes. Save to Library can create a public Library copy. Public means visible to signed-in users of the same InvokeAI instance.

Other users can open, duplicate, or download public workflows. Only the owner can rename, delete, or change visibility. A ready multi-user administrator can update any user's saved non-bundled template through Update Template; bundled templates remain read-only. Visibility applies to the Library copy, not the project workflow.

When a visibility update response is uncertain, the detail panel reconciles from the server. If readback fails, it shows Visibility unknown and offers Retry.

Related Issues / Discussions

This PR closes #9673.

QA Instructions

Run from invokeai/frontend/webv2:

  • Latest revision-preservation fix: pnpm test src/features/workflow/data/publication.test.ts passed (12/12), WorkflowPublicationHost.browser.test.tsx passed (23/23), and pnpm lint:code passed. Full unit and browser suites were not rerun after this follow-up.
  • pnpm lint:code - passed formatting, oxlint, Chakra type generation, and TypeScript checks.
  • pnpm test - passed: 10,844 unit tests.
  • The full browser suite passed: 3,301 tests with --maxWorkers=4. After the final visibility fixes, the 75 affected browser tests passed. The default-concurrency release browser stage reported three timing flakes in ModelManagerDrafts, FeatureHint, and ToastContrast.
  • pnpm run test:accessibility:browser - passed (19/19).
  • pnpm run test:project-files:browser - passed.
  • pnpm run test:fixtures - passed (47/47).
  • pnpm run test:performance:browser and pnpm run test:performance:build - passed. The browser baseline was recaptured with the documented full profile; route IDs, request counts, and source-owner sets did not change.
  • pnpm run architecture:inventory - passed.
  • Manual visual inspection was unavailable because no interactive browser surface was exposed.

Review

Independent reviews found no outstanding material findings. Review findings were resolved with regression coverage. Older multi-user project links without owner metadata fail closed for Update Template until reopened from the Library.

Compatibility / Rollout

No migration or generated API contract change is needed; the frontend uses the existing visibility endpoint. Single-user behavior remains unchanged. Visibility changes affect the Library record only.

Checklist

  • The PR has a short but descriptive title, suitable for a changelog
  • Meaningful regression coverage added / updated where needed; obsolete tests/code removed
  • Persisted-state and API changes include required migrations / compatibility validation
  • Relevant performance/efficiency opportunities considered; material claims have evidence
  • Material review findings resolved and relevant checks rerun
  • Documentation added / updated (if applicable)
  • Updated What's New copy (if doing a release after this PR)

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@JPPhoto
JPPhoto requested a review from joshistoast October 20, 2026 11:20
@github-actions github-actions Bot added frontend PRs that change frontend files docs PRs that change docs labels Oct 20, 2026
@JPPhoto JPPhoto moved this to 7.0 Theme: Modular Design in Invoke - Community Roadmap Oct 20, 2026
@JPPhoto JPPhoto added the 7.0.0 label Oct 20, 2026
Comment thread invokeai/frontend/webv2/src/features/workflow/data/publication.ts Outdated
Read category from nested workflow metadata and carry the record owner through Library open and publication paths.
Keep pending and result feedback scoped per workflow.

Fence responses by request identity and account scope.
Keep both workflow visibility and upstream gallery fixture coverage.
Merge origin/main through ef2be36 while preserving public workflow ownership and visibility behavior.

Keep sort preferences and linked-template relink guidance with the publication flow.
…ches/277558-1792718890/f5cbdbcf35d53c0df608b2019e278db7f1df6b39
…ches/315837-1792728851/f5cbdbcf35d53c0df608b2019e278db7f1df6b39
@joshistoast

Copy link
Copy Markdown
Collaborator

Something to add to this PR is some feedback I got from @lstein on issue #9673

The backend does not allow a non-owner to update a saved workflow even if it's set to public unless it's an admin doing the updating - that's probably correct behavior. But there's no frontend linkage for this.

Can we fold this in here? I'd probably only allow this for admins of course. Also...

The Call Saved Workflow node’s dropdown includes public workflows from other users, mixed with other options, but only if they’re callable. So this behavior is correct!

Maybe we fold that in also?

Reconcile rejected visibility writes against server state and provide retry when readback fails.
Allow ready multi-user admins to update saved non-bundled templates while keeping visibility controls owner-only.
Correct the linked workflow CI fixture and update user guidance.
@JPPhoto
JPPhoto requested a review from joshistoast October 23, 2026 12:19

JPPhoto commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator Author

@joshistoast I pushed 75b8fc1de1. All of this work closes #9673.

I reconciled rejected visibility writes with server readback in invokeai/frontend/webv2/src/features/workflow/ui/library/WorkflowLibraryDetailPanel.tsx; failed readback now shows an unknown state with Retry. I allowed ready multi-user admins to update another user's saved non-bundled template in invokeai/frontend/webv2/src/features/workflow/ui/library/projectWorkflowEntries.ts, while keeping visibility controls owner-only. I also fixed the CenterArea CI fixture and updated docs/src/content/docs/Users Guide/08.Workflows/editor-reference.mdx and docs/src/content/docs/configuration/Multi-User Mode/user-guide.mdx.

I verified 75 affected browser tests, 10,844 unit tests, accessibility journeys (19/19), the project-file browser journey, performance browser/build gates, and lint/typecheck. The full browser suite passed at --maxWorkers=4; the default-concurrency release run reported three unrelated timing flakes.

Keep upstream performance ownership data and hosted-provider fixture coverage alongside the workflow changes.
Comment thread invokeai/frontend/webv2/src/features/workflow/data/publication.ts Outdated
Keep the revision returned by creation when visibility succeeds or is retried.
@JPPhoto
JPPhoto requested a review from joshistoast October 23, 2026 16:49

@joshistoast joshistoast left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

lgtm

@joshistoast
joshistoast enabled auto-merge (squash) October 23, 2026 17:10
@joshistoast
joshistoast merged commit db5a7b5 into invoke-ai:main Oct 23, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

7.0.0 docs PRs that change docs frontend PRs that change frontend files

Projects

Status: 7.0 Theme: Modular Design

Development

Successfully merging this pull request may close these issues.

Multi-user mode: v7 has no controls to share boards or workflows

2 participants