diff --git a/refactor/baselines/major-candidate-build/artplayer-tool-thumbnail-docs.json b/refactor/baselines/major-candidate-build/artplayer-tool-thumbnail-docs.json new file mode 100644 index 000000000..86eccf00f --- /dev/null +++ b/refactor/baselines/major-candidate-build/artplayer-tool-thumbnail-docs.json @@ -0,0 +1,99 @@ +{ + "schemaVersion": 1, + "package": "artplayer-tool-thumbnail", + "version": "5.0.0", + "gate": "build", + "candidateIntegrity": "sha512-vIXcuB1oOQA6Wq18NTvkK7rmWRj/ldVRraZsfkAf0L+tKEzuCjaFTd2phL3Ah9/XCXLFu9DEAwFSJqQKQpHcGw==", + "inputFingerprint": "431eb2caf41a434a8fdb516bf5d73b71df8b4d306530036ead7c1ee460076b81", + "result": "pass", + "checks": [ + { + "id": "major-version-and-distribution-members", + "result": "pass", + "mode": "native" + }, + { + "id": "production-build-archive-members", + "result": "pass", + "mode": "native" + }, + { + "id": "isolated-install-and-frozen-lock", + "result": "pass", + "mode": "native" + }, + { + "id": "unchanged-source-and-validation-inputs", + "result": "pass", + "mode": "native" + } + ], + "environment": [ + { + "os": "Windows", + "node": "v24.21.0", + "yarn": "1.22.22", + "remote": false + } + ], + "command": "yarn build artplayer-tool-thumbnail && yarn test:thumbnail-types-package", + "reviewedBy": "Codex implementation verification; formal REVIEW-01/02/03 not started", + "artifacts": [ + { + "path": "refactor/.cache/release-ledger-mDccFl/report.json", + "sha256": "18a019484cfe3b579710ed01d9e1c62ab19b8dfa403801b1e8bfaddd253dcd34" + }, + { + "path": "refactor/.cache/release-ledger-lAT9u7/report.json", + "sha256": "18a019484cfe3b579710ed01d9e1c62ab19b8dfa403801b1e8bfaddd253dcd34" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/report.json", + "sha256": "a30c8a32063b1a0cc03a25a94ecb3c8ea50cb11cfd41baecea987577e9e1e815" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate.tgz", + "sha256": "e516000e441d11fe0ea9d24e2e8c6254cd7537ddadeb7fc25dce73d3b3f5be7b" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate-pack.log", + "sha256": "270b0ae7216b938fbc315ce43bd5481b1075a3f60650f8156674318602fafec3" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate-install.log", + "sha256": "4c521407b611ee985c61c4c0210fefcb9f9898e4021f046597854faa9cb12dbd" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate-frozen-install.log", + "sha256": "6d8a95fad69ac94a55d176b472fc3a0f72783092e49b7e683156b6717510f4a8" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate-yarn.lock", + "sha256": "41d9216dc7875ea90a305ead5d83cfb64f9cb72dbca7f83edd1b918a7e6296e8" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate-runtime.log", + "sha256": "20c9ba9ff34a4110537ee3c3453fea73e9f8bd6e1072e4f8feb1df1d6b0055dd" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/workspace-fixture-runtime.log", + "sha256": "66a519bc12dceddb2216ae28314ba062d532312d5164f0a64a4522c889e38167" + }, + { + "path": "refactor/.cache/rel02-thumbnail-refresh-build.log", + "sha256": "b8028d4370e2f5b9dd19efca662e347372c4870f085c156ea8f9e67ff08b4eab" + }, + { + "path": "refactor/.cache/rel02-thumbnail-refresh-types.log", + "sha256": "ad267e70abcf8c6a4191a1d30aca2596f029dc0c0c0e229303916be9ad2f3b30" + }, + { + "path": "refactor/.cache/record-rel02-thumbnail-refresh.mjs", + "sha256": "50712e0b10e8a046db329b310b5a9aded3ee8a8966214eef80518dd8a088cade" + }, + { + "path": "refactor/baselines/thumbnail-candidate-refresh.json", + "sha256": "f19f2514b7c86166736aa2ea81a8636ec948a087550b17da9ce51cfe0a46758f" + } + ] +} diff --git a/refactor/baselines/thumbnail-candidate-refresh-check.json b/refactor/baselines/thumbnail-candidate-refresh-check.json new file mode 100644 index 000000000..444f71877 --- /dev/null +++ b/refactor/baselines/thumbnail-candidate-refresh-check.json @@ -0,0 +1,249 @@ +{ + "task": "REL-02", + "sourceCommit": "484a8c903c98b1ef7bcb8b345002d920132cb4d8", + "capturedAt": "2026-09-15T19:54:22.646Z", + "report": { + "path": "refactor/.cache/release-ledger-0PfKHJ/report.json", + "sha256": "d43531409ceaa20f61402547e0dba0b45734c68f1a8adb719da55ebc3f24b3e3" + }, + "preparation": { + "path": "refactor/baselines/thumbnail-candidate-refresh.json", + "sha256": "f19f2514b7c86166736aa2ea81a8636ec948a087550b17da9ce51cfe0a46758f" + }, + "libraries": [ + { + "name": "artplayer", + "version": "6.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer.tgz", + "fingerprint": "896b9f1f57feb447e9baef3b02c2c04e51b79eadef858b01a921e2b2146ff75a", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 28 + }, + { + "name": "artplayer-plugin-ads", + "version": "3.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-ads.tgz", + "fingerprint": "a7c85c3cbd5893306c50af3e5ab2ae900838633184e2b5509a7790a346e63277", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 32 + }, + { + "name": "artplayer-plugin-ambilight", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-ambilight.tgz", + "fingerprint": "58b3de027f6da9358927a032585af2db0b98ece514263062e61a26c0b0a60d69", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 31 + }, + { + "name": "artplayer-plugin-asr", + "version": "3.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-asr.tgz", + "fingerprint": "e99563e05cf2fa5cb687bee25bbec5f663dadb39cd7a780ae506121a069f3288", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 32 + }, + { + "name": "artplayer-plugin-audio-track", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-audio-track.tgz", + "fingerprint": "68251599fb975857e5124b3a7804e2e7edbd9de6b3b22eef2882ae9cf38c3560", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 33 + }, + { + "name": "artplayer-plugin-auto-thumbnail", + "version": "2.0.0", + "candidate": "refactor/.cache/auto-thumbnail-package-types-I6JsR1/artplayer-plugin-auto-thumbnail.tgz", + "fingerprint": "fa1ac932fb279f6de85856d98d649ea6b12b39c221a8e54d63d5a46d28ed25eb", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 37 + }, + { + "name": "artplayer-plugin-chapter", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-chapter.tgz", + "fingerprint": "4dcc9e5c4e127edbc17ab1e59e3fb973ac9733125cff744c3031b43b98476e02", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 31 + }, + { + "name": "artplayer-plugin-chromecast", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-chromecast.tgz", + "fingerprint": "e16de620bd4770b4ab717291af29d5a2f450025ae8bdf22815f6efd51e40056e", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 31 + }, + { + "name": "artplayer-plugin-danmuku", + "version": "6.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-danmuku.tgz", + "fingerprint": "90d09ab98a1ca36575a5ed38332d518c03265bcd4ad95524170394b1e67209c0", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 31 + }, + { + "name": "artplayer-plugin-danmuku-mask", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-danmuku-mask.tgz", + "fingerprint": "71b4367caed8ad8cbe4a171abb3bb4be3955c15dea4694255c1448c85d6dfb17", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 40 + }, + { + "name": "artplayer-plugin-dash-control", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-dash-control.tgz", + "fingerprint": "3130f6e7c49373a87b094582bcc9affbdf799c562ec688137bb96f3d7ed42157", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 34 + }, + { + "name": "artplayer-plugin-document-pip", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-document-pip.tgz", + "fingerprint": "3507d1d5e0de702173c25a2e5caddac6e245046d9cd1249728b76e6dea9b8b77", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 34 + }, + { + "name": "artplayer-plugin-hls-control", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-hls-control.tgz", + "fingerprint": "3210ec59c5b8440d584d509e214f4021a0a5117639a1e883d617e95e2ac9a49b", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 35 + }, + { + "name": "artplayer-plugin-jassub", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-jassub.tgz", + "fingerprint": "e0391ecf1e2c9da0a622bb933a857f718bb370ecfb63ecc4b5e3ef1261e84371", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 38 + }, + { + "name": "artplayer-plugin-multiple-subtitles", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-multiple-subtitles.tgz", + "fingerprint": "d2b9e3f04560bcb5a5e6028166c7f92d23554290be6ae29fc632bf1eb82d1f87", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 33 + }, + { + "name": "artplayer-plugin-vast", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-vast.tgz", + "fingerprint": "07e23e4b5ad201e2b33afd0f8b689161c6228d0c0e0621487e48b04457fef766", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 33 + }, + { + "name": "artplayer-plugin-vtt-thumbnail", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-plugin-vtt-thumbnail.tgz", + "fingerprint": "4a7cbdb38d5d876a68bc74a3a785402a2989b3730638b0654c358275bcffc423", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 34 + }, + { + "name": "artplayer-proxy-canvas", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-proxy-canvas.tgz", + "fingerprint": "3cad2e085d0cf960508f5ed75ed62731c245e741246659a0f882fd73f2ed5430", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 30 + }, + { + "name": "artplayer-proxy-mediabunny", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-proxy-mediabunny.tgz", + "fingerprint": "adca4dc42d1a1bfe05ba81ebb397b607eb548ca6ec02856f1312dd41ea96a232", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 41 + }, + { + "name": "artplayer-tool-iframe", + "version": "2.0.0", + "candidate": "refactor/.cache/packages/run-XvHA8v/artplayer-tool-iframe.tgz", + "fingerprint": "a0808c48db68a5d433ebb983348cf28130552e5bea99c38a1335b90b4b302d3c", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 33 + }, + { + "name": "artplayer-tool-thumbnail", + "version": "5.0.0", + "candidate": "refactor/.cache/thumbnail-package-types-QihwDO/candidate.tgz", + "fingerprint": "431eb2caf41a434a8fdb516bf5d73b71df8b4d306530036ead7c1ee460076b81", + "build": { + "status": "evidence-recorded" + }, + "status": "blocked", + "blockers": 34 + } + ], + "siteCandidate": null, + "publicationAuthorized": false, + "limitation": "Build evidence only; older browser reports are not rebound to the replacement candidate." +} diff --git a/refactor/baselines/thumbnail-candidate-refresh.json b/refactor/baselines/thumbnail-candidate-refresh.json new file mode 100644 index 000000000..af08d9a59 --- /dev/null +++ b/refactor/baselines/thumbnail-candidate-refresh.json @@ -0,0 +1,545 @@ +{ + "task": "REL-02", + "sourceCommit": "484a8c903c98b1ef7bcb8b345002d920132cb4d8", + "capturedAt": "2026-09-15T19:53:00.665Z", + "reason": "Replace candidate after correcting shipped ARCHITECTURE.md default-mode statement", + "toolchain": { + "node": "v24.21.0", + "canonicalNode": "24.21.0", + "packageManager": "yarn@1.22.22", + "observedUserAgent": "yarn/1.22.22 npm/? node/v24.21.0 win32 x64", + "declaredTools": { + "@antfu/eslint-config": "5.4.1", + "@playwright/test": "1.63.0", + "@types/markdown-it": "14.1.2", + "@types/node": "24.10.0", + "@types/react": "19.1.10", + "@types/react-dom": "19.1.7", + "@vitejs/plugin-react": "5.0.0", + "@vitejs/plugin-vue": "6.0.1", + "@vue/compiler-sfc": "3.5.28", + "@yarnpkg/lockfile": "1.1.0", + "c8": "12.0.0", + "cpy": "13.2.3", + "cross-env": "10.1.0", + "cross-spawn": "7.0.6", + "dotenv": "17.2.4", + "dts-bundle-generator": "9.5.1", + "esbuild": "0.27.7", + "eslint": "9.39.2", + "eslint-plugin-format": "2.0.1", + "glob": "13.0.6", + "lerna": "8.2.4", + "less": "4.5.1", + "linkedom": "0.18.13", + "monaco-editor": "0.30.1", + "mrmime": "2.0.1", + "pngjs": "7.0.0", + "prompts": "2.4.2", + "react": "19.1.1", + "react-dom": "19.1.1", + "semver": "7.7.4", + "servor": "4.0.2", + "svgo": "4.1.0", + "terser": "5.51.2", + "typescript": "5.9.3", + "typescript-compat": "npm:typescript@4.3.5", + "typescript-runtime-compat": "npm:typescript@5.1.6", + "vite": "7.3.6", + "vue": "3.5.28", + "vue-tsc": "3.3.11", + "yaml": "2.8.2" + }, + "lock": { + "path": "yarn.lock", + "sha256": "aa33cfc38c7933ab53ce626a911fdafd7b14023e45f93ca37bf7f2f6a1d3ecce" + } + }, + "previousCandidate": { + "kind": "npm-tarball", + "path": "refactor/.cache/thumbnail-package-types-3AozAr/candidate.tgz", + "version": "5.0.0", + "sourceCommit": "1b8188834768605f312a5ed14dab52d75b9c880c", + "inputFingerprint": "b6403202698ea9beccee34f764727442c31ad806cb5b5e3b4f6e944f760acdb8", + "integrity": "sha512-NMeqORYyJOhxYgfULuZnznKUo3iQO3A3J6pGjRAGB05OA0SLOj4w8cDpG3vffwTZqCD6m+rdYCqJtYtBdriVxA==" + }, + "previousBuild": { + "path": "refactor/baselines/major-candidate-build/artplayer-tool-thumbnail.json", + "sha256": "d23f16252447f32907456bda58507b2dfd88d041a403db352fc622f702238506" + }, + "candidate": { + "kind": "npm-tarball", + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate.tgz", + "version": "5.0.0", + "sourceCommit": "484a8c903c98b1ef7bcb8b345002d920132cb4d8", + "inputFingerprint": "431eb2caf41a434a8fdb516bf5d73b71df8b4d306530036ead7c1ee460076b81", + "integrity": "sha512-vIXcuB1oOQA6Wq18NTvkK7rmWRj/ldVRraZsfkAf0L+tKEzuCjaFTd2phL3Ah9/XCXLFu9DEAwFSJqQKQpHcGw==" + }, + "unchangedInputFiles": 1472, + "archive": { + "sha256": "e516000e441d11fe0ea9d24e2e8c6254cd7537ddadeb7fc25dce73d3b3f5be7b", + "members": 12, + "changedMembers": [ + "package/ARCHITECTURE.md" + ], + "files": { + "package/ARCHITECTURE.md": "ca508e5e7af101478c05c30e3023c6722b0725a552dd9edb189fb01df6f2aee4", + "package/CHANGELOG.md": "ed09dc3741bcf9ebe06842d709cad72bb6ffc55237feb53e2c763ff017376863", + "package/README.md": "959562ac29bd0162e22c30041da9c3c9bfc9039e20cd6f210fb26b597d7f1c74", + "package/THIRD_PARTY_NOTICES": "7bea0832808c3d37b5a79f2ed6c65ef2ebdf7dbcbba124c469ebb90e2ec7c013", + "package/dist/artplayer-tool-thumbnail.js": "a254d9d66943bd302719edae040d6ee5e0a32f7c9f1ae0727be8cb6c5a335511", + "package/dist/artplayer-tool-thumbnail.legacy.js": "6dc0f7f84939a100d93a91943e077db5c2335a2671075d5687a104f797022609", + "package/dist/artplayer-tool-thumbnail.mjs": "4ba4a874a49b628bb8cdb09e53555c4ef2765694cee274a519bf509e1f661492", + "package/package.json": "fd840291e1dd8ad7bb240a29f7059f78dd50d0d410cf51ecd6174e2544d5fda3", + "package/types/README.md": "dd0bf1f872feac29b4c10424bec22c66174848d30724f067e463763de2ccea62", + "package/types/artplayer-tool-thumbnail.d.cts": "f0573326178b57a6e22a08b53247eb15ef4d20a1652e40d0cae638ac7aaf8092", + "package/types/artplayer-tool-thumbnail.d.mts": "f7a2fea001883706400b250588363533605d3f3a075cef1e31ae973c22258cb3", + "package/types/artplayer-tool-thumbnail.d.ts": "3da1a6a68db16c173dfb688ccc49ed130de2f7fb4790f1888230f2fd4c5847ac" + }, + "allMembersMatchFreshBuildAndInstalledCopy": true + }, + "types": { + "matrix": [ + { + "package": "workspace-fixture", + "compiler": "5.9.3", + "mode": "node10-commonjs", + "diagnostics": [ + { + "code": 2307, + "message": "Cannot find module 'artplayer-tool-thumbnail' or its corresponding type declarations." + } + ], + "negative": [] + }, + { + "package": "workspace-fixture", + "compiler": "5.9.3", + "mode": "nodenext-cjs", + "diagnostics": [ + { + "code": 7016, + "message": "Could not find a declaration file for module 'artplayer-tool-thumbnail'. '/node_modules/artplayer-tool-thumbnail/dist/artplayer-tool-thumbnail.js' implicitly has an 'any' type.\n Try `npm i --save-dev @types/artplayer-tool-thumbnail` if it exists or add a new declaration (.d.ts) file containing `declare module 'artplayer-tool-thumbnail';`" + } + ], + "negative": [] + }, + { + "package": "workspace-fixture", + "compiler": "5.9.3", + "mode": "nodenext-esm", + "diagnostics": [ + { + "code": 7016, + "message": "Could not find a declaration file for module 'artplayer-tool-thumbnail'. '/node_modules/artplayer-tool-thumbnail/dist/artplayer-tool-thumbnail.js' implicitly has an 'any' type.\n Try `npm i --save-dev @types/artplayer-tool-thumbnail` if it exists or add a new declaration (.d.ts) file containing `declare module 'artplayer-tool-thumbnail';`" + } + ], + "negative": [] + }, + { + "package": "workspace-fixture", + "compiler": "5.9.3", + "mode": "bundler-esm", + "diagnostics": [ + { + "code": 7016, + "message": "Could not find a declaration file for module 'artplayer-tool-thumbnail'. '/node_modules/artplayer-tool-thumbnail/dist/artplayer-tool-thumbnail.js' implicitly has an 'any' type.\n Try `npm i --save-dev @types/artplayer-tool-thumbnail` if it exists or add a new declaration (.d.ts) file containing `declare module 'artplayer-tool-thumbnail';`" + } + ], + "negative": [] + }, + { + "package": "workspace-fixture", + "compiler": "4.3.5", + "mode": "node10-commonjs", + "diagnostics": [ + { + "code": 2307, + "message": "Cannot find module 'artplayer-tool-thumbnail' or its corresponding type declarations." + } + ], + "negative": [] + }, + { + "package": "candidate", + "compiler": "5.9.3", + "mode": "node10-commonjs", + "diagnostics": [], + "negative": [ + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'number'." + }, + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'Element'." + }, + { + "code": 2345, + "message": "Argument of type 'string' is not assignable to parameter of type 'File'." + }, + { + "code": 2345, + "message": "Argument of type 'number' is not assignable to parameter of type 'string'." + }, + { + "code": 2345, + "message": "Argument of type '(value: HTMLVideoElement) => number' is not assignable to parameter of type '(this: unknown, file: File) => unknown'.\n Types of parameters 'value' and 'file' are incompatible.\n Type 'File' is missing the following properties from type 'HTMLVideoElement': disablePictureInPicture, height, onenterpictureinpicture, onleavepictureinpicture, and 376 more." + }, + { + "code": 2322, + "message": "Type 'Promise' is not assignable to type 'Promise'.\n Type 'void' is not assignable to type 'string'." + }, + { + "code": 2551, + "message": "Property 'default' does not exist on type 'typeof ArtplayerToolThumbnail'. Did you mean 'DEFAULTS'?" + }, + { + "code": 2322, + "message": "Type 'number | undefined' is not assignable to type 'number'.\n Type 'undefined' is not assignable to type 'number'." + }, + { + "code": 2345, + "message": "Argument of type '(message: string) => number' is not assignable to parameter of type '(this: unknown, message: unknown) => unknown'.\n Types of parameters 'message' and 'message' are incompatible.\n Type 'unknown' is not assignable to type 'string'." + }, + { + "code": 2554, + "message": "Expected 1 arguments, but got 2." + }, + { + "code": 2322, + "message": "Type '\"latest\"' is not assignable to type 'Compatibility | undefined'." + }, + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'number'." + } + ] + }, + { + "package": "candidate", + "compiler": "5.9.3", + "mode": "nodenext-cjs", + "diagnostics": [], + "negative": [ + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'number'." + }, + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'Element'." + }, + { + "code": 2345, + "message": "Argument of type 'string' is not assignable to parameter of type 'File'." + }, + { + "code": 2345, + "message": "Argument of type 'number' is not assignable to parameter of type 'string'." + }, + { + "code": 2345, + "message": "Argument of type '(value: HTMLVideoElement) => number' is not assignable to parameter of type '(this: unknown, file: File) => unknown'.\n Types of parameters 'value' and 'file' are incompatible.\n Type 'File' is missing the following properties from type 'HTMLVideoElement': disablePictureInPicture, height, onenterpictureinpicture, onleavepictureinpicture, and 376 more." + }, + { + "code": 2322, + "message": "Type 'Promise' is not assignable to type 'Promise'.\n Type 'void' is not assignable to type 'string'." + }, + { + "code": 2551, + "message": "Property 'default' does not exist on type 'typeof ArtplayerToolThumbnail'. Did you mean 'DEFAULTS'?" + }, + { + "code": 2322, + "message": "Type 'number | undefined' is not assignable to type 'number'.\n Type 'undefined' is not assignable to type 'number'." + }, + { + "code": 2345, + "message": "Argument of type '(message: string) => number' is not assignable to parameter of type '(this: unknown, message: unknown) => unknown'.\n Types of parameters 'message' and 'message' are incompatible.\n Type 'unknown' is not assignable to type 'string'." + }, + { + "code": 2554, + "message": "Expected 1 arguments, but got 2." + }, + { + "code": 2322, + "message": "Type '\"latest\"' is not assignable to type 'Compatibility | undefined'." + }, + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'number'." + } + ] + }, + { + "package": "candidate", + "compiler": "5.9.3", + "mode": "nodenext-esm", + "diagnostics": [], + "negative": [ + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'number'." + }, + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'Element'." + }, + { + "code": 2345, + "message": "Argument of type 'string' is not assignable to parameter of type 'File'." + }, + { + "code": 2345, + "message": "Argument of type 'number' is not assignable to parameter of type 'string'." + }, + { + "code": 2345, + "message": "Argument of type '(value: HTMLVideoElement) => number' is not assignable to parameter of type '(this: unknown, file: File) => unknown'.\n Types of parameters 'value' and 'file' are incompatible.\n Type 'File' is missing the following properties from type 'HTMLVideoElement': disablePictureInPicture, height, onenterpictureinpicture, onleavepictureinpicture, and 376 more." + }, + { + "code": 2322, + "message": "Type 'Promise' is not assignable to type 'Promise'.\n Type 'void' is not assignable to type 'string'." + }, + { + "code": 2551, + "message": "Property 'default' does not exist on type 'typeof ArtplayerToolThumbnail'. Did you mean 'DEFAULTS'?" + }, + { + "code": 2322, + "message": "Type 'number | undefined' is not assignable to type 'number'.\n Type 'undefined' is not assignable to type 'number'." + }, + { + "code": 2345, + "message": "Argument of type '(message: string) => number' is not assignable to parameter of type '(this: unknown, message: unknown) => unknown'.\n Types of parameters 'message' and 'message' are incompatible.\n Type 'unknown' is not assignable to type 'string'." + }, + { + "code": 2554, + "message": "Expected 1 arguments, but got 2." + }, + { + "code": 2322, + "message": "Type '\"latest\"' is not assignable to type 'Compatibility | undefined'." + }, + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'number'." + } + ] + }, + { + "package": "candidate", + "compiler": "5.9.3", + "mode": "bundler-esm", + "diagnostics": [], + "negative": [ + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'number'." + }, + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'Element'." + }, + { + "code": 2345, + "message": "Argument of type 'string' is not assignable to parameter of type 'File'." + }, + { + "code": 2345, + "message": "Argument of type 'number' is not assignable to parameter of type 'string'." + }, + { + "code": 2345, + "message": "Argument of type '(value: HTMLVideoElement) => number' is not assignable to parameter of type '(this: unknown, file: File) => unknown'.\n Types of parameters 'value' and 'file' are incompatible.\n Type 'File' is missing the following properties from type 'HTMLVideoElement': disablePictureInPicture, height, onenterpictureinpicture, onleavepictureinpicture, and 376 more." + }, + { + "code": 2322, + "message": "Type 'Promise' is not assignable to type 'Promise'.\n Type 'void' is not assignable to type 'string'." + }, + { + "code": 2551, + "message": "Property 'default' does not exist on type 'typeof ArtplayerToolThumbnail'. Did you mean 'DEFAULTS'?" + }, + { + "code": 2322, + "message": "Type 'number | undefined' is not assignable to type 'number'.\n Type 'undefined' is not assignable to type 'number'." + }, + { + "code": 2345, + "message": "Argument of type '(message: string) => number' is not assignable to parameter of type '(this: unknown, message: unknown) => unknown'.\n Types of parameters 'message' and 'message' are incompatible.\n Type 'unknown' is not assignable to type 'string'." + }, + { + "code": 2554, + "message": "Expected 1 arguments, but got 2." + }, + { + "code": 2322, + "message": "Type '\"latest\"' is not assignable to type 'Compatibility | undefined'." + }, + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'number'." + } + ] + }, + { + "package": "candidate", + "compiler": "4.3.5", + "mode": "node10-commonjs", + "diagnostics": [], + "negative": [ + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'number | undefined'." + }, + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'Element | undefined'." + }, + { + "code": 2345, + "message": "Argument of type '\"video.mp4\"' is not assignable to parameter of type 'File | null | undefined'." + }, + { + "code": 2345, + "message": "Argument of type 'number' is not assignable to parameter of type 'string'." + }, + { + "code": 2345, + "message": "Argument of type '(value: HTMLVideoElement) => number' is not assignable to parameter of type '(this: unknown, file: File) => unknown'.\n Types of parameters 'value' and 'file' are incompatible.\n Type 'File' is missing the following properties from type 'HTMLVideoElement': height, playsInline, poster, videoHeight, and 285 more." + }, + { + "code": 2322, + "message": "Type 'Promise' is not assignable to type 'Promise'.\n Type 'void' is not assignable to type 'string'." + }, + { + "code": 2551, + "message": "Property 'default' does not exist on type 'typeof ArtplayerToolThumbnail'. Did you mean 'DEFAULTS'?" + }, + { + "code": 2322, + "message": "Type 'number | undefined' is not assignable to type 'number'.\n Type 'undefined' is not assignable to type 'number'." + }, + { + "code": 2345, + "message": "Argument of type '(message: string) => number' is not assignable to parameter of type '(this: unknown, message: unknown) => unknown'.\n Types of parameters 'message' and 'message' are incompatible.\n Type 'unknown' is not assignable to type 'string'." + }, + { + "code": 2554, + "message": "Expected 1 arguments, but got 2." + }, + { + "code": 2322, + "message": "Type '\"latest\"' is not assignable to type 'Compatibility | undefined'." + }, + { + "code": 2322, + "message": "Type 'string' is not assignable to type 'number | undefined'." + } + ] + }, + { + "package": "candidate", + "compiler": "5.9.3", + "mode": "nodenext-cjs-no-interop", + "diagnostics": [], + "negative": [ + { + "code": 2551, + "message": "Property 'default' does not exist on type 'typeof ArtplayerToolThumbnail'. Did you mean 'DEFAULTS'?" + } + ] + }, + { + "package": "candidate", + "compiler": "4.3.5", + "mode": "node10-commonjs-no-interop", + "diagnostics": [], + "negative": [ + { + "code": 2551, + "message": "Property 'default' does not exist on type 'typeof ArtplayerToolThumbnail'. Did you mean 'DEFAULTS'?" + } + ] + } + ], + "runtime": [ + { + "package": "workspace-fixture", + "commonjs": "function", + "esm": "ERR_MODULE_NOT_FOUND", + "typesMissing": true + }, + { + "package": "candidate", + "commonjs": "function", + "esm": "function", + "legacy": "function", + "ssrImport": true + } + ], + "scope": "Frozen Git input fixture and candidate Yarn pack installed outside workspace. The frozen fixture is not an original npm archive; no recovered 3.5.31 complete archive is claimed. Candidate root/legacy runtime, offline frozen install, all files and strict consumers verified." + }, + "attachments": [ + { + "path": "refactor/.cache/release-ledger-mDccFl/report.json", + "sha256": "18a019484cfe3b579710ed01d9e1c62ab19b8dfa403801b1e8bfaddd253dcd34" + }, + { + "path": "refactor/.cache/release-ledger-lAT9u7/report.json", + "sha256": "18a019484cfe3b579710ed01d9e1c62ab19b8dfa403801b1e8bfaddd253dcd34" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/report.json", + "sha256": "a30c8a32063b1a0cc03a25a94ecb3c8ea50cb11cfd41baecea987577e9e1e815" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate.tgz", + "sha256": "e516000e441d11fe0ea9d24e2e8c6254cd7537ddadeb7fc25dce73d3b3f5be7b" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate-pack.log", + "sha256": "270b0ae7216b938fbc315ce43bd5481b1075a3f60650f8156674318602fafec3" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate-install.log", + "sha256": "4c521407b611ee985c61c4c0210fefcb9f9898e4021f046597854faa9cb12dbd" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate-frozen-install.log", + "sha256": "6d8a95fad69ac94a55d176b472fc3a0f72783092e49b7e683156b6717510f4a8" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate-yarn.lock", + "sha256": "41d9216dc7875ea90a305ead5d83cfb64f9cb72dbca7f83edd1b918a7e6296e8" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate-runtime.log", + "sha256": "20c9ba9ff34a4110537ee3c3453fea73e9f8bd6e1072e4f8feb1df1d6b0055dd" + }, + { + "path": "refactor/.cache/thumbnail-package-types-QihwDO/workspace-fixture-runtime.log", + "sha256": "66a519bc12dceddb2216ae28314ba062d532312d5164f0a64a4522c889e38167" + }, + { + "path": "refactor/.cache/rel02-thumbnail-refresh-build.log", + "sha256": "b8028d4370e2f5b9dd19efca662e347372c4870f085c156ea8f9e67ff08b4eab" + }, + { + "path": "refactor/.cache/rel02-thumbnail-refresh-types.log", + "sha256": "ad267e70abcf8c6a4191a1d30aca2596f029dc0c0c0e229303916be9ad2f3b30" + }, + { + "path": "refactor/.cache/record-rel02-thumbnail-refresh.mjs", + "sha256": "50712e0b10e8a046db329b310b5a9aded3ee8a8966214eef80518dd8a088cade" + } + ], + "limitations": [ + "Only build gate registered; installed module/type checks do not replace runtime/media/device/rollback/review gates.", + "The historical workspace fixture is reconstructed from frozen Git, not a complete original npm archive. Its missing ESM/types are expected negative evidence.", + "No actual screenshot extraction rerun for this documentation-only archive change; Windows WebKit Blob and physical-device gaps remain.", + "Old archive, envelope and reports remain intact. No publication authorized." + ] +} diff --git a/refactor/changes/2026-09-16-REL-02-thumbnail-refresh.md b/refactor/changes/2026-09-16-REL-02-thumbnail-refresh.md new file mode 100644 index 000000000..5b5988cf2 --- /dev/null +++ b/refactor/changes/2026-09-16-REL-02-thumbnail-refresh.md @@ -0,0 +1,46 @@ +# REL-02 checkpoint: refresh Thumbnail after default-description correction + +SITE-04 corrected a stale default-mode sentence in the tool's shipped +ARCHITECTURE.md. Starting from clean commit +484a8c903c98b1ef7bcb8b345002d920132cb4d8, rebuild Thumbnail5.0.0 through the +normal script and pack/install it through the existing consumer checks. Replace +only this package's ledger candidate and build envelope; retain previous evidence. + +## Evidence + +- Node24.21.0, Yarn1.22.22. `yarn build artplayer-tool-thumbnail` completed in + 1.58s. Main, legacy and ESM bytes remain identical to the prior candidate. +- `yarn test:thumbnail-types-package` completed in12.54s. All seven candidate + profiles pass with strict types, actual installed entries and expected negative + cases: TypeScript5.9.3 Node10/NodeNext CJS/NodeNext ESM/Bundler, TS4.3.5 Node10, + plus modern/old CommonJS no-interop. Five reconstructed workspace profiles + reproduce their exact missing-declaration errors; they are negative evidence, + not working historical TypeScript support. +- Real offline/frozen installs preserve consumer locks and check every member + against archive content. Native require/import and legacy imports verify direct + constructors, no self-default alias and SSR-safe module import. No DOM extraction + or player integration is claimed by those module checks. +- All1472 related raw inputs and the fingerprint remain stable before/after the + build and at collection. All12 candidate members match fresh package files and + the independently installed copy. Only package/ARCHITECTURE.md differs from the + old candidate; runtime bundles, declarations and manifest remain unchanged. +- Fresh registration verification accepts all21 library build envelopes, with + no stale library candidate fingerprints. All release blockers remain and the + documentation-site candidate is still absent. + +The [preparation record](../baselines/thumbnail-candidate-refresh.json) retains +both candidate identities and all attachment hashes. The +[registration check](../baselines/thumbnail-candidate-refresh-check.json) records +the accepted current ledger. Old tarballs/envelopes/reports are untouched. + +Only build evidence is registered. The historical fixture comes from frozen Git, +not a complete recovered npm3.5.31 archive; that rollback gap remains. This +documentation-only change does not rerun pixels or close Windows WebKit Blob, +physical-device, runtime/combinations or review gates. Future browser runs must +prepare the current installed archive rather than relabel old evidence. + +REL-02 stays doing; totals224 done/22 doing/39 todo. Continue remaining proxy +guides and core/current-content verification. Formal reviews remain user-directed. +No push, remote dispatch, deployment or publication occurred. Reverting this +ledger checkpoint alone restores an archive stale against the corrected package +documentation; it is not release acceptance. diff --git a/refactor/plan.md b/refactor/plan.md index d97cf814d..8390742d7 100644 --- a/refactor/plan.md +++ b/refactor/plan.md @@ -699,7 +699,7 @@ - REL-08: [记录](changes/2026-09-14-REL-08-release-ledger.md) [记录](baselines/release-ledger-validation.json) [记录](release-ledger.md) [记录](release-ledger.json) - REL-01: [记录](version-plan.md) [记录](version-plan.json) [记录](baselines/version-registry-2026-09-16.json) [记录](changes/2026-09-16-REL-01-version-plan.md) - REL-09: [记录](changes/2026-09-16-REL-09-major-versions.md) [记录](baselines/major-version-preparation.json) [记录](baselines/version-registry-prepared-2026-09-16.json) [记录](version-plan.md) -- REL-02: [记录](changes/2026-09-16-REL-02-types-inputs.md) [记录](baselines/major-installed-types-validation.json) [记录](changes/2026-09-16-REL-02-yarn-candidate-archives.md) [记录](baselines/major-candidate-archive-validation.json) [记录](changes/2026-09-16-REL-02-candidate-registration.md) [记录](baselines/major-candidate-preparation.json) [记录](changes/2026-09-16-REL-02-auto-thumbnail-refresh.md) [记录](baselines/auto-thumbnail-candidate-refresh.json) [记录](baselines/auto-thumbnail-candidate-refresh-check.json) +- REL-02: [记录](changes/2026-09-16-REL-02-types-inputs.md) [记录](baselines/major-installed-types-validation.json) [记录](changes/2026-09-16-REL-02-yarn-candidate-archives.md) [记录](baselines/major-candidate-archive-validation.json) [记录](changes/2026-09-16-REL-02-candidate-registration.md) [记录](baselines/major-candidate-preparation.json) [记录](changes/2026-09-16-REL-02-auto-thumbnail-refresh.md) [记录](baselines/auto-thumbnail-candidate-refresh.json) [记录](baselines/auto-thumbnail-candidate-refresh-check.json) [记录](changes/2026-09-16-REL-02-thumbnail-refresh.md) [记录](baselines/thumbnail-candidate-refresh.json) [记录](baselines/thumbnail-candidate-refresh-check.json) - REL-04: [记录](changes/2026-09-15-REL-04-consumer-checkpoint.md) [记录](rollback-rehearsal.md) [记录](baselines/rollback-consumer-validation.json) [记录](changes/2026-09-15-REL-04-workflows-checkpoint.md) [记录](rollback-inventory.md) [记录](baselines/rollback-workflows-validation.json) [记录](changes/2026-09-15-REL-04-pages-recovery.md) [记录](baselines/pages-recovery-validation.json) [记录](changes/2026-09-15-REL-04-acceptance.md) [记录](baselines/rollback-acceptance-validation.json) - PKG-FACTORY-01: [记录](baselines/factory-assignment-gaps.json) [记录](baselines/factory-compatibility-proposals.json) [记录](factory-compatibility-decision.md) [记录](changes/2026-09-12-PKG-FACTORY-01-decision.md) [记录](type-compatibility-policy.md) [记录](baselines/factory-compatibility-validation.json) [记录](changes/2026-09-13-PKG-FACTORY-01-compatible-types.md) - CORE-25: [记录](changes/2026-09-13-CORE-25-defaults-ssr.md) [记录](baselines/defaults-ssr-validation.json) diff --git a/refactor/progress.md b/refactor/progress.md index cf55be9a5..c5701338f 100644 --- a/refactor/progress.md +++ b/refactor/progress.md @@ -1,5 +1,16 @@ # 进度与证据 +## REL-02 Thumbnail工具候选重新准备 + +从484a8c903重建5.0.0并隔离安装。七组候选类型消费通过,五组冻结工作区缺失声明 +按预期复现;1472个相关输入保持一致,12个归档/安装成员全部匹配,只有随包 +ARCHITECTURE说明不同于旧候选。新build封套登记后21库指纹重新有效,旧证据保留。 +见[记录](changes/2026-09-16-REL-02-thumbnail-refresh.md)、 +[准备证据](baselines/thumbnail-candidate-refresh.json)和 +[台账检查](baselines/thumbnail-candidate-refresh-check.json)。未关闭旧npm完整归档、 +WebKit Blob/真机及其他发布缺口;REL-02仍doing,224/22/39不变。接续两个proxy +指南与核心/已有内容核对,不进入用户保留的正式复盘。 + ## SITE-04 Iframe/Thumbnail工具双语指南 补齐四份工具指南、独立工具导航和原样示例;说明父子接入/消息执行、缩略图两种 diff --git a/refactor/release-ledger.json b/refactor/release-ledger.json index 776e9c147..394ae8221 100644 --- a/refactor/release-ledger.json +++ b/refactor/release-ledger.json @@ -724,16 +724,16 @@ }, "candidate": { "kind": "npm-tarball", - "path": "refactor/.cache/thumbnail-package-types-3AozAr/candidate.tgz", + "path": "refactor/.cache/thumbnail-package-types-QihwDO/candidate.tgz", "version": "5.0.0", - "sourceCommit": "1b8188834768605f312a5ed14dab52d75b9c880c", - "inputFingerprint": "b6403202698ea9beccee34f764727442c31ad806cb5b5e3b4f6e944f760acdb8", - "integrity": "sha512-NMeqORYyJOhxYgfULuZnznKUo3iQO3A3J6pGjRAGB05OA0SLOj4w8cDpG3vffwTZqCD6m+rdYCqJtYtBdriVxA==" + "sourceCommit": "484a8c903c98b1ef7bcb8b345002d920132cb4d8", + "inputFingerprint": "431eb2caf41a434a8fdb516bf5d73b71df8b4d306530036ead7c1ee460076b81", + "integrity": "sha512-vIXcuB1oOQA6Wq18NTvkK7rmWRj/ldVRraZsfkAf0L+tKEzuCjaFTd2phL3Ah9/XCXLFu9DEAwFSJqQKQpHcGw==" }, "evidence": { "build": { - "path": "refactor/baselines/major-candidate-build/artplayer-tool-thumbnail.json", - "sha256": "d23f16252447f32907456bda58507b2dfd88d041a403db352fc622f702238506" + "path": "refactor/baselines/major-candidate-build/artplayer-tool-thumbnail-docs.json", + "sha256": "53b7e9c1689f2a1dc98ef4737b031feb430a03a785501eca5acf90e4534fefdf" } } }, diff --git a/refactor/release-ledger.md b/refactor/release-ledger.md index 47020031f..cc2da5b6b 100644 --- a/refactor/release-ledger.md +++ b/refactor/release-ledger.md @@ -50,6 +50,13 @@ integrity、输入指纹不一致的 rollback 报告仍被拒绝,远端恢复 [更新记录](changes/2026-09-16-REL-02-auto-thumbnail-refresh.md)。其余20库候选不变, 21库build指纹重新有效;旧共享浏览器安装映射不自动变成这个新候选的播放证据。 +2026-09-16:Thumbnail工具的随包默认行为说明修正后,从484a8c903重建5.0.0并 +隔离安装;七组候选类型消费通过,五组冻结工作区缺失声明保留为负面证据。 +1472个输入保持一致,12个归档成员只有ARCHITECTURE.md改变。新candidate/build +绑定见[准备记录](baselines/thumbnail-candidate-refresh.json)及 +[检查](baselines/thumbnail-candidate-refresh-check.json);21库build重新有效。 +旧npm完整归档、真实提取和设备验收缺口未因此关闭。 + 初始candidate均为null,evidence为空。REL-02已登记21库的目标major候选及build 封套,见[实际准备记录](changes/2026-09-16-REL-02-candidate-registration.md);站点 candidate仍为null,其他门槛未由这次构建代替。先完成目标版本准备和对应实际构建/pack, diff --git a/refactor/tasks.json b/refactor/tasks.json index 36616c5ce..f574ed859 100644 --- a/refactor/tasks.json +++ b/refactor/tasks.json @@ -5038,7 +5038,10 @@ "baselines/major-candidate-preparation.json", "changes/2026-09-16-REL-02-auto-thumbnail-refresh.md", "baselines/auto-thumbnail-candidate-refresh.json", - "baselines/auto-thumbnail-candidate-refresh-check.json" + "baselines/auto-thumbnail-candidate-refresh-check.json", + "changes/2026-09-16-REL-02-thumbnail-refresh.md", + "baselines/thumbnail-candidate-refresh.json", + "baselines/thumbnail-candidate-refresh-check.json" ] }, {