Skip to content

Commit 785dc86

Browse files
yiliang114qwencoder
andcommitted
Merge origin/main into fix/hosted-approval-redelivery
Resolve the WorkspaceMigrationMySqlIT containsExactly conflict by taking the ascending union of both sides' migration versions (59, 60 from this branch, 62 from main), matching the merged db/migration set. Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com> Patrol-Run: qwen-pr-conflict/jmv2cx7ur0s
2 parents 65bf85b + 2ebbd4e commit 785dc86

192 files changed

Lines changed: 29281 additions & 2679 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/scripts/check-workflow-size.sh‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@
1212
# space left to move prose out.
1313
set -uo pipefail
1414

15+
if ((BASH_VERSINFO[0] < 4)); then
16+
echo "::error::check-workflow-size.sh requires Bash 4 or newer; found ${BASH_VERSION}. Run with a newer Bash (on macOS: brew install bash)." >&2
17+
exit 1
18+
fi
19+
1520
GITHUB_LIMIT_BYTES=512000
1621
GATE_BYTES="${WORKFLOW_SIZE_GATE_BYTES:-470000}"
1722
WARN_BYTES=$((GATE_BYTES - 25000))

‎.github/scripts/run-e2e-tests.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ if [ "$sandbox" = 'sandbox:docker' ]; then
7070
fi
7171
# Label- and age-filtered, so it cannot touch the image a
7272
# concurrent shard is testing.
73-
docker image prune --all --force --filter 'label=org.qwen-code.ci.sandbox=true' --filter 'until=24h' || echo "::warning::old CI sandbox image cleanup failed on ${RUNNER_NAME:-this runner}"
73+
timeout 20m docker image prune --all --force --filter 'label=org.qwen-code.ci.sandbox=true' --filter 'until=24h' || echo "::warning::old CI sandbox image cleanup failed on ${RUNNER_NAME:-this runner}"
7474
if ! build_image; then
7575
echo "::warning::sandbox image build failed; retrying once"
7676
build_image
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# E2E plan: H4e-b1 lead-side team runtime
2+
3+
Scope: the Hosted lead's team tools (team_create, team_delete, task_create,
4+
task_update, task_list), the agent tool's `name`, the `<teammate>` label and
5+
the lead close cascade. The team domains ship disabled, so every run below
6+
needs a build with `team_state` and `team_task` added to
7+
`MANAGED_SESSION_ENABLED_DOMAINS` (the enablement step), on a real Hosted
8+
stack (managed-agent-server + qwen serve Harness + Runtime Broker).
9+
10+
## Baseline (domains disabled, as shipped)
11+
12+
1. Create a Hosted Session on `hosted-workspace-shell/1`; list the declared
13+
tools of its first turn. Expect `agent` without `name`, and no team tool.
14+
2. Ask the model to launch an agent with `name`. Expect the tool error
15+
"unsupported argument "name"" and no child_run record.
16+
17+
## Physical acceptance (domains enabled)
18+
19+
1. Lead creates a team, spawns two members by name, assigns board tasks,
20+
receives both labeled reports (`<teammate>` in each notification), marks
21+
the tasks done, and deletes the team. Expect: team_state chain opening →
22+
2 joins → closing → deleted; task_list shows both members `completed`.
23+
2. Lead closes with a member still running. Expect: the member's child_run
24+
ends `cancelled`/`stop_requested`, its Session closes, the team records
25+
keep their last revision, and the lead is never revived by the member.
26+
3. Kill the Harness between a member's launch and its join (fault hook on the
27+
`:join` commit) on a channel Turn, and restart. Expect exactly one
28+
child_run, no roster entry, the child running on as an ordinary background
29+
child, and the interrupted settlement answering the call as started. Repeat
30+
with the hook after the join: expect the answer to say it joined.
31+
4. team_delete while a member runs. Expect the refusal naming it, and no
32+
team_state revision.
33+
5. Approval in `default` mode: task_list runs without a card; team_create,
34+
task_create and task_update cards show the input preview.

‎.qwen/skills/verify-pr/SKILL.md‎

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -237,20 +237,25 @@ Read the diff and metadata, then write down — in the report — the PR's
237237
secondary claims. Budget by value:
238238

239239
1. **A/B load-bearing proof of the central claim** (always, ~half the budget).
240-
When the claim is about a turn's lifecycle (cancel, park, takeover,
241-
recovery, approval, retry), name the scenario axes before choosing the
242-
A/B instrument: take them from _Parameterise scenarios_ under wire-oracle
243-
harnesses, and note the setting the author's tests use on each. The A/B
244-
must also run at least one other setting, even when the instrument is the
245-
PR's own test files: copy the author's new test and change only that
246-
setting, such as parking Turn 2 after Turn 1 completed. The report lists
247-
each axis with the settings that ran; the rest go under _Not covered_.
248-
Measured example: a cancel fix settled a parked Turn only when it was the
249-
Session's first. In a before/after re-run of this skill on that head,
250-
neither arm named the axis. One ran the PR's own tests on base and head;
251-
the other built cells that all parked the first Turn of a fresh Session.
252-
The author's test, changed only to park Turn 2, failed there with
253-
`expected 409 to be 200`.
240+
When the diff changes how a Turn is cancelled, parked, taken over,
241+
recovered, approved or retried, name the scenario axes before choosing
242+
the A/B instrument, whether or not that code is the central claim; if it
243+
is not, it gets its own A/B as a secondary claim. Take the axes from
244+
_Parameterise scenarios_ under wire-oracle harnesses, and note the
245+
setting the author's tests use on each. The A/B must also run at least
246+
one other setting, even when the instrument is the PR's own test files:
247+
copy the author's new test and change only that setting, such as parking
248+
Turn 2 after Turn 1 completed. The report lists each axis with the
249+
settings that ran; the rest go under _Not covered_. Measured example: a
250+
cancel fix settled a parked Turn only when it was the Session's first.
251+
In a before/after re-run of this skill on that head, neither arm named
252+
the axis. One ran the PR's own tests on base and head; the other built
253+
cells that all parked the first Turn of a fresh Session. The author's
254+
test, changed only to park Turn 2, failed there with
255+
`expected 409 to be 200`. A third arm had this rule keyed to the central
256+
claim; it named Harness generation adoption as the claim, so the rule
257+
never applied, although it mutated the cancellation-load branches. The
258+
trigger is therefore the diff, not the claim.
254259
2. **One or two wire-oracle harnesses** on the changed surface.
255260
3. **Targeted gates**: tests/typecheck of the affected workspace(s) only.
256261
4. **Capture the A/B and the matrix as they print** — one command each,

0 commit comments

Comments
 (0)