Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
999 commits
Select commit Hold shift + click to select a range
1f6d7e8
Implement the Universal Creative bridge lifecycle
aram356 Aug 7, 2026
c8568ee
Harden the serialized PUC owner contract
aram356 Aug 7, 2026
0deba74
Harden PUC owner event boundaries
aram356 Aug 7, 2026
7b4bf94
Harden Universal Creative race boundaries
aram356 Aug 7, 2026
aed0a27
Cover APS buffered terminal ordering
aram356 Aug 7, 2026
bf3b338
Implement navigation-owned auction batches
aram356 Aug 7, 2026
2f03bd5
Validate the hard-cutover request API
aram356 Aug 7, 2026
a19cee6
Harden auction settlement and slot snapshots
aram356 Aug 7, 2026
7030ea5
Wire the test-only direct auction API
aram356 Aug 7, 2026
c7a0c8e
Publish the hard-cutover TSJS types
aram356 Aug 7, 2026
242cdce
Harden direct auction identity boundaries
aram356 Aug 7, 2026
1afae2f
Account for the direct auction request envelope
aram356 Aug 7, 2026
1ee0e97
Serialize direct auction bodies without publisher hooks
aram356 Aug 7, 2026
a720cf1
Prepare the real TSJS performance marks
aram356 Aug 7, 2026
116b795
Exercise performance marks through browser composition
aram356 Aug 7, 2026
aedf5ce
Guard collapsed GPT creative shell resizing
aram356 Aug 7, 2026
9c78913
Reject anchored GPT creative shells
aram356 Aug 7, 2026
b74fb2d
Measure auction projection bytes from own data
aram356 Aug 7, 2026
15a3120
Prepare the transactional GPT integration
aram356 Aug 7, 2026
413f432
Share the layered GPT script guard
aram356 Aug 7, 2026
799e25b
Wire attributable GPT empty fallback
aram356 Aug 7, 2026
eed18ae
Measure canonical auction projection bytes
aram356 Aug 7, 2026
ddb3931
Harden GPT slot reconciliation races
aram356 Aug 7, 2026
9e1db86
Bound shared auction registration graphs
aram356 Aug 7, 2026
6c3d563
Retain failed GPT reconciliation identities
aram356 Aug 7, 2026
1d119f7
Harden Task 15 validation intrinsics
aram356 Aug 7, 2026
06b1fb0
Classify shared DAG budget overflow
aram356 Aug 7, 2026
b838899
Publish GPT winners transactionally
aram356 Aug 7, 2026
2fd52af
Revalidate GPT winner publication ownership
aram356 Aug 7, 2026
0445419
Latch GPT publication to physical slot
aram356 Aug 7, 2026
f860a2c
Harden exact-key validation helpers
aram356 Aug 7, 2026
77a69de
Remove ambient validation predicates
aram356 Aug 7, 2026
aaa5972
Stamp the external Prebid artifact
aram356 Aug 7, 2026
66cafef
Harden external Prebid artifact binding
aram356 Aug 7, 2026
058aa6f
Retire artifacts with GPT slot ownership
aram356 Aug 7, 2026
a0ecc38
Prepare the transactional Prebid module
aram356 Aug 7, 2026
c6f392f
Publish Prebid bids transactionally
aram356 Aug 7, 2026
b09d364
Observe publisher GPT calls transactionally
aram356 Aug 7, 2026
3044c70
Scope Prebid queries to event callbacks
aram356 Aug 7, 2026
dc65c24
Tombstone unselected Prebid groups
aram356 Aug 7, 2026
1541aaa
Admit Trusted Server bids through Prebid
aram356 Aug 7, 2026
2ff3355
Coordinate Prebid winner selection
aram356 Aug 7, 2026
85f5a2f
Fail closed during Prebid winner selection
aram356 Aug 7, 2026
8a272b5
Complete GPT handoff startup integration
aram356 Aug 7, 2026
6434a2a
Verify Prebid admission against the real artifact
aram356 Aug 7, 2026
55eb120
Fix Prebid contract test command
aram356 Aug 7, 2026
971b6db
Pin the Prebid response query contract
aram356 Aug 7, 2026
af6e817
Activate Prebid listeners transactionally
aram356 Aug 7, 2026
67f1d4d
Release Prebid bidder registrations explicitly
aram356 Aug 7, 2026
7557497
Bridge Prebid startup into runtime ownership
aram356 Aug 7, 2026
f9d2323
Arm Prebid selection before bidder startup
aram356 Aug 8, 2026
e428286
Wire Prebid publication into browser composition
aram356 Aug 8, 2026
fa4418e
Establish creative integration ownership
aram356 Aug 8, 2026
df121a3
Own the creative guard lifecycle
aram356 Aug 8, 2026
9724768
Allow clean creative guard reactivation
aram356 Aug 8, 2026
de4e9d5
Harden GPT publisher handoff ownership
aram356 Aug 8, 2026
856d620
Complete browser integration lifecycle wiring
aram356 Aug 8, 2026
7b66871
Add bounded kernel diagnostics transport
aram356 Aug 8, 2026
9b7eaef
Close GPT cleanup race windows
aram356 Aug 8, 2026
546a116
Add bounded render trace diagnostics
aram356 Aug 8, 2026
dd3d6f1
Fix render trace isolation test typing
aram356 Aug 8, 2026
a6df35d
Publish terminal render diagnostics
aram356 Aug 8, 2026
5a2d995
Wire private runtime diagnostics
aram356 Aug 8, 2026
4e4e5e6
Bound GPT diagnostics notifications
aram356 Aug 8, 2026
46d6760
Harden publisher GPT call provenance
aram356 Aug 8, 2026
a0bf661
Format GPT diagnostics notifications
aram356 Aug 8, 2026
f7b86b5
Add bounded GPT diagnostics fact capture
aram356 Aug 8, 2026
1f39936
Commit publisher GPT intent transactionally
aram356 Aug 8, 2026
d198c20
Name and complete ts_console request gates
aram356 Aug 8, 2026
58d4d4c
Rebuild bounded GPT diagnostics
aram356 Aug 8, 2026
78f1850
Move diagnostics session state to the server
aram356 Aug 8, 2026
29a94d0
Complete runtime render trace diagnostics
aram356 Aug 8, 2026
50af86a
Prepare remaining integration lifecycles
aram356 Aug 8, 2026
e80b161
Compose remaining integration runtimes
aram356 Aug 8, 2026
a08994a
Build the Prebid refresh policy boundary
aram356 Aug 8, 2026
d13e206
Prune render trace state with navigation ownership
aram356 Aug 8, 2026
b0e3053
Satisfy strict consent timer initialization
aram356 Aug 8, 2026
df46978
Compose the Prebid refresh policy
aram356 Aug 8, 2026
47b3890
Harden synthetic Prebid refresh routing
aram356 Aug 8, 2026
5ae829c
Test synthetic Prebid refresh boundaries
aram356 Aug 8, 2026
87986b1
Format Prebid refresh composition
aram356 Aug 8, 2026
cf309cc
Require CORS for cache creative fetches
aram356 Aug 8, 2026
f48a066
Enforce Axum APS proxy transport deadlines
aram356 Aug 8, 2026
2bee292
Test APS deadline at the transport boundary
aram356 Aug 8, 2026
25f3f04
Settle failed Prebid publications
aram356 Aug 8, 2026
3b7ab00
Test hostile Prebid failure settlement
aram356 Aug 8, 2026
7ef6684
Route GPT diagnostics through the kernel bus
aram356 Aug 8, 2026
941a3e9
Document TSJS manifest errors
aram356 Aug 8, 2026
2b949b0
Format resilient TSJS modules
aram356 Aug 8, 2026
2f7a6af
Fix duplicate Prebid artifact equality
aram356 Aug 8, 2026
f785f7d
Harden creative boot and click ownership
aram356 Aug 8, 2026
a679d67
Isolate creative lifecycle ownership
aram356 Aug 8, 2026
dfa07b5
Restore Testlight queue push parity
aram356 Aug 8, 2026
04fe949
Harden GPT diagnostics fact ownership
aram356 Aug 8, 2026
9f5112f
Cancel owned GPT diagnostics frames
aram356 Aug 8, 2026
2844b7d
Clean diagnostics directives through server transport
aram356 Aug 8, 2026
fadf1b3
Enrich render trace from safe GPT facts
aram356 Aug 8, 2026
6267b3c
Latch first GPT render trace terminal fact
aram356 Aug 8, 2026
4dd897e
Close the maximal runtime ownership gate
aram356 Aug 8, 2026
13e7f21
Wire GPT facts into render diagnostics
aram356 Aug 8, 2026
a648669
Test GPT fact identity and timing
aram356 Aug 8, 2026
e9ff5b2
Format GPT diagnostics resilience changes
aram356 Aug 8, 2026
f8b6e66
Preserve publisher beacon replacements
aram356 Aug 8, 2026
8a3c41e
Reconcile GPT-first render trace terminals
aram356 Aug 8, 2026
d6451a9
Isolate Lockr cleanup failures
aram356 Aug 8, 2026
b438b0d
Keep render trace counts aligned with current slots
aram356 Aug 8, 2026
c9a36db
Capture GPT subscriber membership at commit
aram356 Aug 8, 2026
9ee56cb
Exercise maximal runtime failure isolation
aram356 Aug 8, 2026
0ca31fa
Switch production to the resilient TSJS runtime
aram356 Aug 8, 2026
7006671
Test hard-cutover browser lifecycle races
aram356 Aug 8, 2026
04aaad3
Fix hard-cutover browser boot races
aram356 Aug 8, 2026
0d7b6b2
test(tsjs): add protected real-GAM attestation
aram356 Aug 8, 2026
5d45aa5
Finalize APS TSJS load-time architecture
aram356 Aug 8, 2026
3d07a0b
refactor(tsjs): enforce hard cutover
aram356 Aug 8, 2026
4728af7
Harden TSJS cutover boundaries
aram356 Aug 8, 2026
22deea8
docs(tsjs): make diagnostics ingress core-only
aram356 Aug 9, 2026
cb22540
Align the APS TSJS implementation plan
aram356 Aug 9, 2026
0308231
Make diagnostics ingress core-only
aram356 Aug 11, 2026
359d159
Prepare the remaining integration modules
aram356 Aug 11, 2026
b4bc424
docs: define role-correct TSJS bundle budgets
aram356 Aug 12, 2026
3186da3
Align the plan with role-correct TSJS gates
aram356 Aug 12, 2026
72c7e62
Split TSJS around the protected first display
aram356 Aug 12, 2026
eca27ef
Freeze role-correct TSJS transfer budgets
aram356 Aug 12, 2026
83ef0a2
Route branded render operations through render.v1
aram356 Aug 12, 2026
fe325da
Recapture budgets after render boundary repair
aram356 Aug 12, 2026
0994e83
Add dormant phase-aware TSJS fixture controller
aram356 Aug 12, 2026
565d9f6
Recapture budgets after latest base integration
aram356 Aug 12, 2026
6a0976b
Gate TSJS first-display performance before cutover
aram356 Aug 12, 2026
4bb0681
Fix TSJS performance evidence harness
aram356 Aug 12, 2026
777edb9
Calibrate the real TSJS first-display gate
aram356 Aug 12, 2026
7d0eb86
Stabilize the TSJS performance evidence gate
aram356 Aug 12, 2026
97dc372
Pair TSJS retained-heap evidence
aram356 Aug 12, 2026
fce3c7e
Make TSJS capture verification phase-aware
aram356 Aug 12, 2026
3ef1e68
Align APS proxy artifact gate with cutover routes
aram356 Aug 12, 2026
3f70cfe
Switch production to the resilient TSJS runtime
aram356 Aug 12, 2026
fc371cc
Enforce hard-cutover surface absence
aram356 Aug 12, 2026
97be3c8
Enable post-switch TSJS evidence dispatch
aram356 Aug 12, 2026
54d8042
Attest the APS TSJS cutover workflows
aram356 Aug 12, 2026
20a718c
Fix content-addressed TSJS integration probes
aram356 Aug 12, 2026
575cac9
fix(tsjs): complete creative runtime cutover
aram356 Aug 12, 2026
49936e4
docs(tsjs): fix post-switch evidence commands
aram356 Aug 12, 2026
8d2570b
Harden protected APS cutover evidence
aram356 Aug 12, 2026
bcaac07
Fix Fastly cutover version lookup
aram356 Aug 12, 2026
97dc52f
Retarget APS TSJS plan to main
aram356 Aug 12, 2026
1249c9c
Harden TSJS security test harnesses
aram356 Aug 12, 2026
be935cd
fix(aps): remediate proxy and TSJS review findings
aram356 Aug 13, 2026
f9227b3
test(tsjs): freeze reproducible bundle evidence
aram356 Aug 13, 2026
025d273
fix(tsjs): respect runtime dependency boundaries
aram356 Aug 13, 2026
aa23be2
test(tsjs): refresh clean bundle provenance
aram356 Aug 13, 2026
23e794a
fix(tsjs): declare messaging protocol before use
aram356 Aug 13, 2026
d95aea4
test(tsjs): bind evidence to messaging fix
aram356 Aug 13, 2026
3cbbd6b
style(tsjs): format PUC and GPT sources
aram356 Aug 13, 2026
dc3ad0f
test(tsjs): bind evidence to formatting fix
aram356 Aug 13, 2026
8d80dd0
fix(ci): preserve failed TSJS performance evidence
aram356 Aug 13, 2026
cba6adc
docs(tsjs): specify lean first-display takeover
aram356 Aug 13, 2026
3afe9dd
docs(tsjs): close takeover architecture gaps
aram356 Aug 13, 2026
261de1e
docs(tsjs): finalize first-display takeover contract
aram356 Aug 13, 2026
ee96c86
docs(tsjs): base cutover decisions on main
aram356 Aug 13, 2026
5b32d40
Align the TSJS implementation plan with current main
aram356 Aug 14, 2026
4409e61
Classify TSJS concepts against current main
aram356 Aug 14, 2026
a47f330
Harden TSJS audit gates
aram356 Aug 14, 2026
e1362b1
Reject printf assignment in plan audit
aram356 Aug 14, 2026
2cf3532
Reject all retired references in shell plans
aram356 Aug 14, 2026
a9b4890
Upgrade the package and TypeScript toolchain
aram356 Aug 14, 2026
af28dd1
Reconcile APS contract and cache boundary plan
aram356 Aug 14, 2026
ccf9454
Make frozen TSJS transfer captures report only
aram356 Aug 14, 2026
4ebd4ce
Fix auction attribution and restore GPT cache bridge
aram356 Aug 14, 2026
d96c6b5
Define closed first-display contracts
aram356 Aug 14, 2026
c1d20f3
Add dormant first-display artifact transport
aram356 Aug 14, 2026
e752e2c
Make first-display artifacts executable
aram356 Aug 14, 2026
c08963e
Implement initial Didomi and Testlight slices
aram356 Aug 14, 2026
46c165d
Mark the exact first-display request action
aram356 Aug 14, 2026
7958474
Define atomic first-display handoff
aram356 Aug 14, 2026
5298069
Make first-display slices own their behavior
aram356 Aug 14, 2026
5619ae6
Implement initial route guard slices
aram356 Aug 14, 2026
50dc97e
Implement initial context and consent slices
aram356 Aug 14, 2026
08d318f
Define the initial creative guard policy
aram356 Aug 14, 2026
a597785
Define the initial APS protocol
aram356 Aug 14, 2026
8e9e627
Define the initial GPT protocol
aram356 Aug 14, 2026
13970d1
Define the initial Prebid protocol
aram356 Aug 14, 2026
de11441
Format first-display implementation
aram356 Aug 14, 2026
f0aa3de
Require exact initial protocol coverage
aram356 Aug 14, 2026
3a2a9f2
Return exact initial protocol receipts
aram356 Aug 14, 2026
e4b2085
Derive the first-display batch from projection
aram356 Aug 14, 2026
27b87a1
Implement the provisional GPT batch adapter
aram356 Aug 14, 2026
14e14c3
Connect the projected first-display driver
aram356 Aug 14, 2026
61e3241
Share the exact PUC owner program
aram356 Aug 14, 2026
6651a57
Implement the bounded first-display render bridge
aram356 Aug 14, 2026
14c5ee8
Transfer exact first-display ownership
aram356 Aug 14, 2026
4819b1b
Adopt first-display ownership synchronously
aram356 Aug 14, 2026
2819a2f
Load the persistent runtime after protected paint
aram356 Aug 14, 2026
7807e82
Complete exact first-display state adoption
aram356 Aug 14, 2026
d5a445e
Enforce first-display release size admission
aram356 Aug 14, 2026
e1654f4
Move APS PUC ownership into its initial slice
aram356 Aug 14, 2026
642a958
Gate first-display transfer against fresh main
aram356 Aug 14, 2026
77768eb
Complete APS TSJS hard cutover
aram356 Aug 15, 2026
94b425c
Format APS TSJS design spec
aram356 Aug 15, 2026
3b6aae3
Harden TSJS input validation
aram356 Aug 15, 2026
2460e63
ci: harden APS TSJS workflow execution
aram356 Aug 16, 2026
b240b18
ci: allow TSJS performance evidence finalization
aram356 Aug 16, 2026
2f2d5bb
ci: stop performance samples at measured endpoint
aram356 Aug 16, 2026
75d2d45
test: validate release id after takeover
aram356 Aug 16, 2026
0bccde1
test: end timing navigation at first action
aram356 Aug 16, 2026
2c5c768
ci: budget paired heap evidence honestly
aram356 Aug 16, 2026
0313661
ci: finish bounded TSJS performance evidence
aram356 Aug 16, 2026
b0f5656
ci: bind TSJS evidence to PR head
aram356 Aug 16, 2026
c2f5515
docs: rebase APS TSJS design on rc/202608
aram356 Aug 18, 2026
d8d8374
docs: close rc audit and APS containment details
aram356 Aug 18, 2026
a91beed
docs: close APS TSJS architecture review gaps
aram356 Aug 18, 2026
1126414
docs: publish APS mount only on completion
aram356 Aug 18, 2026
e623da8
docs: constrain integration boot data
aram356 Aug 18, 2026
8f0c2df
docs: close APS CSP and refresh lifecycle gaps
aram356 Aug 19, 2026
84a094b
docs: reconcile final APS review notes
aram356 Aug 19, 2026
9f999e3
Align the APS TSJS plan with revision 42
aram356 Aug 19, 2026
065c2e9
Classify TSJS concepts against the rc baseline
aram356 Aug 19, 2026
a2a374c
Run focused core tests on the native host
aram356 Aug 19, 2026
7130ddc
Repair generated TSJS artifact metadata
aram356 Aug 19, 2026
df8425a
Reconcile rc publisher and diagnostics behavior
aram356 Aug 19, 2026
4fab492
Reconcile adapter routes with rc contracts
aram356 Aug 19, 2026
792a78d
Add typed TSJS integration boot configuration
aram356 Aug 19, 2026
187d622
Validate and attenuate immutable TSJS boot configuration
aram356 Aug 19, 2026
6b439ce
Enforce immutable TSJS configuration transport
aram356 Aug 19, 2026
b2bbd9b
Activate no-agent TSJS synchronously
aram356 Aug 19, 2026
1b604a2
Build performance fixtures through immutable TSJS boot
aram356 Aug 19, 2026
bb621d9
Make the APS renderer endpoint a bounded bootstrap
aram356 Aug 19, 2026
a7e6f97
Generate bounded APS data documents
aram356 Aug 19, 2026
92da439
Mount direct APS through the top-page owner
aram356 Aug 19, 2026
42d0e90
Move PUC APS rendering to top-page mounts
aram356 Aug 19, 2026
e18e590
Retire committed APS overlays exactly once
aram356 Aug 20, 2026
dedab2a
Hard-cut APS materialization and gate page delivery
aram356 Aug 20, 2026
c45ca09
Make GPT own parser-time GAM attribution
aram356 Aug 20, 2026
5d412de
Prove deferred Prebid refresh ownership
aram356 Aug 20, 2026
4154e52
Prove APS top-mount containment in browsers
aram356 Aug 20, 2026
2febc8c
Fix APS renderer materialization boundaries
aram356 Aug 20, 2026
bce4454
Compare TSJS performance with the exact rc base
aram356 Aug 20, 2026
12dba1d
Enforce final TSJS cutover boundaries
aram356 Aug 20, 2026
99348a3
Fix APS cutover browser gate
aram356 Aug 20, 2026
16d53d9
Classify RC diagnostics presentation helper
aram356 Aug 21, 2026
72db4b0
Drop obsolete debug config rollback assertion
aram356 Aug 21, 2026
72a65aa
Mark page bids denial response must-use
aram356 Aug 21, 2026
98e0f8f
Exercise page bids in performance fixtures
aram356 Aug 21, 2026
82dd392
Record pre-action transfer remediation
aram356 Aug 21, 2026
5f32f22
Seal the production TSJS boot transport
aram356 Aug 21, 2026
82faad0
Validate sealed TSJS boot transport in Rust tests
aram356 Aug 21, 2026
ad4479c
Thin the APS first-display owner
aram356 Aug 22, 2026
d200e70
Consolidate TSJS first-display ownership
aram356 Aug 28, 2026
44c7082
Complete APS render and TSJS hard cutover
aram356 Aug 28, 2026
44cec7b
Merge latest rc/202608 into APS TSJS cutover
aram356 Aug 28, 2026
0c8b99c
Reconcile prior remote APS TSJS history
aram356 Aug 28, 2026
67c3ff5
fix(ci): align APS TSJS hard-cutover checks
aram356 Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
106 changes: 106 additions & 0 deletions .github/workflows/aps-real-gam.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
name: "APS real-GAM attestation"
run-name: >-
APS real-GAM / ${{ inputs.evidence_id }} / ${{ inputs.release_id }}

permissions:
contents: read

on:
workflow_call:
inputs:
release_id:
description: Exact TSJS release id deployed to the protected test network
required: true
type: string
evidence_id:
description: Unique cutover evidence identifier
required: true
type: string
previous_artifact_id:
description: Immutable artifact identifier used for rollback
required: true
type: string
workflow_dispatch:
inputs:
release_id:
description: Exact TSJS release id deployed to the protected test network
required: true
type: string
evidence_id:
description: Unique cutover evidence identifier
required: true
type: string
previous_artifact_id:
description: Immutable artifact identifier used for rollback
required: true
type: string

jobs:
attest:
name: Chromium, Firefox, and WebKit attestation
runs-on: ubuntu-latest
timeout-minutes: 90
environment: aps-real-gam
env:
TS_REAL_GAM_PAGE_URL: ${{ secrets.TS_REAL_GAM_PAGE_URL }}
TS_REAL_GAM_AUTH_HEADER: ${{ secrets.TS_REAL_GAM_AUTH_HEADER }}
TS_REAL_GAM_EXPECTED_RELEASE_ID: ${{ vars.TS_REAL_GAM_EXPECTED_RELEASE_ID }}
steps:
- uses: actions/checkout@v4

- name: Validate protected inputs and release binding
env:
DISPATCH_EVIDENCE_ID: ${{ inputs.evidence_id }}
DISPATCH_PREVIOUS_ARTIFACT_ID: ${{ inputs.previous_artifact_id }}
DISPATCH_RELEASE_ID: ${{ inputs.release_id }}
run: bash scripts/ci/aps-real-gam.sh validate-inputs

- name: Read repository toolchain pins
id: toolchains
run: bash scripts/ci/read-toolchains.sh

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ steps.toolchains.outputs.node }}
cache: npm
cache-dependency-path: crates/trusted-server-integration-tests/browser/package-lock.json

- name: Install isolated browser-test dependencies
working-directory: crates/trusted-server-integration-tests/browser
run: npm ci

- name: Install all required browsers
working-directory: crates/trusted-server-integration-tests/browser
run: npx playwright install --with-deps chromium firefox webkit

- name: Run protected real-GAM contract
id: real-gam
run: bash scripts/ci/aps-real-gam.sh run

- name: Write release attestation
if: always()
env:
EVIDENCE_ID: ${{ inputs.evidence_id }}
PREVIOUS_ARTIFACT_ID: ${{ inputs.previous_artifact_id }}
RELEASE_ID: ${{ inputs.release_id }}
TEST_OUTCOME: ${{ steps.real-gam.outcome }}
run: node scripts/ci/aps-tsjs-evidence.mjs write-real-gam

- name: Scrub browser evidence before upload
if: always()
env:
TEST_OUTCOME: ${{ steps.real-gam.outcome }}
run: node scripts/ci/aps-tsjs-evidence.mjs scrub-real-gam

- name: Upload real-GAM evidence
if: always()
uses: actions/upload-artifact@v4
with:
name: aps-real-gam-${{ github.run_id }}
path: |
crates/trusted-server-integration-tests/browser/real-gam-evidence/
crates/trusted-server-integration-tests/browser/playwright-report/
crates/trusted-server-integration-tests/browser/test-results/
if-no-files-found: error
retention-days: 30
Loading
Loading