[AIDE-100] Worktree Commit - #80
Merged
Merged
Conversation
- Display the codebase's build agent in the start build dialog - Move View build and Rebuild into a dropdown menu on the latest build row - Extract useRebuildBuild hook from RebuildButton for reuse - Wrap long names/bundle IDs in the export settings form - Add agent strings to locale files
Add the ability to commit worktree changes from the worktrees UI, agent tool, and workflow step. Stages either all changes or an exact set of selected paths, supports signed commits (following effective git config by default), and returns the resulting commit.
Replace the generation column with linked agent and worktree columns, resolving the agent from the session snapshot with a fallback to the worktree owner for older runs. Search now covers worktree and agent fields, and long agent names and commit subjects wrap instead of truncating.
The worktree cell in the commands table used truncate, cutting off long branch names. Replace it with whitespace-normal/break-words so full names remain visible, and add a title attribute for the full path on hover.
Add a PULL operation that fast-forwards to the branch upstream (no merge-or-rebase surprises), surfaced as a Pull button on the worktree row. Rework the row's actions: New Session and New Plan links pass the worktree to the run start page, which preselects it and carries its ticket key over; destructive and secondary operations (force push, reset, stash, stage all) move into a More actions menu, and Open Editor moves there too. Replace free-text operation schemas with enums so callers see the supported operations. On mobile, the worktree picker becomes a dialog, and sidebar footer links close the navigation sheet. Also make screenshot captures deterministic: skip sidebar usage collection (seeded summary renders instead of queued ccusage jobs), stub the worktree-detail checkout inspection, pin the build-data collection to the seeded finished scan, and seed that collection's fixture data.
Break the monolithic worktrees.test.ts into focused suites for inventory, move, sync, watch, and auto-sync, and extract shared repository setup into worktree-fixtures.ts.
Add an overlapScope setting (WORKTREE or GLOBAL) that controls which runs an overlap policy is measured against. Worktree scope keeps each worktree's runs in their own queue so worktrees never wait on each other; global scope counts every run of the workflow across worktrees. Defaults to WORKTREE, and exports taken before the setting existed import based on exclusiveWorktree.
Give the workflow settings dialog more room with sm:max-w-2xl so its fields don't wrap awkwardly. Also make the hidden worktrees dialog test route mock responses by GraphQL operation instead of call order, so the queued 'once' responses can't land on the runs timer request.
Simplify the workflow detail page by dropping the inline help paragraphs now that the settings dialog provides the guidance, and tighten the badge layout accordingly.
- Preselect only available worktrees from the run URL and disable unavailable ones - Disable new session/plan actions for unavailable worktrees on the worktrees page - Keep APNs alert payloads within the 4096-byte limit by truncating fields - Mask device tokens in GraphQL and scope device status updates to the exact token - Project commit job results into the worktree inventory
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the ability to commit worktree changes directly from the UI, the agent tool system, and as a workflow step. A new
worktree.commitagent job stages changes and creates a Git commit on the agent, respecting the repository's effective signing configuration. The branch also surfaces the build agent next to build configuration, replaces the standalone latest-build buttons with a consolidated action menu, adds Agent and Worktree columns to the workflow runs table, and makes long worktree/agent names wrap instead of truncating.Changes
worktree.commitjob kind with strict payload validation (worktreeCommitJobPayload) and a handler that stages all changes or an exact list of paths. Partial commits reset the index first so unselected changes stay untouched, and the handler verifies staged content exists before committing.commit.gpgsignand exposescommitSigningEnabledonWorktreeDetail; commits follow effective Git config when the signed option is omitted, with--gpg-sign/--no-gpg-signapplied explicitly.commitWorktreeGraphQL mutation (idempotent viarequestId).WORKTREE_COMMITworkflow step andcommit_worktreebuilt-in agent tool, both dispatched through the same job pipeline and refreshing worktree context on completion.useRebuildBuildhook).runAgentresolves the snapshotted agent from session data with a fallback to the worktree's current owner for older runs.break-words/whitespace-normal) withtitletooltips instead of being truncated, in commands, workflows, build, and worktree detail views.Tests
Ticket: AIDE-100