Commit Graph
580 Commits
Author SHA1 Message Date
imccyu b9266aefd6 Merge pull request #7094 from deepseek-harness/worktree/ci-schedule
ci: cut PR check latency across the slow lanes
2026-10-24 14:58:40 +08:00
winewill 0c3d6a1368 Merge remote-tracking branch 'origin/master' into perf/desktop-packaging-integration
# Conflicts:
#	.github/workflows/ci-windows.yml
#	apps/desktop/windows-signing/README.i18n.yaml
2026-10-23 17:10:54 +08:00
winewill 46ce2b61e0 Merge remote-tracking branch 'origin/master' into perf/desktop-packaging-integration
# Conflicts:
#	docs/development.i18n.yaml
#	scripts/build.spec.ts
2026-10-23 16:53:18 +08:00
winewill a43a4bb9ee fix(desktop): supervise optional Windows runner network process 2026-10-23 15:50:31 +08:00
winewill 6c5d7c918a fix(desktop): address packaging review follow-ups 2026-10-22 19:08:45 +08:00
Chinesezjc f48596d2f7 Merge pull request #6863 from deepseek-harness/fix/weighted-approval-app-check
feat(ci): publish the approval decision label from a dedicated approval App
2026-10-22 16:47:28 +08:00
Chinesezjc 6f12142abb docs(ci): state how the App token fallback fails 2026-10-22 16:31:28 +08:00
Chinesezjc 1e25d64a2e fix(ci): select decision runs by the publishing app
The App token cannot update a run the job token created and vice versa, so
selecting runs by `app.slug === 'github-actions'` missed every App run: each
phase created another run, a published App success was never revoked, and a
head with an older job-token run made the App patch fail. Select runs by the
publishing app slug instead, pass `vars.DSH_APPROVAL_APP_SLUG`, and set the
external_id marker on the setup-phase run too.

Cover the App-owned update and the job-run coexistence, and align the note with
the measured earliest-suite rule and the App slug variable.
2026-10-22 16:31:01 +08:00
winewill 863a731f3f Merge master and retain packaging priority check in Windows CI 2026-10-22 13:13:05 +08:00
winewill 59b24da527 fix(ci): pin Windows packaging helpers to workflow revision 2026-10-22 13:08:12 +08:00
imccyu 1276a8e13a ci: split pull-request CI into Linux, Windows, and Python workflows (#6898)
* ci: run native Windows PR jobs in a separate workflow

GitHub re-runs failed jobs only after a whole run finishes, so slow Windows jobs blocked re-running failed Linux jobs. CI Windows now owns the native Windows jobs and the Windows x64 Python runtime target, with its own required 'windows checks passed' verdict.

Refs #6893

* ci: run Python PR jobs in a separate workflow

Python rarely fails while the Windows lanes run long, so the Python SDK suite and the Linux/Windows x64 runtime matrix move into CI Python. The three pull-request workflows can now be re-run without waiting for each other, and branch protection gains "python checks passed" beside the existing verdicts.

Refs #6893

* docs: record the three PR verdicts in the failover runbook

* test: pin the shared environment across the PR workflows

* test: read the python SDK lane from CI Python

* test(sdk): parse session JSONL frames in the keyless smoke

Node 24.19 returned only the first frame of a concatenated zstd log, so the single JSON.parse saw just the header; 24.22 returns every frame and the JSONL body broke the parse. Read frames explicitly and select the main session by its header so both versions agree.
2026-10-22 04:09:35 +00:00
winewill 5110ca9153 perf(desktop): integrate Windows packaging and align compression defaults 2026-10-22 11:21:41 +08:00
winewill eda31bfc29 perf(windows): store installer uploads without recompression 2026-10-21 19:35:40 +08:00
winewill b6e387e5b3 fix(windows): normalize packaging step scheduling priority 2026-10-21 18:38:30 +08:00
Chinesezjc 1665223358 feat(ci): publish the approval decision label from a dedicated approval App
Mint the check-run token from a dedicated approval App instead of a shared
automation App, so the identity that owns the decision check suite is specific to
this gate. The workflow reads `vars.DSH_APPROVAL_APP_CLIENT_ID` and
`secrets.DSH_APPROVAL_APP_PRIVATE_KEY`, and the token stays scoped to
`checks: write`.
2026-10-21 17:50:27 +08:00
Chinesezjc 5fc95b6213 feat(ci): publish the approval decision label from the repository App
The decision check run kept its job-token check suite out of the pull request's
merge box: GitHub associates check runs with a pull request through the check
suite of the workflow run, and a `pull_request_target` run is not associated.
Mint a token from the repository App scoped to `checks: write` and publish only
the check run with it, so the merge box lists the label; the commit status gate
keeps using the job token and is unaffected when the token or the write fails.

Pin the token step, its single secret reference, and the client split in the
workflow and approval tests, and record the measured association limit in the
Agent Note and review-ownership README.
2026-10-21 16:47:07 +08:00
winewill 10c3dd5a3e chore(windows): record dependency install resources 2026-10-20 22:32:28 +08:00
winewill f511e17dbd perf(windows): expose per-run installer compression 2026-10-20 21:34:54 +08:00
winewill 122da6fcff perf(windows): isolate packaging temporary files 2026-10-20 21:10:29 +08:00
winewill 9ee94429b9 perf(windows): support isolated packaging workspaces 2026-10-20 20:47:05 +08:00
Chinesezjc 9a7feb0df7 fix(ci): keep the decision label best effort and owned by the publisher
The check run is a label, not the gate, so a failed write is logged and leaves
the commit status untouched; a replayed workflow token without the checks
permission therefore cannot break the gate. Mark the runs the publisher creates
with an external_id so a same-named job check run from a pull request is not
adopted, and revoke only the publisher's own success.

Record the unchanged status behavior against the archived decision, clarify the
measured context name, and state the pending-write residual in the note.
2026-10-20 20:08:57 +08:00
Chinesezjc 82461b7f33 fix(ci): keep the weighted approval status unchanged and add the decision check run
Only add the `weighted approval decision` check run: the required
`weighted approval` commit status keeps its `pending`, `success`, and `error`
states exactly as before, and branch rules keep requiring it. The check run
reports the same decision as a conclusion label and is not required, so it
never blocks a merge.

The Agent Note and README now state the status semantics as unchanged and the
measured reason a required check run is not available here.
2026-10-20 19:44:13 +08:00
Chinesezjc e34162881c fix(ci): gate weighted approval through its commit status and label the conclusion
The required check run introduced previously is not matched by this repository's
branch rules, so the gate could not be satisfied. Keep the required
`weighted approval` commit status as the gate and publish the
`weighted approval decision` check run as the label: action_required while the
policy is unmet, success when it holds, failure on setup or evaluation errors.
The status completes as success or failure instead of waiting as pending, so CI
watchers end.

Record the measured check-run limit, the revocation and recorded-conclusion
design, and the alternatives in the Agent Note; update the review-ownership
README, the workflow permissions, and the approval tests.
2026-10-20 17:59:41 +08:00
Chinesezjc 4c293671ea Revert "Merge pull request #5440 from deepseek-harness/fix/weighted-approval-check-run"
This reverts commit 17c5ac9bac7eae975dde6596287deeb77cba20a4, reversing
changes made to c830699b0a3d21f993de79b2089f227da913e428.
2026-10-20 17:46:59 +08:00
Chinesezjc ad0a0a9e5a fix(ci): revoke every passing conclusion and record it from main
A required check accepts success, neutral, and skipped, and any workflow in the
pushed branch can name a job after the required check, so revoke every passing
conclusion instead of only the success this publisher writes. Take the
conclusion writer from main() so tests no longer append to the runner's
GITHUB_OUTPUT file.

Record the measured naming risk, the edit and re-run migration paths, and the
boundary of each cancellation measurement in the decision note and README.
2026-10-20 15:42:03 +08:00
winewill a247c4c04a fix(ci): resolve package caches after runner allocation 2026-10-20 15:04:24 +08:00
Chinesezjc d98ff5d9fa fix(ci): gate the setup failure step on the recorded conclusion
The evaluation failure title was preserved by matching details_url, a field
GitHub may rewrite for check runs created with the workflow token, so the
setup-failure step could replace the specific title after all. Record the
conclusion the publish step wrote in a step output and run the setup-failure
step only when no conclusion was recorded; a published decision now survives
a later failure or cancellation without relying on an API field.

Record the measured timeout cancellation path and the re-run migration limit in
the decision note, and scope the pre-push guidance to ACTION_REQUIRED so a
failure conclusion is not read as an approval wait.
2026-10-20 15:01:34 +08:00
winewill fb20e72e96 perf(windows): isolate package cache measurements and configure compression 2026-10-20 15:01:09 +08:00
winewill 03152d6ca4 perf(desktop): persist download and pnpm packaging caches 2026-10-20 14:56:55 +08:00
Chinesezjc 025723a7c7 fix(ci): keep the evaluation failure title the setup step would overwrite
The setup-failure step runs after an evaluation failure has already concluded the
check run as failure with a title that names the failure, so its generic title
replaced the specific one. Keep a failure that already points at the current run
and update every other conclusion.

Record the transition gaps and the filtered list count in the decision note: the
combined status resolves a context to its latest status, so the rollout retires
the earlier pending status instead of leaving it for CI watchers.
2026-10-20 14:34:22 +08:00
Chinesezjc 70b11f5f5f Merge remote-tracking branch 'origin/master' into fix/weighted-approval-check-run
# Conflicts:
#	.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.md
#	.agents/notes/archived/process/2026-09-09-blocked-weighted-approvals-remain-pending.zh.md
#	.agents/notes/implemented/process/2026-09-10-approval-review-workflow-identity.i18n.yaml
#	.agents/notes/implemented/process/2026-09-11-production-blame-approval-weight.i18n.yaml
#	.agents/notes/implemented/process/2026-09-15-pr-approval-delegation.i18n.yaml
2026-10-20 14:29:46 +08:00
winewill 8b70fa9af5 feat(ci): offer macOS ZIP compression choices in packaging workflow 2026-10-20 13:47:35 +08:00
winewill 51b324a198 perf(desktop): persist download and pnpm packaging caches 2026-10-20 13:47:18 +08:00
turtle1999 f24ef669af docs(skills): address AI Usage review comments
Extract the specification version from the skill in the template test,
check the exact placeholder badge URL, and drop duplicate marker and
old-format assertions.

Clarify the highest-level rule and table-header language, remove the
duplicate n/a rule, make the placeholder badge symmetric, and document
how to migrate an old Human and Agent Roles section.
2026-10-19 13:30:25 +08:00
turtle1999 31d8674d5e docs(skills): present AI usage as a badged stage table
Rename the PR description section to AI Usage and replace the level
legend and underlined stage lines with the AI-DECLARATION badge and a
stage table. Define AI involvement as the AI's participation in a
stage, not code volume or time.

The template policy test now checks the heading, marker block, badge,
table header, row order, and old-term removal.
2026-10-19 13:09:09 +08:00
winewill c39ce9e5e8 Merge pull request #6340 from deepseek-harness/fix/windows-runner-windowless
fix(desktop): launch Windows runner without a console
2026-10-19 11:23:33 +08:00
imccyu c651566a49 docs(skills): calibrate dsh-pr-description levels and grading criteria
Set the autonomy ranges to hint 0-10, assist 15-25, pair 30-50, copilot
55-85, and auto 90-100 in the skill and the template level line, and
refill the example accordingly.

Sharpen the stage criteria where trial runs disagreed: grade design by
who supplied the adopted structure, count only the author in the first
four stages, ignore process and ordering instructions, define the main
change, keep review at n/a until a comment is handled, and separate
copilot from pair by whether every non-wording item got a human
response. Clarify the Changes categories, test evidence, disclosure
placement, language, and when to update the description.

Refs #6034
2026-10-18 22:02:42 +08:00
imccyu d2da953b5b docs(skills): address dsh-pr-description review findings
Start the template's review line as n/a, as the skill requires at PR
creation, and prompt for an Issue reference under Motivation. Read the
skill's stages only from its Stages and criteria section and reject a
stage name that does not pair one English word with a Chinese name.

Point the GIF disclosure row at record-browser-gif instead of copying
part of its list, merge the calibration notes into one TODO, replace the
design skeleton wording, and reduce the root AGENTS.md rule to a pointer.

Refs #6034
2026-10-18 20:56:28 +08:00
imccyu 96adf85b5f docs(skills): rewrite pr-declare as the repository dsh-pr-description skill
Replace the pr-declare skill with dsh-pr-description, a repository-only
skill (user-invocable: false) that owns how deepseek-harness PR
descriptions are written and updated: section rules, Issue references,
test design, change-specific disclosures, and the Human and Agent Roles
section with its levels, stages, grading rules, and update timing. The
skill no longer fetches an external specification, asks the user for a
level, or adds badges.

Reduce the pull request template to a skeleton that points to the skill,
point root AGENTS.md at the skill, and make the template test check that
the template's role level line and stage placeholders match the skill.

Closes #6034
2026-10-18 20:30:14 +08:00
Tianyi Cui 79a5c00aec Merge master into worktree/oar-node24 2026-10-17 22:59:20 +08:00
winewill e7f030ee3e fix(desktop): preserve runner recovery after output drain timeout 2026-10-16 14:16:07 +08:00
winewill 012a25f8df fix(desktop): preflight local publication config before install 2026-10-16 12:42:29 +08:00
winewill 9defbaf451 fix(desktop): launch Windows runner without a console 2026-10-16 12:42:29 +08:00
Tianyi Cui cfb65d3bb2 fix: validate the Node 24.9 runtime floor 2026-10-15 23:33:49 +08:00
Tianyi Cui c6a59a1ae9 build: require Node.js 24 or newer 2026-10-15 22:51:03 +08:00
winewill af66022ace fix(desktop): default Windows packaging to signed 2026-10-15 17:52:13 +08:00
winewill 5e23825f15 fix(desktop): reject debug publications early and harden runner supervision 2026-10-15 17:40:38 +08:00
winewill 29221675a2 fix(desktop): clarify source rejection and isolate Git fixtures 2026-10-15 14:03:50 +08:00
winewill 61059baf61 feat(desktop): allow repository branches for test packaging 2026-10-15 13:39:28 +08:00
winewill ce64289dbd fix(desktop): validate publication dispatch and package job identity 2026-10-14 12:22:27 +08:00