feat: workspaces/worktrees UX + Environments settings + response-required notifications#339
feat: workspaces/worktrees UX + Environments settings + response-required notifications#339Dimillian merged 23 commits intoDimillian:mainfrom
Conversation
|
Nice! Look like a lot of QoL! Thanks! |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7d7f7b3760
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let destination_path = worktree_root.join(AGENTS_MD_FILE_NAME); | ||
| let temp_path = worktree_root.join(format!("{AGENTS_MD_FILE_NAME}.tmp")); | ||
|
|
||
| std::fs::copy(&source_path, &temp_path).map_err(|err| { |
There was a problem hiding this comment.
Skip copying when worktree already has AGENTS.md
This copy path always writes the parent repo’s AGENTS.md into the new worktree without checking whether the checked-out branch already contains its own AGENTS.md. For existing branches, that overwrites branch-specific instructions and immediately leaves the worktree dirty, which can change agent behavior and surprise users right after creation.
Useful? React with 👍 / 👎.
src/utils/threadItems.ts
Outdated
| output: | ||
| incomingOutput.length >= existingOutput.length ? incomingOutput : existingOutput, | ||
| changes: hasIncomingChanges ? item.changes : existing.changes, |
There was a problem hiding this comment.
Prefer incoming tool output unless it is truly empty
Using output length as the merge rule causes stale content to win whenever the server sends a shorter final update for the same tool item (for example, replacing verbose streamed text with a concise final result or error). In those cases the UI keeps the old longer text and never shows the authoritative completion payload.
Useful? React with 👍 / 👎.
|
Why did you added a manual agents.md copy? New worktree will already have it since they're based on the parent repo, no? Am I missing something? |
Summary
A bundle of workspace/worktree quality-of-life improvements plus a few UX/polish fixes across threads/messages, collaboration modes, notifications, settings, and the local git diff viewer.
A lot of the things which brings it to feature parity with the Codex app.
Let me know if it is too big and I can break it up into smaller chunks @Dimillian
Key changes
Workspaces / Worktrees
AGENTS.mdfrom the parent repo into newly-created worktrees (when present).AGENTS.mdduring worktree creation (default remains on).Settings
Environment setup script flow
Notifications
Collaboration modes / app-server
experimentalApicapability during initialize.Git diff viewer
Threads / Messages
Implementation notes
AGENTS.mdcopy is best-effort: if the parent repo does not haveAGENTS.md, creation proceeds normally.Test plan
npm run testnpm run typechecknpm run lintcd src-tauri && cargo check(Manual) Worktree creation:
AGENTS.mdis copied when present.