Repository navigation
feat(automations): allow project-less session automations - #6280
Conversation
No project and no workspace pin = session mode: each run creates a project-less session workspace via workspaces.createSession (same convention as workspaces.create). Session workspaces can also be pinned. - cloud: automations.v2_project_id nullable (migration 0064), create/update router accepts null project, denormalized pin no longer requires one - dispatch: null project relays workspaces.createSession instead of workspaces.create (no branch computation) - desktop: 'No project (session)' option in automation ProjectPicker, session workspaces pickable in WorkspacePicker, 'Session' fallback in list rows - cli: --project optional on automations create, --session flag on update, session workspaces accepted as --workspace targets - mcp/sdk: nullable v2ProjectId with session-mode docs
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
🧹 Preview Cleanup CompleteThe following preview resources have been cleaned up:
Thank you for your contribution! 🎉 |
There was a problem hiding this comment.
All reported issues were addressed across 19 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
…lidation order, picker tri-state - update: skip legacy cloud-table resolution for retained pins (renaming a session-pinned automation returned 'Workspace not found'); only resolve when the caller changes the pin - cli: validate --session conflicts before setEnabled mutates state - WorkspacePicker: undefined projectId (pre-default loading) renders neutral copy instead of session mode - dispatch: drop dead branchName from createWorkspaceOnHost return - mcp/sdk: document that session pins need targetHostId and unpinning to session mode needs v2WorkspaceId: null
* feat(host-service): project-less session workspaces (nullable projectId, createSession, guarded destroy) * feat(desktop): Sessions sidebar section, session create/delete UX, nullable projectId plumbing * feat(cli,mcp,sdk): omit projectId to create a project-less session workspace * feat(desktop): nestable sidebar groups with session-scope trees and cycle-safe re-parenting * fix(desktop): honor session mode in new-workspace page route and hide repo-only affordances * fix: address review findings — migration FK hazard, session idempotency, tree depth enforcement, shortcut coverage * fix(desktop): expand full collapsed ancestor chain on hotkey reveal; clear repo draft state on session preselect * fix: session hotkey reveal for session groups, CI git identity for session tests, review polish * fix(host-service): inline git identity in session test commit for CI runners * feat(desktop): move Sessions section above Projects with an always-visible new-session button * fix(desktop): workspaces-list collapse hides session rows while the Sessions header stays * fix(desktop,host-service): bulk-select nested-group workspaces; clean up session folder on insert race * fix(host-service): best-effort session folder cleanup must not mask insert errors * fix(host-service): async rm in session insert-failure cleanup (main-loop guardrail) * refactor(desktop): extract nested grouping tree to a stacked PR, restore flat sections * feat(desktop): show jump-shortcut badges on session sidebar rows * feat(automations): allow project-less session automations (#6280) * feat(automations): allow project-less session automations No project and no workspace pin = session mode: each run creates a project-less session workspace via workspaces.createSession (same convention as workspaces.create). Session workspaces can also be pinned. - cloud: automations.v2_project_id nullable (migration 0064), create/update router accepts null project, denormalized pin no longer requires one - dispatch: null project relays workspaces.createSession instead of workspaces.create (no branch computation) - desktop: 'No project (session)' option in automation ProjectPicker, session workspaces pickable in WorkspacePicker, 'Session' fallback in list rows - cli: --project optional on automations create, --session flag on update, session workspaces accepted as --workspace targets - mcp/sdk: nullable v2ProjectId with session-mode docs * fix(automations): address cubic review — retained-pin updates, CLI validation order, picker tri-state - update: skip legacy cloud-table resolution for retained pins (renaming a session-pinned automation returned 'Workspace not found'); only resolve when the caller changes the pin - cli: validate --session conflicts before setEnabled mutates state - WorkspacePicker: undefined projectId (pre-default loading) renders neutral copy instead of session mode - dispatch: drop dead branchName from createWorkspaceOnHost return - mcp/sdk: document that session pins need targetHostId and unpinning to session mode needs v2WorkspaceId: null
* docs: weekly update for PRs merged 2026-08-05 to 2026-08-12 - workspaces: sessions (project-less workspaces, #6274), pin + drag-and-drop pinning (#6364), list/board views with Merged & Deleted history columns (#6296), per-project naming instructions (#6250), multi-PR links per branch with remove/restore (#5924) - automations: session automations (#6280), list health stats + Up next grouping + read-only team automations (#6291, #6276), detail page Settings/Run History tabs, inline run errors, would-run preview, RRule validation (#6305) - editor: image pane pan/pinch/zoom (#6285) - tasks: multi-repo filters, expanded task states, PR author/review filters, PR checks (#6201) - monorepos: per-project sparse checkout (#6034) - customization: project icon + color picker, v1 color carry-over (#6249) - terminal presets: built-in Superset CLI preset (#6270) - agents: resume interrupted sessions + Resume Args setting (#6253, #6265), Superset hooks toggle + scoping (#6072) - cli: interactive command browser + branded help (#6273); reference updated for session mode, --task, --skip-branch-prefix, --session (verified against packages/cli/src/commands) * docs: tighten wording and drop em dashes Shorten this week's additions per the writing guide: one thought per sentence, plainest word, no em dashes as prose punctuation. Also sweeps the three pre-existing em dashes in recipes. * docs: add screenshots from the 08-09 changelog batch cli command browser, agent resume banner, PR view with checks, and the project icon/color picker. Copied into apps/docs/public/images per the SOP rather than referenced across apps.
Summary
Stacked on #6274 (sessions). Automations can now run without a project, completing the "no project = session" convention across every creation surface (desktop, CLI, MCP, SDK — and now scheduled runs).
Session automation = no project and no workspace pin. Each run creates a project-less session workspace on the target host via
workspaces.createSession(managed folder under~/.superset/sessions), then launches the agent exactly as before —agents.runwas already project-agnostic. Pinning an existing session workspace also works now.Changes
Cloud
automations.v2_project_id→ nullable (migration0064, singleDROP NOT NULL; the FK was already dropped in 0062)automation.create: the denormalized pin path requires onlyv2WorkspaceId + targetHostId— a null project means a session pin; the "v2ProjectId required" throw is gone (omit both = session mode)automation.update: explicitv2ProjectId: nullswitches to session mode (and clears any pin);undefinedkeeps the projectdispatch.ts: null project relaysworkspaces.createSession(host dedupes the folder name per run) instead ofworkspaces.create; no branch computation. Stale-pin recovery falls back to the same path.Desktop
CLI / MCP / SDK
automations create:--projectoptional — omit both--projectand--workspacefor session mode; session workspaces accepted as--workspacetargets (previous hard rejection removed)automations update: new--sessionflag (clears project + pin)Notes
verifyWorkspaceInOrgbranch, unchanged.Testing
createSessionbehavior covered by feat(desktop,host-service): project-less session workspaces #6274's integration testsSummary by cubic
Enable session automations: automations can now run with no project and no workspace pin. Each run creates a project-less session workspace on the target host.
New Features
automations.v2_project_idis nullable (migration0064);automation.create/updateacceptv2ProjectId: null; denormalized pins no longer require a project.v2ProjectIdis null, runs callworkspaces.createSession; session workspaces can be pinned.automations createmakes--projectoptional (omit with no--workspacefor session mode);automations updateadds--session; session workspaces are valid--workspacetargets.v2ProjectId; docs clarify session pins requiretargetHostIdand unpinning to session mode sendsv2WorkspaceId: null.Bug Fixes
--sessionconflicts before togglingenabled, preventing partial updates.Written for commit 34bf7f3. Summary will update on new commits.