Skip to content

Copier update: misc claude#126

Merged
ejfine merged 8 commits intomainfrom
misc-claude
Mar 6, 2026
Merged

Copier update: misc claude#126
ejfine merged 8 commits intomainfrom
misc-claude

Conversation

@ejfine
Copy link
Contributor

@ejfine ejfine commented Mar 5, 2026

Pull in upstream template changes. and add a tiny amount of project-specific information to Agents.md

Summary by CodeRabbit

  • Documentation

    • Updated development guidelines for Python parameters, testing practices, and frontend tooling recommendations.
    • Added project structure notes describing frontend, backend, and codegen setup.
  • Chores

    • Updated dev tooling, CI/workflow, and container setup versions and install commands.
    • Enhanced build configuration for a modern JavaScript target.
    • Expanded permission aggregation to include a new ask category in merged settings.

@ejfine ejfine self-assigned this Mar 5, 2026
@ejfine ejfine changed the title copier Copier update: misc claude Mar 5, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 5, 2026

Warning

Rate limit exceeded

@ejfine has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 22 minutes and 53 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 155cb036-a174-4c5d-9ec5-0ae0dd521c3a

📥 Commits

Reviewing files that changed from the base of the PR and between 44033a4 and c201735.

📒 Files selected for processing (3)
  • AGENTS.md
  • template/AGENTS.md
  • template/frontend/nuxt.config.ts.jinja
📝 Walkthrough

Walkthrough

Maintenance updates across repo and templates: adds aggregation for permissions.ask in Claude settings merge, updates dependency and GitHub Actions versions, adjusts devcontainer tooling, refines Python linting guidance and docs, and bumps small configuration values.

Changes

Cohort / File(s) Summary
Permission Schema
.claude/helpers/merge-claude-settings.sh, template/.claude/helpers/merge-claude-settings.sh
Collects, flattens and deduplicates permissions.ask across inputs and includes it under permissions.ask in the merged settings JSON (mirrors allow/deny).
Docs / Guidance
AGENTS.md, template/AGENTS.md
Adjusts keyword-only parameter guidance with an exception for single-arg functions; adds Python testing notes (mock/spy behavior) and frontend tooling/project-structure guidance.
Devcontainer & Tooling
.devcontainer/devcontainer.json, .devcontainer/on-create-command.sh, .devcontainer/install-ci-tooling.py, template/.devcontainer/devcontainer.json.jinja, template/.devcontainer/on-create-command.sh.jinja
Updates coderabbit VSCode extension (0.18.1→0.18.3), switches npm installnpm ci, and bumps UV_VERSION (0.10.7→0.10.8).
CI / GitHub Actions
.github/reusable_workflows/build-docker-image.yaml, .github/workflows/ci.yaml, .github/workflows/pre-commit.yaml, template/.github/workflows/pre-commit.yaml
Bumps action versions: actions/upload-artifact@v6@v7, actions/cache@v5.0.2@v5.0.3.
Context Hook Versions
extensions/context.py
Updates multiple version strings in context hook (uv, fastapi, nuxt_ui, happy_dom and GH Actions artifact versions).
Configuration & Templates
.coderabbit.yaml, template/.coderabbit.yaml, .copier-answers.yml, template/frontend/nuxt.config.ts.jinja
Rewrites Python linting/review guidance referencing ruff configs and pre-commit; bumps .copier-answers.yml _commit; adds esbuild target es2024 in Nuxt template.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description provides a brief summary of changes but does not follow the required template structure with sections for issue links, rationale, addressed issues, side effects, testing, or other details. Expand the description to include template sections: explain why upstream changes are needed, what specific issues they address, any side effects, and how the changes are tested.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Copier update: misc claude' is vague and uses the generic term 'misc' which fails to convey meaningful information about the specific changes in this changeset. Replace 'misc claude' with a more specific description of the primary changes, such as 'Copier update: add ask permission support and upstream template updates'.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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

Comment @coderabbitai help to get the list of available commands and usage tips.

@ejfine ejfine marked this pull request as ready for review March 5, 2026 22:17
@ejfine ejfine requested a review from zendern March 5, 2026 22:17
zendern
zendern previously approved these changes Mar 5, 2026
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@AGENTS.md`:
- Around line 15-18: Insert a single blank line immediately before the "###
Python Testing" heading in the AGENTS.md content so the heading is separated
from the previous paragraph, ensuring compliance with markdownlint; locate the
exact "### Python Testing" line and add one empty line above it.
- Around line 114-117: Add a blank line immediately above the "## Project
Structure" heading in AGENTS.md to satisfy markdownlint; locate the heading text
"## Project Structure" and insert a single empty line before it so the heading
is separated from the preceding content.

In `@template/AGENTS.md`:
- Around line 15-17: Add a blank line immediately after the "### Python Testing"
heading in AGENTS.md to satisfy markdownlint MD022; locate the heading text "###
Python Testing" and insert one empty line before the following bullet list so
heading spacing matches lint rules.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 07a12f0b-b094-4463-be47-2e8594658067

📥 Commits

Reviewing files that changed from the base of the PR and between 355449c and e23991f.

📒 Files selected for processing (18)
  • .claude/helpers/merge-claude-settings.sh
  • .coderabbit.yaml
  • .copier-answers.yml
  • .devcontainer/devcontainer.json
  • .devcontainer/install-ci-tooling.py
  • .devcontainer/on-create-command.sh
  • .github/reusable_workflows/build-docker-image.yaml
  • .github/workflows/ci.yaml
  • .github/workflows/pre-commit.yaml
  • AGENTS.md
  • extensions/context.py
  • template/.claude/helpers/merge-claude-settings.sh
  • template/.coderabbit.yaml
  • template/.devcontainer/devcontainer.json.jinja
  • template/.devcontainer/on-create-command.sh.jinja
  • template/.github/workflows/pre-commit.yaml
  • template/AGENTS.md
  • template/frontend/nuxt.config.ts.jinja

Comment on lines +15 to +18
### Python Testing
- When using `mocker.spy` on a class-level method (including inherited ones), the spy records the unbound call, so assertions need `ANY` as the first argument to match self: `spy.assert_called_once_with(ANY, expected_arg)`
- Before writing new mock/spy helpers, check the `tests/unit/` folder for pre-built helpers in files like `fixtures.py` or `*mocks.py`

Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Add blank line before heading per markdownlint.

The ### Python Testing heading should have a blank line above it for proper markdown formatting.

📝 Proposed fix
 - Prefer using random values in tests rather than arbitrary ones (e.g. the faker library, uuids, random.randint) when possible.
+
 ### Python Testing
 - When using `mocker.spy` on a class-level method (including inherited ones), the spy records the unbound call, so assertions need `ANY` as the first argument to match self:  `spy.assert_called_once_with(ANY, expected_arg)`
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Python Testing
- When using `mocker.spy` on a class-level method (including inherited ones), the spy records the unbound call, so assertions need `ANY` as the first argument to match self: `spy.assert_called_once_with(ANY, expected_arg)`
- Before writing new mock/spy helpers, check the `tests/unit/` folder for pre-built helpers in files like `fixtures.py` or `*mocks.py`
- Prefer using random values in tests rather than arbitrary ones (e.g. the faker library, uuids, random.randint) when possible.
### Python Testing
- When using `mocker.spy` on a class-level method (including inherited ones), the spy records the unbound call, so assertions need `ANY` as the first argument to match self: `spy.assert_called_once_with(ANY, expected_arg)`
- Before writing new mock/spy helpers, check the `tests/unit/` folder for pre-built helpers in files like `fixtures.py` or `*mocks.py`
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 15-15: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 15 - 18, Insert a single blank line immediately
before the "### Python Testing" heading in the AGENTS.md content so the heading
is separated from the previous paragraph, ensuring compliance with markdownlint;
locate the exact "### Python Testing" line and add one empty line above it.

AGENTS.md Outdated
Comment on lines +114 to +117
## Project Structure
- This is a statically generated frontend---using the Nuxt and @nuxt/ui frameworks---meant to operate in an air-gapped environment. That code is in the `frontend/` directory.
- There may also be a backend that the frontend talks to, in `backend/`. If present, it will be a Python FastAPI uvicorn server.
- Kiota is used for codegen from the OpenAPI schema
Copy link
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick | 🔵 Trivial

Add blank line before heading per markdownlint.

The ## Project Structure heading should have a blank line above it.

📝 Proposed fix
 <!-- END BEADS INTEGRATION -->
+
 ## Project Structure
 - This is a statically generated frontend---using the Nuxt and `@nuxt/ui` frameworks---meant to operate in an air-gapped environment. That code is in the `frontend/` directory.
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 114-114: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 114 - 117, Add a blank line immediately above the "##
Project Structure" heading in AGENTS.md to satisfy markdownlint; locate the
heading text "## Project Structure" and insert a single empty line before it so
the heading is separated from the preceding content.

Comment on lines +15 to +17
### Python Testing
- When using `mocker.spy` on a class-level method (including inherited ones), the spy records the unbound call, so assertions need `ANY` as the first argument to match self: `spy.assert_called_once_with(ANY, expected_arg)`
- Before writing new mock/spy helpers, check the `tests/unit/` folder for pre-built helpers in files like `fixtures.py` or `*mocks.py`
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add a blank line after the ### Python Testing heading (MD022).

Heading spacing is inconsistent with markdownlint expectations.

Suggested fix
 ### Python Testing
+
 - When using `mocker.spy` on a class-level method (including inherited ones), the spy records the unbound call, so assertions need `ANY` as the first argument to match self:  `spy.assert_called_once_with(ANY, expected_arg)`
 - Before writing new mock/spy helpers, check the `tests/unit/` folder for pre-built helpers in files like `fixtures.py` or `*mocks.py`
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Python Testing
- When using `mocker.spy` on a class-level method (including inherited ones), the spy records the unbound call, so assertions need `ANY` as the first argument to match self: `spy.assert_called_once_with(ANY, expected_arg)`
- Before writing new mock/spy helpers, check the `tests/unit/` folder for pre-built helpers in files like `fixtures.py` or `*mocks.py`
### Python Testing
- When using `mocker.spy` on a class-level method (including inherited ones), the spy records the unbound call, so assertions need `ANY` as the first argument to match self: `spy.assert_called_once_with(ANY, expected_arg)`
- Before writing new mock/spy helpers, check the `tests/unit/` folder for pre-built helpers in files like `fixtures.py` or `*mocks.py`
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 15-15: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@template/AGENTS.md` around lines 15 - 17, Add a blank line immediately after
the "### Python Testing" heading in AGENTS.md to satisfy markdownlint MD022;
locate the heading text "### Python Testing" and insert one empty line before
the following bullet list so heading spacing matches lint rules.

@zendern
Copy link
Contributor

zendern commented Mar 5, 2026

Saw you flip flopped the compatibility version is it worth adding a comment on what happened when you went to v5?

zendern
zendern previously approved these changes Mar 5, 2026
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (2)
AGENTS.md (2)

114-117: ⚠️ Potential issue | 🟡 Minor

Add a blank line after ## Project Structure.

Line 114 has the same markdownlint issue: the heading is directly followed by a list. Insert one empty line before Line 115.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 114 - 117, Add a blank line after the "## Project
Structure" heading so the heading is separated from the following list; open
AGENTS.md, find the "## Project Structure" heading and insert one empty line
before the bullet list that begins with "This is a statically generated
frontend..." to satisfy markdownlint.

15-17: ⚠️ Potential issue | 🟡 Minor

Add a blank line after ### Python Testing.

Line 15 still violates MD022 because the heading is immediately followed by list content. Insert one empty line before Line 16.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 15 - 17, The heading "### Python Testing" is
immediately followed by list items which violates MD022; insert a single blank
line after the "### Python Testing" heading (i.e., place an empty line between
the heading and the subsequent list lines) so the heading is separated from the
list content.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@AGENTS.md`:
- Around line 114-117: Add a blank line after the "## Project Structure" heading
so the heading is separated from the following list; open AGENTS.md, find the
"## Project Structure" heading and insert one empty line before the bullet list
that begins with "This is a statically generated frontend..." to satisfy
markdownlint.
- Around line 15-17: The heading "### Python Testing" is immediately followed by
list items which violates MD022; insert a single blank line after the "###
Python Testing" heading (i.e., place an empty line between the heading and the
subsequent list lines) so the heading is separated from the list content.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 0499283a-b7aa-4408-8fa7-1997b75a3f08

📥 Commits

Reviewing files that changed from the base of the PR and between e23991f and 44033a4.

📒 Files selected for processing (1)
  • AGENTS.md

@ejfine
Copy link
Contributor Author

ejfine commented Mar 6, 2026

Saw you flip flopped the compatibility version is it worth adding a comment on what happened when you went to v5?

c75fef3

@ejfine ejfine merged commit e08dd3b into main Mar 6, 2026
12 checks passed
@ejfine ejfine deleted the misc-claude branch March 6, 2026 01:03
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.

2 participants