Skip to content

feat: reconcile managed Git ignore rules#92

Merged
corwinm merged 8 commits into
mainfrom
feat/managed-ignore-reconciliation
Jul 14, 2026
Merged

feat: reconcile managed Git ignore rules#92
corwinm merged 8 commits into
mainfrom
feat/managed-ignore-reconciliation

Conversation

@corwinm

@corwinm corwinm commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • add shared, Git-native managed-ignore inspection and reconciliation
  • default configured workspaces to common-Git-directory local excludes with explicit tracked/none preferences
  • integrate init, pull, clone, add, create, and read-only doctor diagnostics
  • preserve safe rollback, partial-success, dry-run, and JSON contracts

Validation

  • pnpm typecheck
  • pnpm lint (0 errors; existing warnings remain)
  • pnpm contract:check
  • pnpm schema:check
  • pnpm build
  • pnpm quality:changed
  • npm pack --dry-run
  • full suite: 850 passed, 1 unrelated timing assertion missed its 5s threshold by 219ms; isolated timing test then passed 3/3 at 2.1–2.2s
  • focused post-commit managed-ignore/init/bare-create suite: 23 passed
  • GitHub CI passed quality, Ubuntu/Windows tests, and Ubuntu/macOS/Windows build/validation matrices
  • git diff --check

Related PRs

Tracks corwinm/arashi-arashi#213.

Review feedback follow-up

  • fixes dry-run bootstrap planning outside an existing Git repository
  • migrates Arashi-owned rules transactionally between local and tracked scopes
  • anchors and escapes generated rules; rejects control characters and symlink targets
  • preserves ignore coverage when rollback leaves materialized repositories or worktrees
  • pulls a selected parent before tracked reconciliation and preserves partial-success reporting
  • keeps JSON output isolated and reports incomplete rollback details

Follow-up validation

  • pnpm typecheck
  • focused Vitest suite: 150 tests passed
  • pnpm quality:changed
  • pnpm lint (repository warnings only; zero errors)
  • pnpm contract:check
  • pnpm schema:check
  • pnpm build
  • npm pack --dry-run
  • git diff --check

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d5fc7af0a0

ℹ️ 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 thread src/commands/init.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5ed9973382

ℹ️ 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 thread src/lib/managed-ignore.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b37c7ebc07

ℹ️ 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 thread src/lib/managed-ignore.ts Outdated
Comment thread src/commands/add.ts Outdated

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3a2d9ff7d7

ℹ️ 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 thread src/commands/create.ts Outdated
Comment thread src/commands/init.ts

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4bb8768cf3

ℹ️ 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 thread src/commands/add.ts Outdated
@corwinm

corwinm commented Jul 14, 2026

Copy link
Copy Markdown
Owner Author

Final independent blocking review found one additional safety gap: local info/exclude could be a symbolic link even though tracked .gitignore was already protected. Fixed in 4bb8768 by validating both managed targets during inspection, immediately before writes, and before restoration writes. Added a regression proving an external symlink target remains unchanged. The full cross-platform CI matrix is green.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5316f5f9fe

ℹ️ 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 thread src/commands/init.ts
workspaceRoot,
worktreesDir: existingConfig.worktreesDir ?? DEFAULT_WORKTREES_DIR,
});
return {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Emit preference-only dry-run plans

When an existing workspace runs arashi init --ignore-scope <scope> --dry-run, this early return bypasses the later [DRY RUN] UPDATE_FILE logging, and the command action also skips displaySuccess for dry runs. The result is a dry-run that computes managedIgnore.plannedRules but shows only the dry-run header/no plan, so users cannot preview the scope migration they requested; log the managed-ignore dry-run plan before returning from this preference-only path.

Useful? React with 👍 / 👎.

@corwinm
corwinm merged commit 8da9064 into main Jul 14, 2026
9 checks passed
@corwinm
corwinm deleted the feat/managed-ignore-reconciliation branch July 14, 2026 23:02
github-actions Bot pushed a commit that referenced this pull request Jul 15, 2026
## [1.20.0](v1.19.2...v1.20.0) (2026-07-15)

### Features

* add cmux workspace launching ([#91](#91)) ([1dcfeb9](1dcfeb9))
* reconcile managed Git ignore rules ([#92](#92)) ([8da9064](8da9064))
* support zero-config standalone repositories ([#93](#93)) ([91acd82](91acd82))
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 1.20.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant