Skip to content

[XY-199] Complete retained lane worktree cutover#33

Merged
yvette-carlisle merged 6 commits intomainfrom
yvette/xy-199-rename-maestro-retained-lane-surface-from-workspaces-to
Mar 31, 2026
Merged

[XY-199] Complete retained lane worktree cutover#33
yvette-carlisle merged 6 commits intomainfrom
yvette/xy-199-rename-maestro-retained-lane-surface-from-workspaces-to

Conversation

@yvette-carlisle
Copy link
Copy Markdown
Member

What changed

  • renamed Maestro's retained-lane runtime/config/status surface from workspace* to worktree*
  • replaced the clone-backed lane implementation with real linked Git worktrees validated against .git/worktrees/*
  • updated docs, examples, and tests to match the worktree-only model

Why

  • the previous branch only changed the visible .worktrees/ surface while leaving internal workspace naming and clone-backed behavior behind
  • this PR finishes the cutover so naming, runtime semantics, and operator docs all agree

Impact

  • retained lanes are now created and validated as linked Git worktrees only
  • .workspaces compatibility is removed from the Maestro surface
  • remote lane branch inspection and cleanup run from the source repo root so relative origin remotes continue to work

Validation

  • cargo run -- --help
  • cargo make fmt-check
  • cargo make lint
  • cargo make test
  • git diff --check

Review status

  • self-review completed on 21f32019d95a72a3678dcd064ad784e436cf0457
  • review-prepare result: { "status": "no_findings", "head_sha": "21f32019d95a72a3678dcd064ad784e436cf0457", "evidence": ["cargo run -- --help (exit 0)", "cargo make fmt-check (exit 0)", "cargo make lint (exit 0)", "cargo make test (exit 0)", "git diff --check HEAD^..HEAD (exit 0)"] }

…"rename retained lanes to worktrees and adopt linked git worktree semantics","intent":"finish the retained-lane cutover in one pass so naming and backend behavior match","impact":"maestro now exposes only worktree-rooted lanes and validates linked git worktree boundaries end-to-end","breaking":false,"risk":"medium","authority":"linear","delivery_mode":"status-only","refs":[{"system":"linear","id":"XY-199","role":"authority"}]}
@yvette-carlisle yvette-carlisle marked this pull request as ready for review March 31, 2026 08:29
…lib module docs to satisfy rust style CI","intent":"clear the Linux Rust checks failure triggered by vstyle on the PR merge head","impact":"the PR no longer uses outer doc comments on public mod declarations in src/lib.rs","breaking":false,"risk":"low","authority":"linear","delivery_mode":"status-only","refs":[{"system":"linear","id":"XY-199","role":"authority"}]}
Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 59041fbe6a

ℹ️ 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".

…linked worktree boundary validation for linked repo roots","intent":"accept child worktrees when repo_root itself is a linked worktree","impact":"maestro now validates child worktrees against the source repository common git dir instead of the repo_root .git pointer file","breaking":false,"risk":"low","authority":"linear","delivery_mode":"status-only","refs":[{"system":"linear","id":"XY-199","role":"authority"}]}
Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c90ef6fca0

ℹ️ 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".

…linked worktree origin normalization and legacy path validation","intent":"keep repaired worktree lanes pushable and preserve tracker path-leak guards during mixed-version comments","impact":"maestro now rewrites relative origin remotes to absolute paths for linked worktree use and validates legacy workspace_path tracker fields alongside worktree_path","breaking":false,"risk":"low","authority":"linear","delivery_mode":"status-only","refs":[{"system":"linear","id":"XY-199","role":"authority"}]}
Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f6204c35f7

ℹ️ 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".

…en worktree remote normalization cleanup","intent":"keep linked worktree bootstrap safe for home-relative and broken filesystem remotes","impact":"tilde remotes bypass repo-relative canonicalization and failed normalization removes the new linked worktree","breaking":false,"risk":"low","authority":"linear","delivery_mode":"status-only","refs":[{"system":"linear","id":"XY-199","role":"authority"},{"system":"github","repo":"hack-ink/maestro","number":33,"role":"mirror"}]}
Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ec1ae00dc6

ℹ️ 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".

…alize relative origin when reusing worktrees","intent":"keep retained linked worktrees able to fetch and push with repo-relative remotes","impact":"reused worktree lanes now refresh origin normalization before returning so retained lanes keep working with relative filesystem remotes","breaking":false,"risk":"low","authority":"linear","delivery_mode":"status-only","refs":[{"system":"linear","id":"XY-199","role":"authority"},{"system":"github","repo":"hack-ink/maestro","number":33,"role":"mirror"}]}
Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 67d3499185

ℹ️ 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".

Comment on lines +139 to +141
let setup_result = normalize_origin_remote_for_worktrees(&self.repo_root).and_then(|_| {
self.checkout_worktree_branch(&spec.path, spec.branch_name.as_str(), &source_head)
});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Propagate repo-local identity config into created worktrees

After switching from clone-backed lanes to linked worktrees, new lane setup no longer copies resolved repo-local Git config (including values coming from includeIf), and this path only normalizes origin then checks out the branch. In repositories that rely on repo-scoped identity via conditional includes, commits in the new worktree can pick up the wrong global identity (or lack required signing/email settings), which can break review handoff or produce incorrect authorship. The previous workspace flow explicitly copied these local config entries, so this is a regression in lane bootstrap behavior.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this one is actionable on the current head. Linked worktrees read the shared repo-local config through the common git dir, and this branch already has direct regression coverage for both plain repo-local values and included config: linked_worktree_inherits_repo_local_identity_config and linked_worktree_inherits_repo_local_identity_from_included_config in src/worktree.rs. I re-ran both on 67d3499 and they passed, including the include.path case that checks user.name, user.email, codex.github-identity, and codex.linear-workspace from the created worktree. I’m leaving the thread open for now in case there’s a more specific reproduction that differs from those covered cases.

@yvette-carlisle yvette-carlisle merged commit 60a0b6e into main Mar 31, 2026
7 checks passed
@yvette-carlisle yvette-carlisle deleted the yvette/xy-199-rename-maestro-retained-lane-surface-from-workspaces-to branch March 31, 2026 10:42
Copy link
Copy Markdown
Member Author

Delivery closeout complete.

  • Linear: XY-199 -> Done
  • Anchor commit: 60a0b6e6560f930e4b4a0ddb59c8f8a25af5817f
  • PR: [XY-199] Complete retained lane worktree cutover #33
  • Summary: Maestro now lands the retained-lane worktree cutover on main, including linked-worktree boundary validation plus safe origin normalization on both create and reuse paths.

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