Skip to content

quest: plan keeping .worktrees/ out of git status - #486

Merged
kixelated merged 5 commits into
mainfrom
quest-plan/worktrees-exclude
Nov 4, 2026
Merged

kixelated merged 5 commits into
mainfrom
quest-plan/worktrees-exclude

Conversation

@kixelated

@kixelated kixelated commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Plans quest/m0/user-dev-shell/worktrees-exclude.md, the follow-up moq-dev/quest#466 suggested. With Quest's worktree hooks now opted into at user level, they run in every repository, and one that doesn't ignore .worktrees/ shows ?? .worktrees/ in git status.

Changes

  • New quest [S] .worktrees/ stays out of git status in the m0 user-dev-shell epic. quest worktree adds /.worktrees/ to the clone's $GIT_COMMON_DIR/info/exclude unless something already ignores it.

Decisions

Settled with the maintainer in /quest-complete on 2026-11-04:

  • What should the quest's goal be?
    • ✅ A local exclude written by quest worktree
    • Rejected: global gitignore docs; drop it
  • Which milestone and epic?
    • ✅ m0, user-dev-shell epic
    • Rejected: m1; m2

Review

Codex gpt-6.1-sol at xhigh effort, quest review --base origin/main, round 1 on head 914a4f7: no findings.

That head merges origin/main into the earlier reviewed head 804ae33 (Codex, no findings) to resolve the conflict from moq-dev/quest#466 deleting init-hooks.md beside this quest's Required row; the quest merge driver resolved it and quest check --fix changed nothing. The diff's context lines changed, so it was reviewed again rather than exempted. The plan's facts still hold on the merged code: ignored() runs git check-ignore (src/cli/worktree.ts:131), every checkout lands at <repository>/.worktrees/<name> (src/cli/worktree.ts:584), and nothing in src/ writes info/exclude.

Head 23a2ff1 is a conflict-free merge of newer origin/main; git diff origin/main...HEAD prints the same as for 914a4f7, so that review covers it. just check passes on it. No automated review findings are posted on 804ae33 (pullfrog: no new issues; CodeRabbit rate-limited).

🤖 Generated with Claude Code

(Written by Claude Opus 5.5)

kixelated and others added 3 commits November 4, 2026 10:04
@kixelated
kixelated marked this pull request as ready for review November 4, 2026 18:27
@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 51 seconds.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 91d376a3-db55-458b-a065-1453e6951515
Commits

Reviewing files that changed from the base of the PR and between 05aebae and 23a2ff1.

Files selected for processing: 2
  • quest/m0/user-dev-shell/README.md
  • quest/m0/user-dev-shell/worktrees-exclude.md
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

Share

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ No new issues found.

Reviewed changes — the full branch against base main (4b3faf1):

  • New quest plan — quest/m0/user-dev-shell/worktrees-exclude.md plans quest worktree appending /.worktrees/ to the clone's $GIT_COMMON_DIR/info/exclude unless something already ignores it, with the recorded decisions and a test matrix.
  • Epic README row — quest/m0/user-dev-shell/README.md's ## Required list gains the link to the new quest, in the same format as its siblings.

Facts in the plan checked out against the code and git itself: ignored() does use git check-ignore (src/cli/worktree.ts:152); nothing in src/ writes info/exclude; both quest worktree create (src/cli/main.ts:753) and the Claude hook (src/cli/worktree-hook.ts:203) go through Worktrees.create, which places every checkout at <toplevel>/.worktrees/<name> (src/cli/worktree.ts:614). The trailing-slash guidance reproduces exactly: in a fresh repository with /.worktrees/ in info/exclude, git check-ignore .worktrees exits 1 until the directory exists, while .worktrees/ matches in both states. bun run --silent quest check passes with 70 documents ok.

Pullfrog  | View workflow run | Using glm-5.3-flash | 𝕏

@kixelated
kixelated added this pull request to the merge queue Nov 4, 2026
Merged via the queue into main with commit e1dd1c1 Nov 4, 2026
10 checks passed
@kixelated
kixelated deleted the quest-plan/worktrees-exclude branch November 4, 2026 21:06
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