Skip to content

chore(.gitignore): ignore .claude/settings.local.json (per-machine Claude Code overrides)#53

Merged
cmeans-claude-dev[bot] merged 1 commit into
mainfrom
chore/ignore-claude-local-settings
Apr 29, 2026
Merged

chore(.gitignore): ignore .claude/settings.local.json (per-machine Claude Code overrides)#53
cmeans-claude-dev[bot] merged 1 commit into
mainfrom
chore/ignore-claude-local-settings

Conversation

@cmeans-claude-dev

Copy link
Copy Markdown
Contributor

Summary

Adds .claude/settings.local.json to .gitignore — Claude Code's per-machine permission overrides file.

Why

When a Claude Code session is granted machine-specific permissions (e.g., the project-scoped allow-list for read-only ssh holodeck pct exec 112 ... commands added 2026-04-27 so future sessions can journalctl/tail/cat Caddy logs without prompts), Claude Code writes them to .claude/settings.local.json. That file is local to the maintainer's machine — other contributors will set up their own.

The maintainer's global ~/.config/git/ignore already covers **/.claude/settings.local.json, so the file has never appeared in the maintainer's git status. But anyone else cloning this repo who uses Claude Code without that global rule WOULD see it as untracked. Adding the per-repo rule covers them too — the repo is self-contained for git status cleanliness.

What's in the diff

.gitignore (3 lines added):

+
+# Per-machine Claude Code permission overrides
+.claude/settings.local.json

CHANGELOG.md (2 lines — new bullet under existing ## [Unreleased]### Changed).

The new rule sits in its own commented section after the .deploy/ block from PR #52, mirroring that PR's structure.

Test plan

  • git check-ignore -v .claude/settings.local.json reports the per-repo rule matched (verified locally — .gitignore:23:.claude/settings.local.json).
  • ## [Unreleased] has a new ### Changed entry describing this PR.
  • No unrelated changes — diff is .gitignore (3 lines) + CHANGELOG.md (2 lines).

History

This change was carried as git stash@{0} from a stale feat/batched-bigquery-query branch. Stash was applied by intent, not via git stash apply (which would have conflicted with PR #52's .deploy/ block). Stash will be dropped post-merge.

🤖 Generated with Claude Code

Per-machine Claude Code permission overrides — created locally when a
Claude Code session is granted machine-specific permissions. The
maintainer's global ignore already covers this pattern, but adding
the per-repo rule means other Claude Code users who clone the repo
won't see it as untracked either.

CHANGELOG: bullet under Unreleased / Changed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@cmeans-claude-dev cmeans-claude-dev Bot added the Ready for QA Dev work complete — QA can begin review label Apr 29, 2026
@github-actions github-actions Bot added Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA and removed Awaiting CI Dev complete, waiting for CI/Codecov to pass before QA labels Apr 29, 2026
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@cmeans cmeans left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

LGTM

@cmeans cmeans added QA Active QA is actively reviewing; Dev should not push changes and removed Ready for QA Dev work complete — QA can begin review labels Apr 29, 2026

@cmeans cmeans left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

QA round 1 — PASS (no findings)

Tiny mirror of PR #52: .gitignore (+3) + CHANGELOG.md (+2). Diff scope matches the PR body exactly — no other files touched.

Verifications

  • git check-ignore -v .claude/settings.local.json.gitignore:23:.claude/settings.local.json .claude/settings.local.json
  • Precision check: git check-ignore .claude/settings.json → exit 1 (no match). The rule is anchored on the literal .local.json filename so a future shared .claude/settings.json (project-scoped) would not be hidden by accident.
  • Diff scope: git diff --stat origin/main..HEAD.gitignore | 3 +++ / CHANGELOG.md | 2 ++ / 2 files changed, 5 insertions(+) — exactly matches the PR body's "no unrelated changes" claim.
  • .gitignore style: rule sits in its own commented block (# Per-machine Claude Code permission overrides) below PR #52's .deploy/ block, mirroring that PR's structure cleanly.
  • CHANGELOG.md: second bullet under the existing ## [Unreleased]### Changed block. KaC ordering preserved (single ### Changed section). Bold-filename + prose-body shape matches PR #52's bullet and the house style of recent entries. Internal-only; no user-facing behavior change. framing kept consistent.
  • uv run pytest --cov --cov-report=xml79/79 pass at 100% coverage (Required test coverage of 100.0% reached)
  • uv run ruff check src/ tests/ → All checks passed
  • uv run ruff format --check src/ tests/ → 11 files already formatted
  • uv run mypy src/pypi_winnow_downloads/ → Success: no issues found in 5 source files
  • CI: 9 pass / 2 expected-skip (changelog, on-unlabel) / 1 pending QA Gate

Labels: Ready for QAQA ActiveReady for QA Signoff. Awaiting maintainer QA Approved.

@cmeans

cmeans commented Apr 29, 2026

Copy link
Copy Markdown
Owner

Audit trail: applying Ready for QA Signoff — diff scope matches PR body, .gitignore + CHANGELOG only, all four verification commands clean, CI fully green, no findings. Workflow: Ready for QA → QA Active → Ready for QA Signoff.

@cmeans cmeans added Ready for QA Signoff QA passed — ready for maintainer final review and merge QA Approved Manual QA testing completed and passed and removed QA Active QA is actively reviewing; Dev should not push changes Ready for QA Signoff QA passed — ready for maintainer final review and merge labels Apr 29, 2026
@cmeans-claude-dev cmeans-claude-dev Bot merged commit 2bd764a into main Apr 29, 2026
40 checks passed
@cmeans-claude-dev cmeans-claude-dev Bot deleted the chore/ignore-claude-local-settings branch April 29, 2026 22:02
cmeans-claude-dev Bot added a commit that referenced this pull request Apr 30, 2026
Bumps version 0.2.0 → 0.3.0 and promotes the [Unreleased] section to
[0.3.0] - 2026-04-29. One feature PR plus three small chore PRs land
in this release; full bullets in CHANGELOG.md.

Minor bump (rather than patch): run_pypinfo()'s return type changed
from dict[str, int] to a TypedDict carrying both by_installer and
by_system aggregates in #57. The feature surface is also new (3
new badge files per package per window: linux / macos / windows).

Shipping:
- feat(collector): per-OS download breakdown badges (#57, d7688ce)
- ci: weekly uv lock --upgrade refresh cron (#54, 3ed03b9)
- chore(deps): refresh uv.lock transitive pins (#55, 92ec030)
- chore(.gitignore): private operator tooling (#52, 5bae606)
- chore(.gitignore): Claude Code permission overrides (#53, 2bd764a)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

QA Approved Manual QA testing completed and passed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants