[BUG] fix: add catch handler for clipboard writeText in handleCopyLink #6955
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Claude Repo Manager | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, ready_for_review, reopened] | |
| issues: | |
| types: [opened] | |
| issue_comment: | |
| types: [created] | |
| jobs: | |
| claude-pr-review: | |
| if: | | |
| github.event_name == 'pull_request' && | |
| (github.event.pull_request.author_association == 'OWNER' || | |
| github.event.pull_request.author_association == 'MEMBER' || | |
| github.event.pull_request.author_association == 'COLLABORATOR') | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| checks: read | |
| statuses: read | |
| id-token: write | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Wait for other checks to settle (30s) | |
| run: sleep 30 | |
| - name: Claude PR Review & Auto-merge | |
| uses: anthropics/claude-code-action@beta | |
| with: | |
| anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| allowed_non_write_users: "*" | |
| trigger_phrase: "" | |
| direct_prompt: | | |
| You are the automated manager for magic-peach/reframe, a GSSoC'26 open-source project. | |
| Follow the rules in CLAUDE.md exactly. | |
| Current PR: #${{ github.event.pull_request.number }} | |
| Author: @${{ github.event.pull_request.user.login }} | |
| Title: ${{ github.event.pull_request.title }} | |
| Base branch: ${{ github.event.pull_request.base.ref }} | |
| Steps: | |
| 1. Fetch all CI check statuses for this PR using the GitHub API. | |
| 2. Check the Vercel deployment check status specifically. | |
| 3. Read the PR diff to review the code. | |
| 4. Verify the code follows CLAUDE.md standards: | |
| - Uses bun.lock (not package-lock.json) | |
| - No not-found.tsx if output:export is set | |
| - No CSS variable renames (--bg, --surface, --border, --text, --muted must stay) | |
| - cn() not converted to template literals | |
| - React hooks not placed after conditional returns | |
| - No new video-processing dependencies added | |
| 5. If ALL checks pass and code is correct: squash-merge the PR and post a comment explaining the merge. | |
| 6. If ANY check failed or code has issues: post a detailed comment tagging @${{ github.event.pull_request.user.login }} with exactly what failed and how to fix it. Do NOT merge. | |
| claude-issue-triage: | |
| if: github.event_name == 'issues' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| issues: write | |
| id-token: write | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Claude Issue Triage | |
| uses: anthropics/claude-code-action@beta | |
| with: | |
| anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| allowed_non_write_users: "*" | |
| trigger_phrase: "" | |
| direct_prompt: | | |
| You are the automated manager for magic-peach/reframe, a GSSoC'26 open-source project. | |
| Follow the rules in CLAUDE.md exactly. | |
| A new issue was opened: #${{ github.event.issue.number }} | |
| Author: @${{ github.event.issue.user.login }} | |
| Title: ${{ github.event.issue.title }} | |
| Steps: | |
| 1. Read the issue body via the GitHub API. | |
| 2. Post a welcoming comment that: | |
| - Thanks @${{ github.event.issue.user.login }} for opening the issue | |
| - Acknowledges the specific problem they reported | |
| - Asks 1-2 targeted clarifying questions if the issue is vague or missing reproduction steps | |
| - Mentions a maintainer will review soon | |
| 3. Apply the correct GSSoC labels. You MUST use the gh CLI to actually apply them — | |
| do NOT mention labels in a comment instead of applying them. Run: | |
| gh issue edit ${{ github.event.issue.number }} \ | |
| --add-label "label1,label2" \ | |
| --repo ${{ github.repository }} | |
| Choose labels from these lists: | |
| - Exactly ONE level:* label → level:beginner / level:intermediate / level:advanced / level:critical | |
| - One or more type:* labels → type:bug / type:feature / type:docs / type:testing / | |
| type:security / type:performance / type:design / type:refactor / type:devops / type:accessibility | |
| - Always include gssoc'26 | |
| 4. Read all existing comments on the issue. If anyone said "I'd like to work on this", | |
| "can I be assigned?", "I want to take this", or similar — assign the issue to the | |
| FIRST person who made such a request. Only assign one person. | |
| claude-discussion-reply: | |
| if: | | |
| (github.event_name != 'issue_comment' || (!contains(github.event.comment.body, '/assign') && !contains(github.event.comment.body, '/unassign'))) && | |
| github.event_name == 'issue_comment' && | |
| github.event.issue.pull_request == null | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| issues: write | |
| id-token: write | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Claude Discussion Reply | |
| uses: anthropics/claude-code-action@beta | |
| with: | |
| anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| allowed_non_write_users: "*" | |
| trigger_phrase: "" | |
| direct_prompt: | | |
| You are the automated manager for magic-peach/reframe, a GSSoC'26 open-source project. | |
| Follow the rules in CLAUDE.md exactly. | |
| A comment was posted on issue #${{ github.event.issue.number }} by @${{ github.event.comment.user.login }}. | |
| Steps: | |
| 1. Read the full issue thread (title, body, all comments) via the GitHub API. | |
| 2. Read the new comment: "${{ github.event.comment.body }}" | |
| 3. Decide if a reply is genuinely needed: | |
| - If the commenter is asking a question → answer it specifically | |
| - If they are requesting assignment → assign them if no one else is assigned yet, and confirm in a comment | |
| - If it is a status update or acknowledgment that needs no reply → skip posting | |
| 4. If replying: post a concise, helpful, on-topic response. Tag @${{ github.event.comment.user.login }} if addressing them directly. | |
| Never post generic filler responses. |