Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
6551b61
fix(cua-bench): reject invalid concurrency and step limits before sch…
hippoley Oct 9, 2026
9fd6269
test(cua-bench): prevent zero-permit benchmark hangs and invalid limits
hippoley Oct 9, 2026
697d179
docs(cua-bench): preserve parameter-validation defect and acceptance …
hippoley Oct 9, 2026
5599979
fix(cua-bench): fail closed on broken task discovery instead of inven…
hippoley Oct 9, 2026
ff1e800
test(cua-bench): reject broken and empty task datasets before scoring
hippoley Oct 9, 2026
ee27e8c
docs(cua-bench): record fail-closed task discovery defect and accepta…
hippoley Oct 9, 2026
24e8155
fix(cua-bench): reject invalid oracle scores and attribute worker fai…
hippoley Oct 9, 2026
558d201
test(cua-bench): challenge invalid and absent evaluator scores
hippoley Oct 9, 2026
edd98cf
test(cua-bench): preserve failed worker identity and benchmark denomi…
hippoley Oct 9, 2026
f121f92
docs(cua-bench): record score integrity and worker provenance verific…
hippoley Oct 9, 2026
614e8ad
fix(cua-bench): prevent setup-only tasks being scored as agent successes
hippoley Oct 9, 2026
6c3e545
test(cua-bench): reject pre-satisfied evaluator without agent execution
hippoley Oct 9, 2026
455acf6
docs(cua-bench): capture no-agent scoring counterexample and verifica…
hippoley Oct 9, 2026
34772d4
fix(cua-bench): validate worker result identity and score consistency…
hippoley Oct 9, 2026
fbf83e1
test(cua-bench): reject fabricated worker identity and reward in benc…
hippoley Oct 9, 2026
4b46ac8
fix(cua-bench): prohibit failed worker rewards inflating mean scores
hippoley Oct 9, 2026
f6de561
docs(cua-bench): trace worker result integrity change and acceptance …
hippoley Oct 9, 2026
a3bfd7c
ci(cua-bench): enable branch and manual regression runs for proof col…
hippoley Oct 9, 2026
d1fc1e0
ci(cua-bench): execute runner regressions on supported Python 3.12
hippoley Oct 9, 2026
e0e669c
ci(cua-bench): run complete benchmark test suite rather than runner s…
hippoley Oct 9, 2026
42cec9d
ci(cua-bench): separate core oracle regression from full RL dependenc…
hippoley Oct 9, 2026
4a5e91f
ci(cua-bench): provision Chromium before simulated desktop Oracle E2E
hippoley Oct 9, 2026
5520319
ci(cua-bench): run headed browser E2E under virtual X display
hippoley Oct 9, 2026
394ef2c
docs(cua-bench): record real CI failures and honest E2E proof boundaries
hippoley Oct 9, 2026
570033a
ci(cua-bench): install worker server extra for complete regression co…
hippoley Oct 9, 2026
808a3bb
docs(cua-bench): establish falsifiable witness infrastructure thesis …
hippoley Oct 9, 2026
67515eb
ci(cua-bench): provision Starlette testclient httpx for worker suite
hippoley Oct 9, 2026
dc3aefa
ci(cua-bench): run full RL worker regression under virtual display
hippoley Oct 9, 2026
32c1d38
ci(cua-bench): integrate MIT pytest-json-report and publish individua…
hippoley Oct 9, 2026
2b1d13d
feat(cua-bench): fail closed on incomplete or forged pytest report st…
hippoley Oct 9, 2026
3db6d69
test(cua-bench): independently reject forged duplicate and incomplete…
hippoley Oct 9, 2026
597ebf8
ci(cua-bench): verify JSON receipt structure before accepting benchma…
hippoley Oct 9, 2026
320f725
feat(cua-bench): publish versioned CI receipt JSON Schema contract
hippoley Oct 9, 2026
4695722
feat(cua-bench): integrate jsonschema for portable checksum-linked CI…
hippoley Oct 9, 2026
c0c70fb
test(cua-bench): falsify changed reports, forged commits, missing sui…
hippoley Oct 9, 2026
80a6429
ci(cua-bench): run jsonschema contract tests and publish verified ver…
hippoley Oct 9, 2026
0c155d5
feat(cua-bench): expose offline read-only receipt verification CLI fo…
hippoley Oct 9, 2026
e8677cf
test(cua-bench): verify downloaded receipt through public CLI subprocess
hippoley Oct 9, 2026
73549cb
docs(cua-bench): publish external consumption contract and honesty bo…
hippoley Oct 9, 2026
b67331b
ci(cua-bench): integrate pytest-timeout to bound hung browser and RL …
hippoley Oct 9, 2026
f7a5fea
fix(cua-bench): block symlink escape and report aliasing in offline r…
hippoley Oct 9, 2026
efeb59d
test(cua-bench): reject receipt path aliasing and symlink traversal
hippoley Oct 9, 2026
473cfe1
feat(cua-bench): add reproducible dataset manifest and drift verifica…
hippoley Oct 9, 2026
9fb242d
test(cua-bench): cover dataset manifest drift, symlink and no-executi…
hippoley Oct 9, 2026
27620bf
ci(cua-bench): execute new dataset manifest feature on real basic dat…
hippoley Oct 9, 2026
9884044
docs(cua-bench): document reproducible dataset manifest feature and i…
hippoley Oct 9, 2026
3c1f6a7
fix(cua-bench): include hidden task files in dataset integrity manifest
hippoley Oct 9, 2026
874097f
test(cua-bench): catch hidden environment configuration drift
hippoley Oct 9, 2026
94bf4cd
docs(cua-bench): clarify hidden configuration integrity and secret ex…
hippoley Oct 9, 2026
917a142
docs(cua-bench): audit ten completeness axes and distinguish upstream…
hippoley Oct 9, 2026
792b6c3
fix(cua-bench): fail closed on symlinked task directories instead of …
hippoley Oct 9, 2026
f830a10
test(cua-bench): detect linked task directory denominator corruption
hippoley Oct 9, 2026
e78ce86
refactor(cua-bench): restrict symlink task rejection to actual runnab…
hippoley Oct 9, 2026
a01520e
fix(cua-bench): preserve completed agent step count when execution fails
hippoley Oct 9, 2026
825b9ee
test(cua-bench): independently verify failed agent step count and env…
hippoley Oct 9, 2026
b5a6157
test(cua-bench): integrate Hypothesis to fuzz oracle rewards and asse…
hippoley Oct 9, 2026
e534a37
ci(cua-bench): run external Hypothesis reward fuzz tests in core and …
hippoley Oct 9, 2026
33da194
fix(cua-bench): fail closed if environment cleanup fails after a succ…
hippoley Oct 9, 2026
21853fc
test(cua-bench): Hypothesis fault-inject teardown failures across sco…
hippoley Oct 9, 2026
19a4efa
fix(cua-bench): reject boolean and string evaluator rewards instead o…
hippoley Oct 10, 2026
3e69d2b
test(cua-bench): fuzz malformed scalar, list and dict evaluator rewar…
hippoley Oct 10, 2026
fce5060
feat(cua-bench): expose privacy-minimal deterministic action trace di…
hippoley Oct 10, 2026
775da2b
test(cua-bench): prove deterministic redacted action digest and exclu…
hippoley Oct 10, 2026
825c9bd
feat(cua-bench): propagate action trace digest into aggregate benchma…
hippoley Oct 10, 2026
6fc5bac
fix(cua-bench): validate action trace digest before aggregate scoring
hippoley Oct 10, 2026
9602daf
test(cua-bench): reject forged and impossible action trace digests in…
hippoley Oct 10, 2026
626c4f9
feat(cua-bench): expose redacted action events and independently reco…
hippoley Oct 10, 2026
b804f9f
test(cua-bench): recompute action trace receipts and reject tampered …
hippoley Oct 10, 2026
37d3087
feat(cua-bench): make dataset fingerprinting importable in installed …
hippoley Oct 10, 2026
b1c8e5c
feat(cua-bench): enforce pinned dataset manifest before benchmark tas…
hippoley Oct 10, 2026
798e5fe
test(cua-bench): prove pinned dataset blocks task loading and binds c…
hippoley Oct 10, 2026
4b8da36
feat(cua-bench): expose pinned dataset verification on actual cb run …
hippoley Oct 10, 2026
132d3bf
feat(cua-bench): enforce manifest preflight in real parallel two-cont…
hippoley Oct 10, 2026
cb3eda1
feat(cua-bench): provide manifest generation through installed cb CLI
hippoley Oct 10, 2026
e0696a1
feat(cua-bench): generate pinned manifests from actual cb run manifes…
hippoley Oct 10, 2026
413220f
fix(cua-bench): terminate CLI-generated manifest with a real newline
hippoley Oct 10, 2026
2f4ae41
ci(cua-bench): exercise production manifest CLI before core regression
hippoley Oct 10, 2026
9b5086e
fix(cua-bench): propagate pinned manifest into actual detached runner…
hippoley Oct 10, 2026
816a933
feat(cua-bench): persist real parallel TaskRunner outcomes in machine…
hippoley Oct 10, 2026
82c23db
feat(cua-bench): persist actual dual-container task outcomes as versi…
hippoley Oct 10, 2026
4550079
fix(cua-bench): use persisted task outcomes as single source of summa…
hippoley Oct 10, 2026
20d714b
fix(cua-bench): preserve canonical dataset receipt and index real tas…
hippoley Oct 10, 2026
569ed46
feat(cua-bench): bind real worker exit codes and errors to canonical …
hippoley Oct 10, 2026
54cc736
feat(cua-bench): record executed desktop actions and before-after obs…
hippoley Oct 10, 2026
623c89e
fix(cua-bench): delimit execution evidence as real JSONL records
hippoley Oct 10, 2026
ba93a32
feat(cua-bench): surface actual action evidence presence in dataset r…
hippoley Oct 10, 2026
637e2a0
feat(cua-bench): fail closed on real task oracle and persist verdict …
hippoley Oct 10, 2026
fcbc92f
feat(cua-bench): require real oracle receipt before TaskRunner report…
hippoley Oct 10, 2026
b5f9473
feat(cua-bench): attach real environment oracle verdict to dataset ru…
hippoley Oct 10, 2026
7438e5c
feat(cua-bench): inspect task Docker resources and persist cleanup re…
hippoley Oct 10, 2026
a70db82
fix(cua-bench): fail completed tasks when post-run Docker cleanup can…
hippoley Oct 10, 2026
fe7dcad
fix(cua-bench): verify QEMU overlay cleanup and distinguish Docker da…
hippoley Oct 10, 2026
8c76540
fix(cua-bench): recognize Docker network not-found response during cl…
hippoley Oct 10, 2026
50136a3
fix(cua-bench): reject invalid task variants and honor per-task Oracl…
hippoley Oct 10, 2026
5c5c92c
fix(cua-bench): bind worker oracle receipt to unique TaskRunner execu…
hippoley Oct 10, 2026
7e681d4
feat(cua-bench): stamp worker oracle verdict with the current executi…
hippoley Oct 10, 2026
83558e6
feat(cua-bench): add shared desktop session action evidence adapter
hippoley Oct 10, 2026
3657ec6
feat(cua-bench): route every built-in and imported agent through comm…
hippoley Oct 10, 2026
f41f4c7
refactor(cua-bench): remove duplicate agent-level evidence writer in …
hippoley Oct 10, 2026
e677c99
fix(cua-bench): invalidate stale task receipts before launching new e…
hippoley Oct 10, 2026
91bacbd
ci: sync trusted upstream release attribution configuration
hippoley Oct 10, 2026
f80e5b5
feat(cua-bench): capture direct desktop shortcuts and element clicks …
hippoley Oct 10, 2026
c88bb5f
fix(cua-bench): isolate action evidence between reused task executions
hippoley Oct 10, 2026
eb8b6d1
fix(cua-bench): preserve cleanup verification on timeout and exceptio…
hippoley Oct 10, 2026
8d84d55
fix(cua-bench): independently recompute worker oracle verdict from re…
hippoley Oct 10, 2026
a32db6f
feat(cua-bench): validate same-execution desktop action evidence befo…
hippoley Oct 10, 2026
4b7c64c
feat(cua-bench): expose validated action event count on TaskResult
hippoley Oct 10, 2026
96384f7
feat(cua-bench): publish verified action count in dataset run-result …
hippoley Oct 10, 2026
4647f68
feat(cua-bench): add independent offline fail-closed execution receip…
hippoley Oct 12, 2026
795b156
test(cua-bench): validate offline verifier with tampering and missing…
hippoley Oct 12, 2026
25c4752
fix(cua-bench): align offline oracle reward semantics and reject fail…
hippoley Oct 12, 2026
c1b0aad
test(cua-bench): reject failed action and exercise oracle threshold c…
hippoley Oct 12, 2026
f267ae7
fix(cua-bench): require screenshot observations for each verified action
hippoley Oct 12, 2026
469ad71
test(cua-bench): require complete screenshot hashes in action receipts
hippoley Oct 12, 2026
9399814
fix(cua-bench): distinguish evidence consistency, task outcome and ac…
hippoley Oct 12, 2026
b2f11e0
test(cua-bench): distinguish verifiable failure from successful execu…
hippoley Oct 12, 2026
34662aa
test(cua-bench): align negative-reward assertion with oracle consiste…
hippoley Oct 12, 2026
397c2cb
fix(cua-bench): align live runner evidence admission with offline ver…
hippoley Oct 12, 2026
2513228
test(cua-bench): cover finite reward above one in live and offline co…
hippoley Oct 12, 2026
fe83fe7
refactor(cua-bench): centralize shared oracle and action receipt vali…
hippoley Oct 12, 2026
6e18ab4
refactor(cua-bench): use shared contract in offline verification
hippoley Oct 12, 2026
8296e8e
refactor(cua-bench): use shared receipt contract in live task runner
hippoley Oct 12, 2026
e07aea4
test(cua-bench): add shared contract conformance and mutation regress…
hippoley Oct 12, 2026
ef97544
fix(cua-bench): preserve TaskResult when cleanup raises and still rec…
hippoley Oct 12, 2026
92dbd1b
fix(cua-bench): retain original failure reason when cleanup verificat…
hippoley Oct 12, 2026
26eb2a2
test(cua-bench): preserve timeout result and cleanup receipt when cle…
hippoley Oct 12, 2026
51e7493
fix(cua-bench): retain primary task failure when cleanup receipt writ…
hippoley Oct 12, 2026
8e24666
test(cua-bench): preserve timeout diagnostic on receipt IO failure
hippoley Oct 12, 2026
af36c74
fix(cua-bench): encompass overlay and receipt setup in task cleanup l…
hippoley Oct 12, 2026
a2a85c5
fix(cua-bench): register partial QEMU overlay before creation for rol…
hippoley Oct 12, 2026
5da7a24
test(cua-bench): roll back partially created overlay when initializat…
hippoley Oct 12, 2026
b90c58e
test(cua-bench): assert failure TaskResult rather than exception on o…
hippoley Oct 12, 2026
4a1770b
test(cua-bench): integrate live cleanup receipt writer with offline v…
hippoley Oct 13, 2026
114f9aa
test(cua-bench): verify cleanup receipt against a real Docker network…
hippoley Oct 13, 2026
436cc06
fix(cua-bench): reject incomplete Docker cleanup resource receipts
hippoley Oct 13, 2026
8a7c948
test(cua-bench): require complete four-resource cleanup receipts
hippoley Oct 13, 2026
d19784e
fix(cua-bench): bind cleanup resource names to execution identity
hippoley Oct 14, 2026
fd6f289
test(cua-bench): reject cleanup receipts naming another execution's r…
hippoley Oct 14, 2026
1cb7c36
fix(cua-bench): fail closed on malformed cleanup resource entries
hippoley Oct 14, 2026
61800d7
test(cua-bench): reject tampered identity in real Docker cleanup rece…
hippoley Oct 14, 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
49 changes: 49 additions & 0 deletions .github/release-attribution-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"bots": [
"dependabot[bot]",
"github-actions[bot]",
"claude",
"copilot",
"release-please[bot]",
"renovate[bot]",
"trycua-release[bot]"
],
"ignoredCoauthorEmails": [
"claude@anthropic.com",
"coding-sub-agent@trycua.com",
"codex@openai.com",
"cua@cua.localdomain",
"hermes@hermes.home.arpa",
"noreply@anthropic.com"
],
"coauthorOverrides": {
"hippoley <noreply@github.com>": "hippoley"
},
"identityOverrides": {
"antoine.bonnet@hcompany.ai": "abonneth",
"anvit.mail@icloud.com": "AnvitDevadiga",
"ddupont@mit.edu": "ddupont808",
"dillon@trycua.com": "ddupont808",
"egnichtel@crosscode.com": "ngnichtel",
"f@trycua.com": "f-trycua",
"fbonacci@fbonacci-xfce-vm.b40fumexvs1ujlod2ppcyfh5qa.bx.internal.cloudapp.net": "f-trycua",
"i@jyunko.cn": "HsiangNianian",
"jf-mac-mini@jf-mac-mini-4.local": "0xjohnnydev",
"klymenko@adobe.com": "pavelklymenko",
"m.fuechtenkoetter@posteo.de": "ai-ag2026",
"manfred@ubuntu26.04-vm": "ai-ag2026",
"marko.civonafets@gmail.com": "civonafets",
"me@madhavajay.com": "madhavajay",
"robert@trycua.com": "enchanted-koala",
"rwendt1337@gmail.com": "r33drichards",
"rsyuzyov@gmail.com": "rsyuzyov",
"sarinajin.li@gmail.com": "sarinali",
"steipete@gmail.com": "steipete",
"tshtark@intelligo.ai": "tshtark",
"umtcgnd@gmail.com": "c8dhjp4tyv-bit",
"zane.chee.2023@scis.smu.edu.sg": "injaneity",
"zongxin_yang@hms.harvard.edu": "z-x-yang"
},
"internalHandles": ["ddupont808", "enchanted-koala", "f-trycua"],
"optOutHandles": []
}
59 changes: 59 additions & 0 deletions .github/workflows/ci-py-bench.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
name: "CI: cua-bench"

on:
push:
branches:
- fix/cua-bench-validate-parallelism-20261009
paths:
- "libs/cua-bench/**"
- ".github/workflows/ci-py-bench.yml"
- ".github/workflows/py-reusable-build.yml"
workflow_dispatch:
pull_request:
paths:
- "libs/cua-bench/**"
Expand All @@ -13,3 +21,54 @@ jobs:
with:
package_name: "bench"
package_dir: "libs/cua-bench"

regression:
runs-on: ubuntu-latest
timeout-minutes: 35
steps:
- uses: actions/checkout@v4
- name: Set up uv and Python 3.12
uses: astral-sh/setup-uv@v6
with:
python-version: "3.12"
- name: Install Playwright Chromium for simulated desktop E2E
working-directory: libs/cua-bench
run: uv run --extra dev python -m playwright install --with-deps chromium
- name: Verify dataset manifest round trip on basic dataset
working-directory: libs/cua-bench
run: |
python3 scripts/dataset_manifest.py datasets/cua-bench-basic --output /tmp/cua-basic-manifest.json
python3 scripts/dataset_manifest.py datasets/cua-bench-basic --verify /tmp/cua-basic-manifest.json
- name: Exercise installed manifest CLI
working-directory: libs/cua-bench
run: |
uv run --extra dev python -m cua_bench.cli.main run manifest datasets/cua-bench-basic --output /tmp/cua-cli-pinned.json
uv run --extra dev python -c "import json; from pathlib import Path; from cua_bench.dataset_manifest import verify_dataset; verify_dataset(Path('datasets/cua-bench-basic'), json.loads(Path('/tmp/cua-cli-pinned.json').read_text()))"
- name: Run CUA benchmark core and oracle regression suite
working-directory: libs/cua-bench
run: |
xvfb-run -a uv run --extra dev --with 'pytest-json-report>=1.5,<2' --with 'jsonschema>=4.20,<5' --with 'pytest-timeout>=2.3,<3' --with 'hypothesis>=6.100,<7' pytest --timeout=120 --timeout-method=signal --json-report --json-report-file=core-report.json --json-report-omit=streams \
cua_bench/tests/test_run_benchmark.py \
cua_bench/tests/test_gym_interface.py \
cua_bench/tests/test_actions.py \
cua_bench/tests/test_reward_hypothesis.py -q
- name: Run full benchmark suite including RL workers
working-directory: libs/cua-bench
run: xvfb-run -a uv run --extra dev --extra rl --extra server --with 'httpx>=0.27,<1' --with 'pytest-json-report>=1.5,<2' --with 'jsonschema>=4.20,<5' --with 'pytest-timeout>=2.3,<3' --with 'hypothesis>=6.100,<7' pytest --timeout=120 --timeout-method=signal --json-report --json-report-file=full-report.json --json-report-omit=streams cua_bench/tests -q
- name: Independently verify test reports
working-directory: libs/cua-bench
run: python3 scripts/verify_pytest_receipt.py core-report.json full-report.json
- name: Build versioned checksum-linked receipt
working-directory: libs/cua-bench
run: uv run --extra dev --with 'jsonschema>=4.20,<5' python scripts/ci_receipt.py --commit "$GITHUB_SHA"
- name: Preserve CUA benchmark machine-readable evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: cua-bench-pytest-evidence
path: |
libs/cua-bench/core-report.json
libs/cua-bench/full-report.json
libs/cua-bench/ci-receipt-v1.json
if-no-files-found: warn
retention-days: 30
Loading
Loading