Harness v1
Published
Harness v1 contains the test pages used in the iOS 18.6.2 baseline at /lab/device-tests/. These include the lab app with its labelled icons, storage marker and notification recorder (/lab/device-tests/), the T1 no-manifest probe (/lab/device-tests/t1/no-manifest/), the T3 manifest-only app (/lab/device-tests/t3/manifest-only/), the T4 status-bar variants and their separate apps, and the T7 Perm Test app (/lab/device-tests/t7/perm/). The study report lists which of these pages each test used.
Files and hashes
Section titled “Files and hashes”The v1 lock, lock.json, lists 52 files. Each entry records the SHA-256 and size of the bytes openpwa.net serves (servedSha256, servedBytes) and of the source file (sha256, bytes). It also records the commit that added the file (addedIn) and whether the file existed when the baseline run began (presentAtBaselineStart). SHA256SUMS.txt has the served hashes, one line per file, so you can hash a file you fetch and compare.
SHA256SUMS.txt (served bytes), lock.json (full lock and errata)
| Path | Served SHA-256 | Bytes | Added in commit | Present at baseline start |
|---|---|---|---|---|
/lab/device-tests/ | 42c90845419f5ed3ad15d941bea04f649f4c5d350b1847292292fadd55871486 | 14339 | d5bb19c1 | Yes |
/lab/device-tests/icons/any-192.png | 2686e14cf8b1123fd4fbf9ea277c49733f2972dcc5f1954ee50ec8c05fadc6cf | 3627 | d5bb19c1 | Yes |
/lab/device-tests/icons/any-512.png | 2c50e4bb3425ab364a1c36d0b7714b22a6bce7ef11b46a1917a05fa5576e9244 | 11126 | d5bb19c1 | Yes |
/lab/device-tests/icons/ati-180.png | 08d9c8fa268662b4c67f5d96ffa1fa508cfd2c3f3048e550f498c02dca82e8ef | 3821 | d5bb19c1 | Yes |
/lab/device-tests/icons/favicon-96.png | 881ffa4136d142f22999811f346623136e6eb865cfeb51034f5f7c237a12f216 | 1454 | d5bb19c1 | Yes |
/lab/device-tests/icons/maskable-192.png | a320e65a3dc047389569fa045b29bd4da71fda33c7833617cfbef21bd7953490 | 3566 | d5bb19c1 | Yes |
/lab/device-tests/icons/maskable-512.png | f6ecc3eeddc8a006e2d8746da0ff832bf9a7847254e0ff9a107afee423be69f9 | 11463 | d5bb19c1 | Yes |
/lab/device-tests/lab.css | f712c62e4a61cd395c2acf18a124c305ad2fb17097ac6f14355c2a50cfdb5930 | 4275 | d5bb19c1 | Yes |
/lab/device-tests/lab.js | eb7c4d5ddfb2986a03cd87b40c04018bc404af87b9af4b52c1f50352f528325c | 16557 | d5bb19c1 | Yes |
/lab/device-tests/manifest.webmanifest | cab4e60719fd1f9c84d04aada2ad6cd937f50615ce646c3ed20f14f0ca09832b | 939 | d5bb19c1 | Yes |
/lab/device-tests/sw.js | 0e7e6f34cb814d808edba644d664bac0f4337cc59a88dbb509d25a8e11fffc30 | 7262 | d5bb19c1 | Yes |
/lab/device-tests/t1/no-manifest/ | 79d08968039e334ea4f980b369714a32b459d054b93d68a562bd5610ac75eb3a | 2731 | 77080a59 | No |
/lab/device-tests/t1/no-manifest/probe.css | 9e53e8b64268c59ffad6d8f627ef6737005d8900f0ab743da276c0c2f3abc09c | 3619 | 77080a59 | No |
/lab/device-tests/t1/no-manifest/probe.js | c274df3c9ee717ee0b96125fdf2ea3573984cded34d60036911d2965e5a7979b | 8146 | 77080a59 | No |
/lab/device-tests/t3/manifest-only/ | 1fe7e2a1d4aeb86fdf69b0f4546e28237dab65c53f2dc29a72148b99f1ec3920 | 1811 | d5bb19c1 | Yes |
/lab/device-tests/t3/manifest-only/manifest.webmanifest | b036cb4f6aca01703f5e4ad9ae009d623d8072378c7db3ebeb3132746d3e4f15 | 1049 | d5bb19c1 | Yes |
/lab/device-tests/t4/baseline/ | 8a5c90d43e2fadf09146d7887de88b159d947c13b17e79baf8b05bacf932c975 | 5294 | d5bb19c1 | Yes |
/lab/device-tests/t4/bg-green/ | 6c8fe8bff68f3deaf724943c89df1752f719d05fb64dae18aadb73020b5cba99 | 5616 | 1124b20d | No |
/lab/device-tests/t4/dynamic/ | d1aaf66d711e11bb042230e92482403300f290442c06c0afcef56bd19b11b09a | 7599 | 1124b20d | No |
/lab/device-tests/t4/fixed/ | 8f68544e6687a31dbf425491457625d8557fa4c983adfa12045cd51d4216b7ef | 5461 | d5bb19c1 | Yes |
/lab/device-tests/t4/safe-area/ | 12157b148011c3955a66cb7244929b89e4ed781b15a21a177c1f568d32061472 | 5440 | d5bb19c1 | Yes |
/lab/device-tests/t4/sbs-black-translucent/ | 23ae90d26998f2e5c2a1e8cbbead40181405a3620fa00d2228fea6fccde6f426 | 5702 | d5bb19c1 | Yes |
/lab/device-tests/t4/sbs-black-translucent/manifest.webmanifest | 08dd85589f951a32aff8f1542664a7bbeffe1455fcdcfdf07e985ecb3e01e379 | 770 | d5bb19c1 | Yes |
/lab/device-tests/t4/sbs-black/ | fdc4bb0d312503ee32d8206e7b68eb75bfa022d733f7462c0ee9df45d646d936 | 5572 | d5bb19c1 | Yes |
/lab/device-tests/t4/sbs-black/manifest.webmanifest | d15729346dc8054fa4fefda3d687e56512007a5c53869d42029d1b938043e8c5 | 720 | d5bb19c1 | Yes |
/lab/device-tests/t4/sbs-default/ | 252c1e980b6b02985ebcb8e74c8aad01da661b52760de00a2f14e2b8071fae47 | 5588 | d5bb19c1 | Yes |
/lab/device-tests/t4/sbs-default/manifest.webmanifest | 85e0f0958ef5f424653da6c39e65f5ce7dd332dee04743b558e70ac5edf4995b | 732 | d5bb19c1 | Yes |
/lab/device-tests/t4/sticky/ | c09bf8049ff1b760039d2cf953460ce4c312928c52bae75b245f2ae9fd5886e1 | 5323 | d5bb19c1 | Yes |
/lab/device-tests/t4/theme-m1/ | 995f7e83ff52462c9614b4962ddef1fb005e39542d5164cd16da94a235998289 | 7370 | f2eabda0 | No |
/lab/device-tests/t4/theme-m1/icons/m1-180.png | c1dda46ca25f717484a025b2764a6023f719cf3a68a2cd35f8d2c807a52f1835 | 2715 | f2eabda0 | No |
/lab/device-tests/t4/theme-m1/icons/m1-192.png | 77e273c82b3482c9be26ae5189af6b35ca6aade479e1fff15722cf277d7f2e1d | 2892 | f2eabda0 | No |
/lab/device-tests/t4/theme-m1/icons/m1-512.png | c9280966e3f95a4a1a6b4758cbac7277cc830827db2b57d697cccaf3cff9a7c4 | 8685 | f2eabda0 | No |
/lab/device-tests/t4/theme-m1/manifest.webmanifest | 617d398364f53cca52ae729c685138fdbe8e1b74c1de9c84143369bb30fdec83 | 801 | f2eabda0 | No |
/lab/device-tests/t4/theme-m2/ | ec109688594d98514278aa771b5939d3f3e47577a95fdf304da2141efcc29fd3 | 7337 | f2eabda0 | No |
/lab/device-tests/t4/theme-m2/icons/m2-180.png | 616dff927b60c6c4d4e303f6549b5d31236020fc9bea56443d06ee4ab812e81a | 2947 | f2eabda0 | No |
/lab/device-tests/t4/theme-m2/icons/m2-192.png | 0ac6b63f10299e78ccccc6c509a6186515a7ca19a68a524feeec12b076430d28 | 3290 | f2eabda0 | No |
/lab/device-tests/t4/theme-m2/icons/m2-512.png | 6a1d208a267f09e67f61491c0205c6b71ea870703bc01101e5d31ac202150efd | 9924 | f2eabda0 | No |
/lab/device-tests/t4/theme-m2/manifest.webmanifest | 8b559393ef043e039f5f40f56601c9648af935edce67dce0096690b5ab433238 | 766 | f2eabda0 | No |
/lab/device-tests/t4/theme-m3/ | 2169cee87e31785dd261187bcb4cd31144c90274e3ab189cd494299af26c8972 | 7311 | f2eabda0 | No |
/lab/device-tests/t4/theme-m3/icons/m3-180.png | 0dd9e3d17de4495c35d69a0b7309573642e1867b7ed54a2dd3265db80332cdfb | 3161 | f2eabda0 | No |
/lab/device-tests/t4/theme-m3/icons/m3-192.png | 955e27e20443e0a2fceae3d51b7028e232c0a006c1d82f3dd3c211dfa06f612d | 3561 | f2eabda0 | No |
/lab/device-tests/t4/theme-m3/icons/m3-512.png | e4e79611333f6615c0d8a8dd45557dfa6e2643ab028f23b956966b8274acd1fe | 10798 | f2eabda0 | No |
/lab/device-tests/t4/theme-m3/manifest.webmanifest | 7d0bec5123b01bf3963900291835c42b0b9c1724673aef01d85b77ad3645e754 | 799 | f2eabda0 | No |
/lab/device-tests/t4/theme-red/ | db413afe139f30454394c79948080392b91d64610768ac6eeb650a566f713922 | 5495 | 1124b20d | No |
/lab/device-tests/t4/threshold/ | 7a5fdfd5a428fed28a1d7bda2f44b8b4d09bc5ff43ad6e67190bf751cf65a0e4 | 7352 | d5bb19c1 | Yes |
/lab/device-tests/t4/white-top/ | ed901353d668e3e79b3e35f85cb15c6059a5abac214391c5b3bcd5bfa040f663 | 5611 | 1124b20d | No |
/lab/device-tests/t7/perm/ | b7240ef04a15035c88668ad1c24333f47ffc005e22d4d51af6d4d1fb88ef3eeb | 12701 | df421952 | No |
/lab/device-tests/t7/perm/icons/p7-180.png | 80005355f6d88669bcfc1eea984583cb4ca34d722b55b070dfe2fdc3788b2c5f | 2658 | df421952 | No |
/lab/device-tests/t7/perm/icons/p7-192.png | 0a432e6a518c6144bba78b09c6c706215bcd9b1401db880ae86e255209867e4a | 2623 | df421952 | No |
/lab/device-tests/t7/perm/icons/p7-512.png | 91abbe75d509e6c93c5a99a074873b9b5b216eb6d302add6cdebdeba95643b28 | 7527 | df421952 | No |
/lab/device-tests/t7/perm/manifest.webmanifest | e667b5f34c2c41f658a172b930c955a8544118c2b99952b01df51c64973fb4b0 | 749 | df421952 | No |
/lab/device-tests/t7/perm/sw.js | 6a22bfccf256d296281167088a45904d36acbf590075b7eede5efa89bb9013dd | 3628 | df421952 | No |
Run-time snapshots in the 18.6.2 data package
/lab/device-tests/lab.js, git blobb72fe9ca,849c0ac7a21d01ff5c180b68e141a375b03ad1b3b3db4ccfec09e36d564f6502, differs from the current file/lab/device-tests/lab.js, served bytes2026-10-20T0828Z,eb7c4d5ddfb2986a03cd87b40c04018bc404af87b9af4b52c1f50352f528325c, matches the current file/lab/device-tests/sw.js, git blobb72fe9ca,0e7e6f34cb814d808edba644d664bac0f4337cc59a88dbb509d25a8e11fffc30, matches the current file/lab/device-tests/sw.js, served bytes2026-10-20T0828Z,0e7e6f34cb814d808edba644d664bac0f4337cc59a88dbb509d25a8e11fffc30, matches the current file/lab/device-tests/t7/perm/, served bytes2026-10-20T0930Z,b7240ef04a15035c88668ad1c24333f47ffc005e22d4d51af6d4d1fb88ef3eeb, matches the current file/lab/device-tests/t7/perm/manifest.webmanifest, served bytes2026-10-20T0930Z,e667b5f34c2c41f658a172b930c955a8544118c2b99952b01df51c64973fb4b0, matches the current file/lab/device-tests/t7/perm/sw.js, served bytes2026-10-20T0930Z,6a22bfccf256d296281167088a45904d36acbf590075b7eede5efa89bb9013dd, matches the current file
Served bytes and source bytes
Section titled “Served bytes and source bytes”For three files, lab.css, t1/no-manifest/probe.css and the T7 Perm Test page, the served hash differs from the source hash. The lock records the build transformation in servedTransform. The site build rewrites font-weight values above 600 to 600 in .css files and inline <style> blocks. The study report records one instance of this on the T7 Perm Test page: the snapshot taken during the run declares font-weight:600 on its header where the repository file says 700, with no difference in behaviour.
Files present when the run began
Section titled “Files present when the run began”The lock records the baseline run start as 2026-10-20T06:36:42Z. presentAtBaselineStart is true for 24 files, all added in commit d5bb19c1: the lab app with its icons, worker and manifest, the T3 manifest-only app, the first T4 variants and the sbs-* status-bar style apps. The other 28 files have presentAtBaselineStart false:
- the T1 no-manifest probe (3 files, commit
77080a59); - the T4 strip set:
white-top,theme-red,bg-greenanddynamic(4 files, commit1124b20d); - the T7 Perm Test app (6 files, commit
df421952); - the
theme-m1totheme-m3apps used for the T4 status-bar colour follow-up (15 files, commitf2eabda0).
Run snapshots
Section titled “Run snapshots”The study’s data package holds snapshots of some harness files under tools/site-snapshots/. The study report records one change during the run: the deploy of commit 1124b20d at about 08:28 UTC replaced lab.js. Reads N03 to N36 ran the earlier module (SHA-256 849c0ac7…), and open pages kept that cached module for a few reads after the deploy (N37, N38-a); sw.js stayed the same throughout.
The lock’s runSnapshots list gives each snapshot’s SHA-256 and a matchesCurrent flag. The earlier lab.js is marked false. The lab.js and sw.js served from 08:28 UTC and the T7 Perm Test page, manifest and worker captured at 09:30 UTC are marked true: their hashes equal the v1 served hashes. Files with no snapshot have only the hashes in the lock.
Errata
Section titled “Errata”Under the v1 change rule recorded in the lock, a file may change only to fix a privacy or security defect, with a dated erratum. Its errata list is empty.
Before you run a test on v1, take a hash snapshot against SHA256SUMS.txt, as described in Run Device Lab tests on iPhone and iPad.
Device steps performed by an OpenPWA operator on an iPhone 16 Pro. AI agent sessions read page state over USB, kept the notebook and drafted this text; automated gates and an AI fact-check checked it. No person reviews each entry.