Skip to content

feat: add immutable folder workspace binding#1647

Draft
4pmtong wants to merge 1 commit into
testfrom
feat/folder-workspace-selection
Draft

feat: add immutable folder workspace binding#1647
4pmtong wants to merge 1 commit into
testfrom
feat/folder-workspace-selection

Conversation

@4pmtong
Copy link
Copy Markdown
Collaborator

@4pmtong 4pmtong commented May 20, 2026

Related Issue

Closes #

Description

Adds desktop folder workspace selection with immutable project-level binding.

Users can now select a local folder for a project in desktop mode. Once selected, that folder becomes the project workspace and cannot be changed for the same project. New projects can still choose a different folder or start from scratch.

Key changes:

  • Added Brain workspace APIs for capabilities, folder binding, and workspace state.
  • Added immutable local workspace binding stored by sanitized email + project id.
  • Added task directory snapshots so historical tasks resolve to the correct output root.
  • Updated agent execution working directory resolution:
    • bound projects run directly in the selected folder
    • unbound projects keep the legacy task directory behavior
  • Added async Brain-side artifact handling for user uploads, workspace outputs, camel_logs, sync_steps, and artifact manifests.
  • Updated /files listing, preview, and stream paths to resolve through project/task workspace context.
  • Added desktop-only folder picker through Electron, while website mode keeps the existing flow.
  • Updated project picker UI to show the selected folder name and route users to create a new project when the current one is already bound.
  • Added tests for workspace binding, path resolution, artifact handling, and environment working directory behavior.

Testing Evidence (REQUIRED)

  • I have included human-verified testing evidence in this PR.
  • This PR includes frontend/UI changes, and I attached screenshot(s) or screen recording(s).
  • No frontend/UI changes in this PR.

What is the purpose of this pull request?

  • Bug fix
  • New Feature
  • Documentation update
  • Other

Contribution Guidelines Acknowledgement

@4pmtong 4pmtong marked this pull request as draft May 20, 2026 15:39
@4pmtong 4pmtong added this to the Sprint 23 milestone May 25, 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.

1 participant