From 0853312cc196824122de092d22861f95a1eab0b8 Mon Sep 17 00:00:00 2001 From: lefarcen <935902669@qq.com> Date: Wed, 21 Oct 2026 23:53:46 +0800 Subject: [PATCH] docs(testing): integrate VIEW016 P65 execution provenance --- docs/testing/phase1/VIEW016-P65.md | 104 ++++++++++++++ docs/testing/phase1/view016-p65-binding.json | 135 +++++++++++++++++++ 2 files changed, 239 insertions(+) create mode 100644 docs/testing/phase1/VIEW016-P65.md create mode 100644 docs/testing/phase1/view016-p65-binding.json diff --git a/docs/testing/phase1/VIEW016-P65.md b/docs/testing/phase1/VIEW016-P65.md new file mode 100644 index 0000000000..f461df02d1 --- /dev/null +++ b/docs/testing/phase1/VIEW016-P65.md @@ -0,0 +1,104 @@ +# VIEW-016: P65 native selector replay + +The same cached browser page completed **9/9 native permission choices** through +Free A → paid Go B → Free A. Free allowed Flash and blocked value/top; Go allowed +all three. This qualifies the UI subpath only. The whole case remains partial: +funding order, debit replay, negative balance and cache/transaction fault recovery +were not exercised. No model request or model charge was generated. + +The containing Git commit adds only this README and +[the provenance binding](view016-p65-binding.json). It does not change the original +`e2e/ui/api-security-view016.test.ts` (`95ef78db…`), product code, assertions, +viewport or lifecycle. It is not the execution HEAD. Historical fixed44 failures +and earlier metadata remain unchanged. + +## Executed source and evidence + +| Role | Product / actual test HEAD | +| --- | --- | +| AMR | `789c75341710453f31bad491a4085abe2ecb5d6b` / `510f704068adfde3fa8845542dfe4eaa35d17be8` | +| OD runtime | `c237b9355b791da32be37bbc674f781a7fb91fec` / same SHA | +| Landing, metadata only | `ece32876b6b0fcf317151f6746ca4075e94940e3` | + +Original fixture handle73992 exited0. First actual UI handle36252 exited0, +with owner pre/post0 and16 stable input hashes. The test took56.3s (suite57.7s). +The independent nonauthor review is `07c5e8a353fcf79d0d97a7618d709ad199f8035d5881eeefdb77c46f3c4e0938`; +the69-object private raw manifest is `88c7be4f105c6036223220f44344def21354ed88c5f3b721290ab80a03ad7b17`. +Screenshots, trace and actual JSON are retained privately; no credentials or +private actor/workspace identifiers are in this commit. + +Viewport1280×720/DPR1, worker1/retries0. Homepage → model chip → first Flash +used ordinary native clicks. The remaining same-tab A/B/A matrix used5 native +clicks and4 Enter attempts on disabled options. No prompt fill, added pre-click +wait, force click or viewport change. The own OD namespace ended not-running, +all app PIDs null, cleanupErrors empty. Parent AMR shutdown remains the root +scheduler's responsibility. + +The first UI launcher was rejected before child/browser startup after its owner +lease expired; its failure remains separate, not a product failure or retry. +A new owner was authorized against the same database, with the original successful +actor/funds/device unchanged in a new execution directory. No fixture was rerun. +The binding records original and executed fixture hashes and this continuity. + +CLI binary was actually built on43 (`6c8411c8…`); a neutral actual65 proof binds +all157 tracked CLI source/dependency files (`c8789337…`). No65 rebuild is claimed. +Requirements271/design134/cuts518 and frozenQA1177 define the sample. Later +execution-metadata revisions do not create new business evidence. + +## Reproduce through a new canonical owner + +1. Pin dedicated AMR/OD worktrees and exact product/test heads. The tested OD + product already contains the UI test. The older Yang delivery lane remains + historical: use the actual c237 runtime lane (`f2866314…`) for this sample, + rather than calling this metadata commit the executed product. Follow the + root [daemon data contract](../../../AGENTS.md#daemon-data-directory-contract) + and shared tools-dev suite; never use the user's daily tree. + +2. From the dedicated OD execution tree, run its pinned dependencies once: + + ```sh + corepack pnpm install --frozen-lockfile + ``` + +3. Have the canonical QA owner prepare a fresh private cfg/binding/setup with + actual model pricing/category evidence, current CLI binary/source proof and + 1,000,000-credit controlled retained-fund baseline for each space. Use the + companion production fixture helper through the unique-label owner wrapper: + + ```text + corepack pnpm --filter @vela/api exec tsx test/e2e/link-view016-fixture.ts + ``` + + Its source SHA is `32fb5272…`. Real signup, workspace membership, durable paid + checkout/projection, production funds writer and device authorize201/approve/ + consume must succeed. Do not reuse this historical actor/device/owner, patch + Key scope or proceed after a fixture failure. Controlled synthetic paid + prerequisites do not claim a real Stripe payment. + +4. Bind the new fixture/device, exact current DB/URLs/source heads and inputs + into a private command spec. The existing launcher only sets `VIEW016_RUNTIME` + and changes cwd to the dedicated OD root before this exact command: + + ```text + corepack pnpm --filter @open-design/e2e exec playwright test -c lib/playwright/api-security.config.ts + ``` + + Invoke it from the AMR owner wrapper, never bypassing inherited ownership: + + ```sh + env -u CI -u NODE_DEBUG -u OD_PLAYWRIGHT_WORKERS -u OD_PLAYWRIGHT_TIMEOUT -u OD_PLAYWRIGHT_FULLY_PARALLEL -u OD_E2E_NAMESPACE -u OD_E2E_RUN_NAMESPACE GIT_NO_REPLACE_OBJECTS=1 python3 "$RUN_ROOT/run-owned-command.py" "$UNIQUE_UI_LABEL" "$PRIVATE_UI_SPEC" + ``` + + The UI spec runs the reviewed launcher (`dc7c15e3…`) with explicit OD root and + fresh fixture directory. Outer budget900s; existing test300s. Keep all native + interactions/assertions unchanged and send no model prompt. + +5. Poll that same handle to terminal once. Preserve raw UI JSON, reports, + screenshots, trace, source/input hashes and own cleanup under private0600 + permissions. Retain failures unaltered and obtain a genuine nonauthor review. + This sample is evidence, not an automatic acceptance for another version. + +PR8924 remains open against `feat/coding-plan-billing-preflight`; no merge, +integration acceptance or release is claimed. The integration owner retains the +shared branch writer role. Prior paid-B/header/Free-A issue records are related +history; this sample does not prove a shared root cause or universal closure. diff --git a/docs/testing/phase1/view016-p65-binding.json b/docs/testing/phase1/view016-p65-binding.json new file mode 100644 index 0000000000..90df40db61 --- /dev/null +++ b/docs/testing/phase1/view016-p65-binding.json @@ -0,0 +1,135 @@ +{ + "schemaVersion": 1, + "caseKey": "server:VIEW-016", + "containingGitCommit": "The Git commit containing this binding is delivery metadata, not an execution HEAD.", + "qualification": { + "candidate": 65, + "nativeUI": "passed_9_of_9", + "wholeCase": "partial", + "modelRequests": 0, + "uncovered": [ + "funding source order", + "debit replay idempotency", + "negative balance", + "cache/transaction fault recovery" + ], + "trueIndependentReviewSha256": "07c5e8a353fcf79d0d97a7618d709ad199f8035d5881eeefdb77c46f3c4e0938", + "rawManifestSha256": "88c7be4f105c6036223220f44344def21354ed88c5f3b721290ab80a03ad7b17", + "rawObjectCount": 69, + "safeResultSha256": "e1b18d408a2f99c738f3530507f08eb400347aa026980480baae616429dfe559" + }, + "sourceTuple": { + "amr": "789c75341710453f31bad491a4085abe2ecb5d6b", + "open-design": "c237b9355b791da32be37bbc674f781a7fb91fec", + "od-landing": "ece32876b6b0fcf317151f6746ca4075e94940e3" + }, + "actualSourceBinding": { + "amr": "510f704068adfde3fa8845542dfe4eaa35d17be8", + "od": "c237b9355b791da32be37bbc674f781a7fb91fec" + }, + "sourceRoles": { + "amr": { + "productionBase": "789c75341710453f31bad491a4085abe2ecb5d6b", + "testHead": "510f704068adfde3fa8845542dfe4eaa35d17be8" + }, + "od": { + "productionBase": "c237b9355b791da32be37bbc674f781a7fb91fec", + "testHead": "c237b9355b791da32be37bbc674f781a7fb91fec" + }, + "landing": { + "productionBase": "ece32876b6b0fcf317151f6746ca4075e94940e3", + "execution": "metadata_only" + } + }, + "actualSources": { + "UI": "95ef78db039af9d68be212745af0c453376c9c0cc6038d0d1439ac870724fcb3", + "launcher": "dc7c15e3fc2bd19e3583820af3ac65f0ef7cbf7f5e60420436103b1c90eefd73", + "runtimeExplicitLane": "f2866314933412c079b47e54534390e28ea287a1b09c69570310b3b2f9aa0f0a", + "fixture": "32fb527234f3dfd17cadd0c9cfd3314435b73ecfba4eb4a18289264f60514dc3", + "ownedGuard": "5f629b81eca7e81213568149084e187dc6d01e323602d18194f47f64d89015c6" + }, + "deliveryScope": "Only this binding and README. Existing remote UI source95ef remains byte-exact. Historical Yang PR lane is not relabeled as the newer product-c237 runtime lane; reproduction pins the actual runtime product.", + "authority": { + "requirementsRevision": 271, + "designRevision": 134, + "effectiveCutsRevision": 518, + "QAAtPreparation": 1177, + "definitionSha256": "0ba2e288ccaf91d80f479f36fdae6d76c9dd7e55dcc11543b0b25665007a1787", + "executionMetadataUpdates": "Later QA metadata writes are not new definition/business evidence." + }, + "execution": { + "fixtureOriginalHandle": 73992, + "fixtureExitCode": 0, + "actualUIOriginalHandle": 36252, + "actualUIExitCode": 0, + "testDurationSeconds": 56.3, + "suiteDurationSeconds": 57.7, + "nativeViewport": { + "width": 1280, + "height": 720, + "deviceScaleFactor": 1 + }, + "workers": 1, + "retries": 0, + "matrix": { + "FreeAFirst": [ + false, + true, + true + ], + "PaidGoB": [ + false, + false, + false + ], + "FreeAReturn": [ + false, + true, + true + ] + }, + "matrixMeaning": "aria-disabled by Flash/value/top category; false represents missing aria-disabled and enabled selection", + "nativeActions": { + "clicks": 5, + "keyboardEnterOnDisabled": 4 + }, + "promptFill": false, + "forceClick": false, + "addedPreclickWait": false, + "modelsGenerated": 0, + "cleanup": "own OD namespace stopped; all apps idle/pid null; cleanupErrors empty; parent canonical left to root", + "ownerPrePostExitCode": 0, + "sourceInputsStable": 16 + }, + "fixtureContinuity": { + "freshFixtureSHA": "f9ba1d19731e3c3912863b6005e87f11725cb84c381bee7da99f6ad5b019c7f4", + "executedFixtureSHA": "ccda6fa2ae8e2e58cb90a0ea2a9a868f6d3a95c7de73439b20770edfeeeae936", + "deviceReceiptSHA": "1625af8ee85fff4b25c02ced05475c0b84df2cd337acd64d587138e8e4fd834e", + "meaning": "Original fixture succeeded once. Owner later expired before browser; rejected UI attempt preserved with0browser/0actions. Root authorized new owner binding in new directory; parsed cfg identical, only JSON serialization changed; all actor/key/funds/device values unchanged. No second fixture or payment." + }, + "CLI": { + "actualBuildCandidate": 43, + "binarySha256": "6c8411c8cc439bc4c88d4e3cf58858687deb530b278841c0e4711421738d727a", + "neutralActual65SourceEquivalenceSHA": "c87893371b628416bae67e20bbac279631955f96cdc18bb29574fab37364af64", + "trackedCLIByteEqualFiles": 157, + "new65BuildClaimed": false + }, + "history": { + "fixed44": "Four Free value/top native failures remain preserved; new65 result does not rewrite historical source/raw.", + "issues": [ + "APISEC-C20-002", + "LINK-C21-VIEW-016-001", + "LINK-C21-VIEW-016-002" + ], + "issueClosure": "Only this65 native sample is qualified; no universal root-cause or whole-case closure." + }, + "privacy": "Raw traces/cookies/keys/actor/workspace identifiers/runtime connection URLs remain in private archive0600. This binding includes only nonsecret provenance hashes.", + "delivery": { + "PR": 8924, + "base": "feat/coding-plan-billing-preflight", + "remoteBranch": "qa/link-security-regressions-yang-20261021", + "merged": false, + "integrationAcceptance": false, + "rootOwnsFeishuWrite": true + } +}