Skip to content

feat: improve onboarding UX with auto-skip workflow review & persistent cloud LoRAs#766

Merged
leszko merged 5 commits intomainfrom
rafal/cloud-loras
Mar 31, 2026
Merged

feat: improve onboarding UX with auto-skip workflow review & persistent cloud LoRAs#766
leszko merged 5 commits intomainfrom
rafal/cloud-loras

Conversation

@leszko
Copy link
Copy Markdown
Collaborator

@leszko leszko commented Mar 30, 2026

Summary

Improves the onboarding experience with two changes:

  • Auto-skip workflow review dialog — When all dependencies are already resolved and there are no warnings, the workflow loads directly without showing the review dialog. Applies to all import surfaces (onboarding, file import, graph editor import).
  • Persistent sample LoRAs in cloud mode — Sample/onboarding LoRAs are cached to a shared persistent directory (/data/models/lora) so returning users don't re-download them each session. These LoRAs are marked as read-only and cannot be deleted.

Changes

Frontend

  • Skip review dialog when resolution plan has all items "ok" and no warnings (WorkflowImportDialog, useGraphPersistence)
  • Hide delete button for read_only LoRAs in settings
  • Add read_only field to LoRAFileInfo API type

Backend

  • Add DAYDREAM_SCOPE_LORA_SHARED_DIR env var and get_shared_lora_dir() helper
  • Cache sample LoRAs (+ manifest entries) to shared storage during session cleanup
  • List endpoint merges shared dir LoRAs, marking them read_only
  • Delete endpoint returns 403 for sample LoRAs in cloud mode
  • Resolve endpoint checks shared dir as fallback for LoRA resolution

Test plan

  • E2E tests pass on fal.ai preview deployment
  • Verify onboarding workflow loads directly without review dialog on fresh session
  • Verify sample LoRAs persist across sessions in cloud mode
  • Verify sample LoRAs show without delete button in settings
  • Verify non-sample LoRAs can still be deleted normally
  • Verify no behavior change locally (env var unset)

…w review dialog

Cloud LoRA persistence:
- Add shared persistent LoRA directory (/data/models/lora) for cloud mode
- Cache sample/onboarding LoRAs to shared storage during session cleanup
- Resolve and list endpoints check both session and shared LoRA dirs
- Block deletion of sample LoRAs in cloud mode (403)
- No-op locally (DAYDREAM_SCOPE_LORA_SHARED_DIR unset)

Auto-skip review dialog:
- Skip the workflow review dialog when all dependencies are resolved
  and there are no warnings, loading the workflow directly
- Applies to both WorkflowImportDialog (onboarding + file import)
  and GraphWorkflowImportDialog (graph editor file import)

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Signed-off-by: Rafal Leszko <[email protected]>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 30, 2026

Important

Review skipped

Auto reviews are disabled on this repository. 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

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: ebc2d702-dc7f-4653-996e-b51b286429c7

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch rafal/cloud-loras

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 and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 30, 2026

🚀 fal.ai Preview Deployment

App ID daydream/scope-pr-766--preview
WebSocket wss://fal.run/daydream/scope-pr-766--preview/ws
Commit f394479

Livepeer Runner

App ID daydream/scope-livepeer-pr-766--preview
WebSocket wss://fal.run/daydream/scope-livepeer-pr-766--preview/ws
Auth private

Testing

Connect to this preview deployment by running this on your branch:

uv run build && SCOPE_CLOUD_APP_ID="daydream/scope-pr-766--preview/ws" uv run daydream-scope

Livepeer mode:

SCOPE_CLOUD_MODE=livepeer SCOPE_CLOUD_APP_ID="daydream/scope-livepeer-pr-766--preview/ws" uv run daydream-scope

🧪 E2E tests will run automatically against this deployment.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 30, 2026

✅ E2E Tests passed

Status passed
fal App daydream/scope-pr-766--preview
Run View logs

Test Artifacts

Check the workflow run for screenshots.

leszko and others added 3 commits March 30, 2026 13:45
Close the dialog before the async load begins so the review content
doesn't flash back after the confirmation dialog dismisses.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Signed-off-by: Rafal Leszko <[email protected]>
Add read_only flag to LoRAFileInfo. LoRAs served from the shared
persistent directory are marked read_only, and the delete button
is hidden for them in the settings UI.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Signed-off-by: Rafal Leszko <[email protected]>
When a sample LoRA exists in both the session dir and the shared dir,
it was listed from the session dir without read_only. Now session-dir
LoRAs are also marked read_only if they exist in the shared dir.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Signed-off-by: Rafal Leszko <[email protected]>
@leszko leszko changed the title feat: persist sample LoRAs in cloud mode & auto-skip resolved workflo… feat: improve onboarding UX with auto-skip workflow review & persistent cloud LoRAs Mar 30, 2026
@leszko leszko requested a review from gioelecerati March 30, 2026 14:55
…ated

Sample LoRAs are already stored in the shared persistent directory
(/data/models/lora) on the cloud volume, so there's no need to copy
them from the session directory during cleanup.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Signed-off-by: Rafal Leszko <[email protected]>
@leszko leszko merged commit d55ea46 into main Mar 31, 2026
10 checks passed
j0sh added a commit that referenced this pull request Mar 31, 2026
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.

2 participants