Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
509ad4a
feat(telemetry): Phase 3 — qwen-code.subagent span with concurrent is…
doudouOUC Jun 5, 2026
86649eb
feat(skills): /skills picker dialog — browse, search, toggle, pick (#…
callmeYe Jun 5, 2026
a96226c
fix(core): handle error variant of ModelInvocableCommandExecutorResul…
yiliang114 Jun 5, 2026
16c1d9a
fix(cli): remove dead --list-extensions handler from #4456 (#4800)
yiliang114 Jun 5, 2026
587bee2
feat(cli): enable /remember, /forget, /dream in ACP mode (#4811)
doudouOUC Jun 6, 2026
cef26a8
ci(triage): Fix Qwen triage workflow prompt (#4787)
yiliang114 Jun 6, 2026
aea34fa
Revert "feat(cli): enable /remember, /forget, /dream in ACP mode (#48…
doudouOUC Jun 7, 2026
9e60a6d
feat(vscode): surface ACP background notifications (#4358)
DragonnZhang Jun 8, 2026
21a40bd
feat(cli): support /copy N to copy Nth-last AI message (#4761)
LaZzyMan Jun 8, 2026
6d64b34
fix(core): recurse into submodule files when crawling git repos (#4596)
he-yufeng Jun 8, 2026
e62a708
Harden auto mode self-modification checks (#4572)
qqqys Jun 8, 2026
01db559
fix(clipboard): use platform-native tools for image paste on Linux (#…
CNCSMonster Jun 8, 2026
1d9984f
fix(core): add multimodal support for qwen3.7-plus (#4803)
pomelo-nwu Jun 8, 2026
1a9b79d
feat(cli): prevent system sleep while running (#4434)
DragonnZhang Jun 8, 2026
928ce20
feat(ci): add PR review workflow using bundled /review skill (#4549)
yiliang114 Jun 8, 2026
e7edb26
fix(core): scope boolean coercion to boolean-typed schema fields (#4618)
Pluviobyte Jun 8, 2026
a3d20d7
fix(cli): close @path completion dropdown on Enter accept
Alex-ai-future Jun 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
351 changes: 212 additions & 139 deletions .github/workflows/qwen-code-pr-review.yml

Large diffs are not rendered by default.

34 changes: 12 additions & 22 deletions .github/workflows/qwen-triage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@ on:
required: true
type: 'number'

concurrency:
group: '${{ github.workflow }}-${{ github.event.issue.number || github.event.pull_request.number || github.event.inputs.number }}'
cancel-in-progress: true

permissions:
contents: 'read'
issues: 'write'
Expand All @@ -27,6 +23,9 @@ permissions:
jobs:
triage:
timeout-minutes: 10
concurrency:
group: '${{ github.workflow }}-${{ github.event_name }}-${{ github.event.issue.number || github.event.pull_request.number || github.event.inputs.number }}'
cancel-in-progress: true
runs-on: 'ubuntu-latest'
# startsWith (not contains) prevents false triggers from comments that
# mention the phrase in quoted text or mid-sentence descriptions.
Expand All @@ -43,7 +42,7 @@ jobs:
)
steps:
- name: 'Checkout repo'
uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # v6.0.2
uses: 'actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd' # v6.0.2
with:
token: '${{ secrets.GITHUB_TOKEN }}'

Expand Down Expand Up @@ -73,23 +72,14 @@ jobs:
"maxSessionTurns": 25,
"coreTools": [
"run_shell_command",
"write_file"
"write_file",
"read_file",
"grep_search",
"glob",
"agent",
"enter_worktree",
"exit_worktree"
],
"sandbox": false
}
prompt: |-
You are a triage assistant for the QwenLM/qwen-code repository.

Run `/triage ${{ steps.resolve.outputs.number }}` to triage this issue or PR.

Use the available shell commands (`gh`) to gather information and
execute the triage workflow. The triage skill is available at
`.qwen/skills/triage/SKILL.md` — follow its rules exactly.

Key rules:
- Only target QwenLM/qwen-code with `--repo QwenLM/qwen-code`
- Labels: apply existing only, verify with `gh label list`
- Comments: use `--body-file` with heredoc for multi-line content
- Include both stage markers and bot-coordination markers
- Never close, merge, approve, assign, or remove labels
- Evaluate the tiered gate model before any `gh` write call
prompt: '/triage ${{ steps.resolve.outputs.number }} --repo ${{ github.repository }}'
20 changes: 13 additions & 7 deletions .qwen/skills/triage/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
---
name: triage
description: Gatekeep and review GitHub issues and pull requests for Qwen Code maintainers. Use for GitHub Action issue triage, PR admission checks, product-direction review, KISS-focused PR review, and staged bilingual GitHub comments.
argument-hint: '<issue|pr> <number> [--repo owner/repo]'
argument-hint: '<number> [--repo owner/repo]'
allowedTools:
- run_shell_command
- read_file
- read_many_files
- grep_search
- glob
- write_file
- task
- agent
- enter_worktree
- exit_worktree
---
Expand All @@ -34,14 +33,21 @@ gh label list --repo "$REPO" --limit 200
## Rules

- Untrusted input: never interpolate issue/PR text into shell
- Labels: apply existing only, never create
- Comments: always `--body-file` (except short hardcoded verdicts in `gh pr review --approve` / `--request-changes`)
- Labels: apply existing only, never create. Do not touch process labels (`welcome-pr`, `maintainer`, `help wanted`, `good first issue`)
- Comments: read body from file. Use `--body-file FILE` for `gh issue/pr comment`,
or `gh api -F body=@FILE` when the response ID is needed. Never `--body @FILE`
or `gh api -f body=@FILE` — those post the path literally.
- Drafts: skip

## Duplicate Guard

- Unattended (CI env set) + prior `<!-- qwen-triage stage=N -->` marker in comments: exit
- Explicit `/triage`: run all stages, update prior comments in place
- Unattended CI events (`GITHUB_EVENT_NAME=issues` or
`pull_request_target`) + prior `<!-- qwen-triage stage=N -->` marker in
comments: exit
- Explicit reruns (`GITHUB_EVENT_NAME=issue_comment` or `workflow_dispatch`):
run all stages, update prior comments in place
- Local invocation (no `GITHUB_EVENT_NAME`): run all stages, update prior
comments in place

Every posted comment must include an invisible marker: `<!-- qwen-triage stage=N -->` where N is the stage number. The guard matches against this marker, not comment headings.

Expand Down
7 changes: 4 additions & 3 deletions .qwen/skills/triage/references/pr-workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ Shared rules (untrusted input, skip, bilingual format) are in `SKILL.md`.

### Comment Management

Three comments, one per stage. Post each with `gh pr comment` and capture its ID:
Three comments, one per stage. Post each through the issues comments API and
capture its ID:

```bash
COMMENT_ID=$(gh pr comment "$PR_NUMBER" --repo "$REPO" --body-file /tmp/stage-N.md --json id --jq '.id')
COMMENT_ID=$(gh api "repos/$REPO/issues/$PR_NUMBER/comments" -F body=@/tmp/stage-N.md --jq '.id')
```

| Stage | Comment |
Expand All @@ -21,7 +22,7 @@ COMMENT_ID=$(gh pr comment "$PR_NUMBER" --repo "$REPO" --body-file /tmp/stage-N.
**Re-runs:** if the triage runs again on the same PR, update each comment in place:

```bash
gh api -X PATCH "/repos/$REPO/issues/comments/$COMMENT_ID" -f body=@/tmp/stage-N-updated.md
gh api -X PATCH "/repos/$REPO/issues/comments/$COMMENT_ID" -F body=@/tmp/stage-N-updated.md
```

Never create duplicates.
Expand Down
Loading
Loading