Skip to content

Commit fd96fec

Browse files
committed
Merge remote-tracking branch 'upstream/master' into MovingBubblesFresh
2 parents 3728b8d + c0da7ca commit fd96fec

31 files changed

Lines changed: 208 additions & 150 deletions

.claude/settings.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"allowedTools": [
3+
"Bash(gh pr view:*)",
4+
"Bash(gh pr diff:*)",
5+
"Bash(gh pr comment:*)",
6+
"Bash(gh api:*)",
7+
"Bash(gh search code:*)",
8+
"Bash(cat:*)",
9+
"Bash(ls:*)",
10+
"Bash(grep:*)",
11+
"Bash(python3:*)",
12+
"Bash(git:*)"
13+
]
14+
}

.codeant/configuration.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"review_configuration": {
3+
"include": [
4+
"src/**/*.fpp",
5+
"src/**/*.f90",
6+
"toolchain/**/*.py"
7+
],
8+
"exclude": [
9+
"tests/**",
10+
"examples/**",
11+
"docs/**"
12+
]
13+
}
14+
}

.coderabbit.yaml

Lines changed: 4 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,52 +3,15 @@ language: en-US
33

44
reviews:
55
profile: chill
6-
7-
# Hide the “Review skipped / Draft detected” status message
8-
review_status: false
9-
10-
# Remove the “Prompt for all review comments with AI agents” block
11-
enable_prompt_for_ai_agents: false
12-
13-
# Disable extra/non-default summary sections
14-
high_level_summary: false
15-
related_issues: false
16-
sequence_diagrams: false
17-
changed_files_summary: false
18-
19-
# Further reduce walkthrough noise (footer itself isn't currently configurable)
20-
collapse_walkthrough: true
21-
review_details: false
22-
estimate_code_review_effort: false
23-
assess_linked_issues: false
24-
related_prs: false
25-
suggested_labels: false
26-
suggested_reviewers: false
27-
in_progress_fortune: false
28-
poem: false
29-
30-
# Remove "Finishing Touches" section content
31-
finishing_touches:
32-
docstrings:
33-
enabled: false
34-
unit_tests:
35-
enabled: false
36-
37-
auto_review:
38-
enabled: true # initial PR-open review
39-
auto_incremental_review: false # no re-run on every push
40-
416
path_instructions:
42-
- path: "**/*"
43-
instructions: |
44-
IMPORTANT: Only comment on code that is within this PR’s diff (changed lines / files).
45-
Do not add feedback that requires commenting outside the diff range.
46-
477
- path: "src/**/*.fpp"
488
instructions: |
499
Fortran source (Fypp-preprocessed). Follow the coding standards in
5010
docs/documentation/contributing.md and the GPU macro API in
51-
docs/documentation/gpuParallelization.md and the coding standards in
11+
docs/documentation/gpuParallelization.md.
12+
- path: "src/**/*.f90"
13+
instructions: |
14+
Fortran source. Follow the coding standards in
5215
docs/documentation/contributing.md.
5316
- path: "toolchain/**/*.py"
5417
instructions: |

.github/pull_request_template.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,3 @@ See the [developer guide](https://mflowcode.github.io/documentation/contributing
3030
- [ ] Tested on NVIDIA GPU or AMD GPU
3131

3232
</details>
33-
34-
## AI code reviews
35-
36-
Reviews are not triggered automatically. To request a review, comment on the PR:
37-
- `@coderabbitai review` — incremental review (new changes only)
38-
- `@coderabbitai full review` — full review from scratch
39-
- `/review` — Qodo review
40-
- `/improve` — Qodo code suggestions

.github/workflows/bench.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828

2929
self:
3030
name: "${{ matrix.name }} (${{ matrix.device }}${{ matrix.interface != 'none' && format('-{0}', matrix.interface) || '' }})"
31-
if: ${{ github.repository=='MFlowCode/MFC' && needs.file-changes.outputs.checkall=='true' && github.event.pull_request.draft != true && ((github.event_name=='pull_request_review' && github.event.review.state=='approved') || (github.event_name=='pull_request' && (github.event.pull_request.user.login=='sbryngelson' || github.event.pull_request.user.login=='wilfonba')) || github.event_name=='workflow_dispatch') }}
31+
if: ${{ github.repository=='MFlowCode/MFC' && needs.file-changes.outputs.checkall=='true' && ((github.event_name=='pull_request_review' && github.event.review.state=='approved') || (github.event_name=='pull_request' && (github.event.pull_request.user.login=='sbryngelson' || github.event.pull_request.user.login=='wilfonba')) || github.event_name=='workflow_dispatch') }}
3232
needs: file-changes
3333
strategy:
3434
fail-fast: false

.github/workflows/claude-code-review.yml

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -10,63 +10,68 @@ jobs:
1010
permissions:
1111
contents: read
1212
pull-requests: write
13-
issues: write
13+
issues: read
1414
actions: read
1515
id-token: write
1616

1717
steps:
18-
- name: Install unzip (required by bun setup)
19-
run: |
20-
sudo apt-get update
21-
sudo apt-get install -y unzip
22-
23-
# IMPORTANT: checkout BASE repo only (safe on forks)
24-
- name: Checkout base repo (safe)
18+
- name: Checkout PR head (fork)
2519
uses: actions/checkout@v4
2620
with:
21+
ref: ${{ github.event.pull_request.head.sha }}
2722
fetch-depth: 1
2823

2924
- name: Run Claude Code Review
25+
id: claude-review
3026
uses: anthropics/claude-code-action@v1
3127
with:
3228
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
3329
github_token: ${{ github.token }}
3430

35-
plugin_marketplaces: "https://github.com/anthropics/claude-code.git"
36-
plugins: "code-review@claude-code-plugins"
31+
plugin_marketplaces: 'https://github.com/anthropics/claude-code.git'
32+
plugins: 'code-review@claude-code-plugins'
3733

38-
# NOTE: do NOT use --dangerouslyDisableSandbox (it can crash the CLI).
39-
# This flag is for non-interactive CI runs (bypasses approval prompts).
4034
claude_args: >
41-
--dangerously-skip-permissions
42-
--max-turns 90
35+
--dangerouslyDisableSandbox
36+
--max-turns 10
4337
--allowedTools
44-
"Bash"
38+
"Bash(gh pr view:*)"
39+
"Bash(gh pr diff:*)"
40+
"Bash(gh pr comment:*)"
41+
"Bash(gh api repos/*/pulls/*:*)"
42+
"Bash(gh api repos/*/issues/*/comments:*)"
43+
"Bash(cat:*)"
44+
"Bash(ls:*)"
45+
"Bash(grep:*)"
46+
"Bash(find:*)"
4547
4648
prompt: |
47-
You are running in pull_request_target.
48-
DO NOT read or inspect any checked-out PR/fork code. Review ONLY using GitHub API/gh commands.
49+
/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}
4950
50-
You may read local guidance ONLY from:
51-
- ./CLAUDE.md (root) if present
52-
- ./.claude/rules/*.md if present (max 10 files)
51+
Always use the numeric PR form with --repo, e.g.:
52+
- gh pr view ${{ github.event.pull_request.number }} --repo ${{ github.repository }} ...
53+
- gh pr diff ${{ github.event.pull_request.number }} --repo ${{ github.repository }} ...
54+
- gh pr comment ${{ github.event.pull_request.number }} --repo ${{ github.repository }} ...
5355
54-
Keep tool calls minimal and in this order:
55-
1) ls -1 .claude/rules 2>/dev/null || true
56-
2) cat CLAUDE.md 2>/dev/null || true
57-
3) find .claude/rules -maxdepth 1 -name "*.md" -print | head -n 10 | xargs -I{} cat "{}" 2>/dev/null || true
58-
4) gh pr view ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --json title,body,files,changedFiles,additions,deletions,headRefOid
59-
5) gh pr diff ${{ github.event.pull_request.number }} --repo ${{ github.repository }}
60-
6) Post ONE top-level PR comment titled "Claude Code Review", then STOP.
56+
Output requirements (even if no issues):
57+
- Start with: files changed count + list up to 15 changed file paths
58+
- Then: a short summary of what the PR changes (3–6 bullets)
59+
- Then: findings:
60+
- If issues: list them with file path + line numbers when possible
61+
- If no issues: list at least 3 concrete "improvement opportunities" with file paths
6162
62-
Output format:
63-
- Head SHA
64-
- Files changed count + list up to 10 file paths
65-
- Summary (3–6 bullets, minimal)
66-
- Findings with file + line numbers when possible
67-
- If no issues: 0–3 improvement opportunities (only if confident)
63+
Post the results as ONE top-level PR comment titled "Claude Code Review".
64+
If you cannot access the diff/files, say exactly what is blocked.
65+
If posting a PR comment is blocked, write the full review to the GitHub Actions job summary instead.
6866
69-
If posting is blocked, write the full review to the GitHub Actions job summary instead, then STOP.
67+
IMPORTANT:
68+
- Do NOT stop just because a previous "Claude Code Review" comment exists.
69+
- If a prior Claude review exists, post a NEW comment titled "Claude Code Review (updated)" that includes:
70+
- current head SHA: ${{ github.event.pull_request.head.sha }}
71+
- files changed count + up to 15 file paths
72+
- 3–6 bullet summary of changes
73+
- findings or at least 3 improvement opportunities with file paths
74+
Post as ONE top-level PR comment.
7075
7176
additional_permissions: |
7277
actions: read

.github/workflows/test.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
push:
55
branches: [master]
66
pull_request:
7-
types: [opened, synchronize, reopened, ready_for_review]
87
workflow_dispatch:
98

109
concurrency:
@@ -152,7 +151,7 @@ jobs:
152151

153152
self:
154153
name: "${{ matrix.cluster_name }} (${{ matrix.device }}${{ matrix.interface != 'none' && format('-{0}', matrix.interface) || '' }})"
155-
if: github.repository == 'MFlowCode/MFC' && needs.file-changes.outputs.checkall == 'true' && github.event.pull_request.draft != true
154+
if: github.repository == 'MFlowCode/MFC' && needs.file-changes.outputs.checkall == 'true'
156155
needs: [lint-gate, file-changes]
157156
continue-on-error: false
158157
timeout-minutes: 480

.lychee.toml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,8 @@ accept = ["200", "429", "502", "504"]
1616

1717
verbose = "error"
1818

19-
# Exclude files from scanning
20-
exclude_path = [
21-
"sitemap\\.xml", # Contains pre-publish production URLs
22-
"404\\.html", # Root-relative links (/, /documentation/) can't resolve in local checks
23-
]
19+
# Exclude sitemap file from scanning (it contains pre-publish production URLs)
20+
exclude_path = ["sitemap\\.xml"]
2421

2522
# Exclude URLs that fail due to external issues (broken SSL, pre-deploy only, etc.)
2623
exclude = [

.pr_agent.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ pr_commands = [
55
"/improve",
66
]
77

8+
handle_push_trigger = true
9+
push_commands = ["/improve"]
10+
811
[pr_reviewer] # (all fields optional)
912
num_max_findings = 10 # how many items to surface
1013
require_tests_review = true

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ source ./mfc.sh load -c p -m c # Load Phoenix CPU modules
5151

5252
# Other
5353
./mfc.sh validate case.py # Validate case file without running
54-
./mfc.sh params <query> # Search 3,400 case parameters
54+
./mfc.sh params <query> # Search ~3,400 case parameters
5555
./mfc.sh clean # Remove build artifacts
5656
./mfc.sh new <name> # Create new case from template
5757
```

0 commit comments

Comments
 (0)