Skip to content

Adds the feature to generate support report - #725

Merged
zonble merged 12 commits into
openvanilla:masterfrom
zonble:master
Nov 3, 2025
Merged

Adds the feature to generate support report#725
zonble merged 12 commits into
openvanilla:masterfrom
zonble:master

Conversation

@zonble

@zonble zonble commented Nov 1, 2025

Copy link
Copy Markdown
Contributor

The PR adds a button in the preferences to create a report that users can attach it when filing issues. A report is like

- Model: Mac16,1
- Readable Model: MacBook Pro (14-inch, Nov 2024)
- Machine: arm64
- CPU: Apple M4
- Cores: 10
- Memory: 16.0 GB
- CPU Frequency: n/a
- OS Version: macOS 26.0.1
- Preferred Languages: en-US, zh-Hant-US
- Current Locale: en_US
- Language Code: en
- Region Code: US
- Currency: USD
- Keyboards:
  - Apple Internal Keyboard / Trackpad
    - Manufacturer: Apple
    - Transport: FIFO
    - Location: 0X00000000000000D5
  - USB Keyboard
    - Manufacturer: (Unknown Manufacturer)
    - Transport: USB
    - VendorID: 1241
    - ProductID: 8209
    - Country Code: 0
    - Location: 0X0000000001131200
- Enabled Input Sources:
  - U.S. (com.apple.keylayout.US) [TISCategoryKeyboardInputSource]
  - Bopomofo (org.openvanilla.inputmethod.McBopomofo.McBopomofo.Bopomofo) [TISCategoryKeyboardInputSource]
  - Yahoo! KeyKey (com.yahoo.inputmethod.KeyKey) [TISCategoryKeyboardInputSource]
  - Ainu (com.apple.inputmethod.AinuIM.Ainu) [TISCategoryKeyboardInputSource]
  - Hiragana (com.apple.inputmethod.Kotoeri.KanaTyping.Japanese) [TISCategoryKeyboardInputSource]
  - Hiragana (com.apple.inputmethod.Kotoeri.RomajiTyping.Japanese) [TISCategoryKeyboardInputSource]
  - Zhuyin – Traditional (com.apple.inputmethod.TCIM.Zhuyin) [TISCategoryKeyboardInputSource]
- Default Browser: Microsoft Edge (com.microsoft.edgemac)
- Safari 26.0.1 (21622.1.22.11.15)
- App Version: 2.9.3
- App Build: 1964
- McBopomofo Settings
  - Keyboard Layout: Standard
  - Basis Keyboard Layout: com.apple.keylayout.US
  - Function Keyboard Layout: com.apple.keylayout.US
  - Candidate Keys: 123456789
  - Selection Mode: After Cursor
  - Move Cursor After Selecting Candidate: Enabled
  - Canddidate Window: Horizontal
  - Chinese Conversion: Disabled
  - Chinese Conversion Style: model
  - Punctuations: Full-width
  - Select Canidate With Numbric Keyboard: Disabled
  - Allow Ctrl + ` For Big5 Input: Enabled
  - Phrase Repalcement: Disabled
  - Associated Phrases (McBopomofo): Disabled
  - Associated Phrases (Plain Bopomofo): Disabled
  - Letter Keys: 1
  - Ctrl + Enter Key: Taiwan Braille
  - Shift + Enter Key For Associated Phrases: Enabled
  - Repeated Keys For Next Candidate: Enabled
  - Add Phrase Hook: Enabled
  - Add Phrase Hook Path: /Users/zonble/Library/Input Methods/McBopomofo.app/Contents/Resources/add-phrase-hook.sh
  - Beep Upon Errors: Enabled
  - Moving Cursor When Choosing Candidates: MovingCursorKey(rawValue: 1)

The PR also updates the README files for the local packages.

@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello @zonble, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the application's diagnostic capabilities by integrating a new feature to generate a detailed support report. This report, accessible via a new button in the preferences, consolidates essential system and application-specific information, making it easier for users to provide necessary context when reporting issues. The changes also include the introduction of a modular InfoCollector Swift package for efficient data gathering and extensive documentation improvements across various internal Swift packages, contributing to better maintainability and developer experience.

Highlights

  • Support Report Generation: A new 'Create System Report' button has been added to the application's preferences, allowing users to generate a comprehensive diagnostic report for troubleshooting.
  • New InfoCollector Swift Package: A dedicated Swift package, 'InfoCollector', was introduced to systematically gather detailed system and application information, such as machine model, OS version, language settings, keyboard types, and app versions.
  • Extensive Documentation Updates: Many local Swift packages (e.g., BopomofoBraille, CandidateUI, ChineseNumbers, FSEventStreamHelper, InputSourceHelper, NSStringUtils, NotifierUI, OpenCCBridge, RomanNumbers, SystemCharacterInfo, TooltipUI) received new or significantly updated README files, improving clarity and ease of use for developers.
  • Preferences UI and Logic Enhancements: The preferences UI was updated to accommodate the new report button, and the underlying logic in Preferences.swift was extended to format application-specific settings into the diagnostic report.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@zonble zonble self-assigned this Nov 1, 2025
gemini-code-assist[bot]

This comment was marked as resolved.

tianjianjiang added a commit that referenced this pull request Nov 1, 2025
Additional fixes to Claude Code Review workflow:

1. Remove paths-ignore filter for workflow file itself
   - Previously prevented testing workflow changes
   - PR #726 was skipped because it only modified the workflow
   - Now workflow changes will trigger the review for testing

2. Add explicit fork PR skip condition
   - if: github.event.pull_request.head.repo.full_name == github.repository
   - Fork PRs cannot access secrets or OIDC tokens (GitHub security)
   - Gracefully skip instead of failing with authentication errors
   - Clear documentation explaining why and what alternatives exist

3. Update documentation
   - Explain GitHub's security model for fork PRs
   - Provide alternatives for fork PR reviews:
     * Use on-demand @claude workflow
     * Manual review
     * Merge first, review next PR
   - Remove misleading manual approval instructions (doesn't help)

This ensures:
- Fork PRs skip cleanly without errors
- Workflow changes can be tested immediately
- Clear guidance for maintainers handling fork PRs

Related: PR #725 (fork) failed with OIDC token error
Related: PR #726 was skipped due to path filter

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@tianjianjiang

This comment was marked as off-topic.

@tianjianjiang

This comment was marked as off-topic.

@tianjianjiang
tianjianjiang requested a review from Copilot November 2, 2025 05:32

This comment was marked as resolved.

@tianjianjiang

This comment was marked as resolved.

tianjianjiang

This comment was marked as resolved.

@zonble

zonble commented Nov 3, 2025

Copy link
Copy Markdown
Contributor Author

Correction to my previous review - I reviewed the wrong files by mistake.

The actual typos in this PR are in Source/Preferences.swift:
These will appear in generated support reports, so should be fixed before merge. The InfoCollector implementation looks solid otherwise.

Fixed in f4afd8d. Thanks!

tianjianjiang added a commit that referenced this pull request Nov 3, 2025
* ci: fix Claude Code Review workflow to post PR comments

The Claude Code Review workflow was not posting comments on PRs due to:
1. Insufficient permissions: pull-requests: read (needs write to post)
2. Max turns exhaustion: Claude ran out of 5 turns before posting
3. No guidance for fork PR behavior

Changes:
- Update permissions from pull-requests: read to pull-requests: write
  to allow posting PR review comments
- Increase max-turns from 5 to 10 to ensure Claude completes review
  and successfully posts the comment
- Add comprehensive documentation about fork PR approval requirements
  and setup instructions for maintainers
- Add inline comment explaining the permission change

This fixes the issue where Claude would analyze PRs but never post
the review comments. With write permissions and more turns, Claude
can now complete the review cycle and post feedback.

Fork PRs will require manual approval by maintainers (security best
practice to prevent secret exfiltration).

Related: #722

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* ci: skip fork PRs gracefully and allow workflow self-testing

Additional fixes to Claude Code Review workflow:

1. Remove paths-ignore filter for workflow file itself
   - Previously prevented testing workflow changes
   - PR #726 was skipped because it only modified the workflow
   - Now workflow changes will trigger the review for testing

2. Add explicit fork PR skip condition
   - if: github.event.pull_request.head.repo.full_name == github.repository
   - Fork PRs cannot access secrets or OIDC tokens (GitHub security)
   - Gracefully skip instead of failing with authentication errors
   - Clear documentation explaining why and what alternatives exist

3. Update documentation
   - Explain GitHub's security model for fork PRs
   - Provide alternatives for fork PR reviews:
     * Use on-demand @claude workflow
     * Manual review
     * Merge first, review next PR
   - Remove misleading manual approval instructions (doesn't help)

This ensures:
- Fork PRs skip cleanly without errors
- Workflow changes can be tested immediately
- Clear guidance for maintainers handling fork PRs

Related: PR #725 (fork) failed with OIDC token error
Related: PR #726 was skipped due to path filter

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* ci: restore paths-ignore to prevent OIDC validation errors

Reverts the removal of paths-ignore that was causing OIDC token validation
failures on PR #726.

Root Cause:
- GitHub's security model requires workflow files using id-token: write to be
  byte-for-byte identical to the version on the master branch
- When a PR modifies a workflow file, OIDC token exchange fails with:
  "401 Unauthorized - Workflow validation failed"
- This is intentional security to prevent malicious workflow modifications
  from stealing tokens or secrets

What Happened:
1. Commit 3934b75 (Oct 22) correctly added paths-ignore to prevent this error
2. Commit 76b6d1e (Nov 2) removed it to "allow testing workflow changes"
3. PR #726 now fails with the exact OIDC error that 3934b75 prevented

The Paradox:
- Removing paths-ignore doesn't enable testing - GitHub's security prevents it
- Workflow modifications CANNOT be tested in PRs before merging (by design)
- You cannot bypass OIDC validation for modified workflows

Solution:
- Restore paths-ignore for the workflow file itself
- Add comprehensive documentation explaining GitHub's security restriction
- Accept that workflow changes must be manually reviewed
- Once merged to master, the updated workflow applies to all future PRs

Changes:
- Restored: paths-ignore: '.github/workflows/claude-code-review.yml'
- Added: Detailed comments explaining OIDC validation and security model
- Kept: pull-requests: write permission (needed for posting)
- Kept: --max-turns 10 (prevents exhaustion)
- Kept: Fork PR skip condition (prevents fork failures)

After merging this PR:
- Future workflow modifications will skip auto-review (expected)
- Future PRs with code changes will get Claude reviews (working)
- No more false-positive OIDC validation errors

Related: Commit 3934b75 (original fix)
Related: https://github.com/openvanilla/McBopomofo/actions/runs/19004088783 (OIDC error)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* ci: switch to MCP GitHub tools for reliable PR review posting

Fixes issue where Claude bot posted reviews to workflow output instead
of PR comments, and encountered MCP permission denials.

Root Cause (from run #19002226499):
- Workflow used gh CLI (Bash tools) but execution used MCP tools
- MCP tool allowlist was incomplete - missing mcp__github__get_pull_request
- Permission denial prevented Claude from getting PR context
- Reviews posted to workflow summary instead of PR

Changes:
1. Replace Bash/gh CLI tools with MCP GitHub review tools
   - More reliable than CLI wrapper
   - Native GitHub API integration
   - Matches claude.yml workflow pattern

2. Complete MCP tool allowlist:
   - mcp__github__get_pull_request (ADDED - was missing, caused denials)
   - mcp__github__create_pending_pull_request_review
   - mcp__github__get_pull_request_diff
   - mcp__github__add_comment_to_pending_review
   - mcp__github__submit_pending_pull_request_review

3. Update prompt to use GitHub review system:
   - Clear step-by-step instructions for MCP tools
   - Request inline comments with suggestion blocks
   - Submit as "COMMENT" event type (non-blocking)

Benefits:
- Reviews post as proper GitHub PR reviews (not workflow logs)
- Inline comments with one-click apply suggestions
- No permission denial errors
- Consistent with claude.yml on-demand workflow

Related: https://github.com/openvanilla/McBopomofo/actions/runs/19002226499

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* ci: add mcp__github__get_pull_request to claude.yml for consistency

Adds missing MCP tool to claude.yml to match claude-code-review.yml
configuration and eliminate permission denials.

Root Cause:
- Run #19002226499 (claude.yml) shows permission denial for
  mcp__github__get_pull_request
- Claude tried to call this tool but it wasn't in the allowlist
- claude-code-review.yml has it, but claude.yml doesn't (inconsistency)

Evidence:
```json
"permission_denials": [{
  "tool_name": "mcp__github__get_pull_request",
  "tool_use_id": "toolu_016hAvM8afGTCeBQjMh5hyrk"
}]
```

What the Tool Provides:
- PR metadata: title, description, status, author, labels, branches
- Context about the PR's purpose and intent
- Complements get_pull_request_diff (which only shows code changes)

Why It's Needed:
- Diff alone doesn't explain the "why" behind changes
- Claude needs PR description to understand author's intent
- Leads to more contextual and relevant reviews

Changes:
1. Added mcp__github__get_pull_request to allowedTools list
2. Updated prompt to document the tool (step 1: "Get PR context")
3. Added inline comment explaining the addition
4. Now consistent with claude-code-review.yml (commit cf370da)

Benefits:
- Eliminates permission denials in @claude mentions
- Both workflows now have identical MCP tool capabilities
- Better review quality with full PR context
- Follows same fix pattern from claude-code-review.yml

Related: https://github.com/openvanilla/McBopomofo/actions/runs/19002226499

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* ci: refactor to reusable workflow and add mcp__github__get_me

Major refactoring to eliminate duplication and ensure MCP tool consistency
across all Claude Code workflows.

Changes:

1. Created new reusable workflow (claude-review-reusable.yml):
   - Single source of truth for MCP tool configuration
   - Standardized permissions and action setup
   - Parameterized prompt via workflow_call inputs
   - Complete MCP tool list including mcp__github__get_me

2. Refactored claude.yml to use reusable workflow:
   - Removed duplicated action configuration
   - Kept trigger logic (issue_comment, PR review comments)
   - Passes custom prompt as input
   - Much shorter and cleaner

3. Refactored claude-code-review.yml to use reusable workflow:
   - Removed duplicated action configuration
   - Kept fork PR skip condition
   - Kept paths-ignore for OIDC security
   - Passes custom prompt as input

4. Added mcp__github__get_me to standard tool list:
   - Fixes permission denials in run #19002499746
   - Provides authenticated user context
   - Prevents wasted API calls
   - Now included automatically in both workflows

Standard MCP Tool List (now centralized):
- mcp__github__get_me (NEW - user context)
- mcp__github__get_pull_request (PR metadata)
- mcp__github__create_pending_pull_request_review (start review)
- mcp__github__get_pull_request_diff (code changes)
- mcp__github__add_comment_to_pending_review (inline comments)
- mcp__github__submit_pending_pull_request_review (publish)

Benefits:
- Eliminates duplication (70+ lines reduced to ~30 per workflow)
- Impossible for workflows to drift (single source of truth)
- Easier maintenance (update once, applies everywhere)
- Consistent MCP tools across all Claude workflows
- No more permission denials for get_me or get_pull_request

Evidence:
- Run #19002499746 had permission denial for mcp__github__get_me
- Run #19002226499 had permission denial for mcp__github__get_pull_request
- Both now resolved by centralized tool list

Related: https://github.com/openvanilla/McBopomofo/actions/runs/19002499746

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* style: use multiline yaml per Coplit review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* ci: fix action syntax per Copilot review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* ci: replicate permissions per Copilot review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* ci: replicate permissions per Copilot review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* ci: add mcp__github__list_pull_requests to prevent permission denials

Adds missing MCP tool that Claude attempts to use for PR context discovery.

Evidence:
- Run #19007502989 shows permission denial for mcp__github__list_pull_requests
- Claude tried to call this tool but it wasn't in the allowlist
- Prevents wasted API calls and improves context gathering

Changes:
- Add mcp__github__list_pull_requests to standard MCP tool list
- Update documentation comment to include the new tool
- Convert claude_args to multi-line format for readability
- Now 7 total GitHub MCP tools available

Standard MCP Tool List (updated):
- mcp__github__get_me (user context)
- mcp__github__get_pull_request (PR metadata)
- mcp__github__list_pull_requests (NEW - search/list PRs)
- mcp__github__create_pending_pull_request_review (start review)
- mcp__github__get_pull_request_diff (code changes)
- mcp__github__add_comment_to_pending_review (inline comments)
- mcp__github__submit_pending_pull_request_review (publish)

Validation:
- Ran actionlint on all three workflow files: PASSED

Related: https://github.com/openvanilla/McBopomofo/actions/runs/19007502989

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* ci: fix permissions for Claude workflows to enable PR comment posting

- Add missing permissions (contents: read, issues: read, actions: read) to both claude-code-review.yml and claude.yml
- Resolves permissions mismatch between calling workflows and reusable workflow
- Calling workflows must explicitly grant all permissions needed by reusable workflows
- Fixes GitHub API permission denials when Claude tries to post review comments

Fixes: GitHub Copilot review comment in PR #726

* ci: update actions/checkout to v5 in Claude reusable workflow

- Update actions/checkout from v4 to v5 in claude-review-reusable.yml
- Ensures compatibility with latest GitHub Actions features and security updates
- v5 is the current latest stable release of actions/checkout

* ci: standardize Claude workflow permissions and fix OIDC validation

- Remove duplicate id-token permission in claude-review-reusable.yml
- Standardize permission order and add clear documentation across all Claude workflows
- Add claude-review-reusable.yml to paths-ignore to prevent OIDC token validation errors
- Ensure consistent permissions: contents:read, issues:read, pull-requests:write, actions:read, id-token:write
- All workflows validated with actionlint

* ci: add max-turns parameter to prevent Claude turn exhaustion

- Add --max-turns 10 to claude_args in claude-review-reusable.yml
- Prevents Claude from running out of turns during complex PR reviews
- Update documentation to explain the max-turns parameter
- Validated with actionlint

* ci: add concurrency control to Claude workflows

- Add concurrency groups to prevent multiple Claude reviews running simultaneously
- claude-code-review.yml: group by PR number, cancel in progress
- claude.yml: group by PR/issue number for manual triggers
- Prevents workflow conflicts and resource waste

* ci: add timeout and error handling to Claude review step

- Add 15-minute timeout to prevent hanging workflows
- Add continue-on-error to prevent workflow failure if Claude fails
- Improves workflow robustness and prevents resource waste

* ci: add enhanced logging for Claude review results

- Add logging step that runs regardless of Claude review outcome
- Log review status (success/failure) for debugging
- Provide clear feedback about Claude review completion
- Helps with troubleshooting workflow issues

* ci: add workflow status reporting for Claude review failures

- Add GitHub script step to comment on PR when Claude review fails
- Provides clear user feedback with troubleshooting options
- Includes links to workflow logs and manual trigger instructions
- Only runs on pull_request events to avoid spam on issue comments
- Improves user experience when automated reviews fail

* c: apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* ci: fix YAML comment indentation in claude-code-review workflow

- Move misaligned comment block from concurrency section to top level
- Comments were incorrectly nested under concurrency key
- Proper YAML structure with comments at appropriate indentation level
- Maintains documentation about OIDC token validation behavior

* ci: fix event condition in reusable workflow failure reporting

- Remove github.event_name == 'pull_request' condition that never matches
- Reusable workflows receive 'workflow_call' as event_name, not caller's event
- Step will now execute properly when Claude review fails
- Simplifies condition to just failure() check for better reliability

* ci: improve claude_args configuration readability in reusable workflow

- Add explicit claude_args input parameter with clear default value
- Extract complex multi-line conditional logic to simple parameter reference
- Maintain backward compatibility with claude_args_override parameter
- Improves maintainability and reduces risk of syntax errors
- Makes default Claude arguments visible in workflow interface

* ci: improve error message readability in Claude failure reporting

- Extract error message body to environment variable with YAML pipe syntax
- Replace single-line string with embedded newlines for better maintainability
- Use multi-line YAML format for easier reading and modification
- Preserve exact formatting and spacing for GitHub comment display
- Improves code readability and reduces maintenance burden

* ci: improve workflow conditions to reduce manual approval requirements

- Add explicit bot exclusions to prevent unnecessary workflow runs
- Enhance repository branch check with additional safety conditions
- Reduce manual approval prompts for automated contributors
- Maintain security while improving workflow automation efficiency

* ci: add Copilot bot exclusions to prevent manual approval triggers

- Add copilot-autofix[bot] and copilot[bot] to exclusion list
- Include github-actions[bot] for comprehensive bot coverage
- Consolidate bot exclusions into single JSON array for better maintainability
- Addresses the main source of manual approval requirements from Copilot PRs

* ci: fix Copilot bot names to use correct GitHub identifiers

- Change copilot-autofix[bot] to app/copilot-autofix (correct format)
- Change copilot[bot] to github-copilot[bot] (official name)
- Add copilot-for-business[bot] for GitHub Copilot Business accounts
- Use accurate bot identifiers based on GitHub's actual bot naming conventions

* ci: remove deprecated claude_args_override parameter

- Remove unused claude_args_override input parameter entirely
- Simplify claude_args logic to use direct parameter reference
- No calling workflows use the deprecated parameter
- Reduces maintenance burden and eliminates confusion
- Cleaner API with single claude_args parameter

* ci: apply suggestion from @Copilot

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* ci: fix Claude workflow to only run on PR-related events

- Remove 'issues' trigger that lacks PR context for review tools
- Add github.event.issue.pull_request check for issue_comment events
- Prevent failures when @claude is mentioned on plain issues
- Ensure all triggered events have necessary PR context for MCP tools
- Add documentation about PR context requirement

* ci: fix Copilot bot name to use correct GitHub Apps identifier

- Change to copilot-pull-request-reviewer[bot] based on GitHub Apps URL pattern
- Remove incorrect app/copilot-autofix and copilot-for-business[bot] names
- Add standard copilot-autofix[bot] for autofix feature
- Should resolve manual approval issues for Copilot-generated PRs

* ci: remove redundant permissions from reusable workflow

- Remove permissions block from claude-review-reusable.yml
- Caller permissions take precedence and override reusable workflow permissions
- Both calling workflows already declare identical permissions explicitly
- Eliminates redundancy and potential confusion about permission inheritance
- Add documentation about permission inheritance behavior

* ci: enhance workflow conditions and add repository settings guidance

- Add repository owner check for additional security validation
- Expand bot exclusion list with app/ prefixed variants
- Add comprehensive documentation about repository settings requirement
- Clarify that manual approvals are primarily a repository-level setting issue

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@zonble
zonble merged commit 623fb25 into openvanilla:master Nov 3, 2025
5 checks passed
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.

3 participants