mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-23 13:51:20 -08:00
fix(docs): [SITE-LOAD-01] serialize example loading and preserve navigation
This commit is contained in:
1 parent
76499e7a3e
commit
647f3e7f12
29 files changed
+1977
-256
No files matched your search
@@ -17913,11 +17913,12 @@
|
||||
{
|
||||
"source": "docs/index.html",
|
||||
"route": "/",
|
||||
"sha256Lf": "5285062f253dbf739050b00090b65296ffa1078594bd49255d315bd3ec3bdedc",
|
||||
"sha256Lf": "f654fa04c8aea08bc718e96ce2a438f04cc91060b2bb9b2b86f4e1467258fd97",
|
||||
"kind": "demo-or-editor",
|
||||
"scriptSources": [
|
||||
"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8579453810848662",
|
||||
"./assets/js/console.js"
|
||||
"./assets/js/console.js",
|
||||
"./assets/js/loader.js"
|
||||
],
|
||||
"status": "not-run",
|
||||
"owner": "EX-03"
|
||||
@@ -18137,15 +18138,15 @@
|
||||
},
|
||||
{
|
||||
"file": "docs/assets/js/common.js",
|
||||
"sha256Lf": "cc9f7d780cf4f0ffb9aaee75da69e2b2b062f3bac07b4ffc9a75956b2e7cd7af"
|
||||
"sha256Lf": "c18f72dd5489bdee5b7bd0030c716eab08ac7ea7bd253353eaf406fb8ae2bc14"
|
||||
},
|
||||
{
|
||||
"file": "docs/assets/js/mobile.js",
|
||||
"sha256Lf": "fd793b52d566a0ba94d4f2ccf85009d8f79d313aaeeeadad5cbb9cd8edd2e171"
|
||||
"sha256Lf": "53a03d1c6725942ee306d2d38fb7ee31d756f16d68f7e0e38f0f01d6073dbf47"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/docs/public/main.js",
|
||||
"sha256Lf": "f966a945ecc22e1521208eeb57fe6402f61a2a94f85b0cbb9784ddb1912284fc"
|
||||
"sha256Lf": "b8c9b9334abc800e12fd2b8154d89f04c580adf0a155718f2ed44e85f7fd44d7"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/docs/vite.config.ts",
|
||||
@@ -18155,6 +18156,10 @@
|
||||
"file": "packages/artplayer-vitepress/docs/.vitepress/config.js",
|
||||
"sha256Lf": "9b2741347afb49d830dafa2a847625e6b1d6a820e930fb119c91b22dbbcc52d1"
|
||||
},
|
||||
{
|
||||
"file": "scripts/build-site-assets.mjs",
|
||||
"sha256Lf": "58c163e16efa901d227045b468f324ac79ad4ab2f8ab8716f10a8ede62091666"
|
||||
},
|
||||
{
|
||||
"file": "scripts/docs-smoke/generator.ts",
|
||||
"sha256Lf": "2ae4144f27b3050869217e437ddca75ccc25897bf78f75efc91dd1f7d2ca3dc2"
|
||||
@@ -18194,12 +18199,28 @@
|
||||
{
|
||||
"file": "scripts/editor-declarations/vast-sdk.ts",
|
||||
"sha256Lf": "6da9176284b7a697a922b90befa64263e016f12eef483793cc524bdfc028ad05"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/browser/editor-loader.ts",
|
||||
"sha256Lf": "7cfdc82726d164d450b21680d950ec3f508482f1ab743febee473855248568e1"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/browser/loader.ts",
|
||||
"sha256Lf": "d5d5c079854f40025be6af457baba863ab8cd37af59c120e811b7f59e5c160b6"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/browser/mobile.ts",
|
||||
"sha256Lf": "beba095b7fda9fb9aa2c5cd50437ea9e186fa76e700e6e79ee8e9eb67fd86d7d"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/browser/navigation.ts",
|
||||
"sha256Lf": "1ad87a6bee717f9e62d28c5e6dc382c5c1b43c09c9f10c64e3ef0824f2fbdedc"
|
||||
}
|
||||
],
|
||||
"generationCommands": {
|
||||
"build:ts": "node ./scripts/build-ts.js",
|
||||
"build:llm": "node ./scripts/build-llm.js",
|
||||
"build:docs": "node ./scripts/build-docs.js",
|
||||
"build:docs": "yarn build:site-assets && node ./scripts/build-docs.js",
|
||||
"build:i18n": "node ./scripts/build-i18n.js",
|
||||
"build:test": "node ./scripts/build-test.js",
|
||||
"build:all": "yarn ci:build && yarn lint",
|
||||
|
||||
@@ -0,0 +1,521 @@
|
||||
{
|
||||
"task": "SITE-LOAD-01",
|
||||
"baseline": "76499e7a3e033c8350ff495ba8bfff4ca5c08d25",
|
||||
"node": "24.21.0",
|
||||
"yarn": "1.22.22",
|
||||
"scope": {
|
||||
"generatedAssets": 3,
|
||||
"englishRouteVariants": 26,
|
||||
"newNodeTests": 5,
|
||||
"newBrowserTests": 21,
|
||||
"monacoRegressionTests": 3,
|
||||
"rootLintExistingWarnings": 1,
|
||||
"publicPackageRuntimeChanged": false,
|
||||
"publicPackageDeclarationsChanged": false,
|
||||
"lockUnchanged": true
|
||||
},
|
||||
"logs": {
|
||||
"newNodeTests": {
|
||||
"file": "refactor/.cache/site-loading-tests.log",
|
||||
"sha256": "ca44177f795a8658e55e6e25a40c426a3625031f5af25c73e7596baf06034806",
|
||||
"exitCode": 0,
|
||||
"pass": 5
|
||||
},
|
||||
"finalTargeted": {
|
||||
"file": "refactor/.cache/site-loading-targeted-final.log",
|
||||
"sha256": "38f02e6e36a08816f006600f79334b98e2bf46b1aba3dca47583a0c8ba7a5a8f",
|
||||
"exitCode": 0,
|
||||
"pass": 13
|
||||
},
|
||||
"baseline": {
|
||||
"file": "refactor/.cache/site-loading-baseline.log",
|
||||
"sha256": "9750bf8d1100cf565b4873d6d36f63a07e48aa39941283ce4bcfa0bd0ff6d9b9",
|
||||
"exitCode": 0,
|
||||
"pass": 522
|
||||
},
|
||||
"browserInitial": {
|
||||
"file": "refactor/.cache/site-loading-browser.log",
|
||||
"sha256": "d02cca26fd1443c5a02f580bf44a0816dd39e28eb05b10b36bcea37564c69c59",
|
||||
"exitCode": 0,
|
||||
"pass": 15
|
||||
},
|
||||
"browserSetupFailure": {
|
||||
"file": "refactor/.cache/site-loading-browser-final.log",
|
||||
"sha256": "32ee26f81405a84496b72482094ff4251cf236cb2cebfefe655c297da50bcbc6",
|
||||
"exitCode": 1,
|
||||
"pass": 20
|
||||
},
|
||||
"browserAccepted": {
|
||||
"file": "refactor/.cache/site-loading-browser-verified.log",
|
||||
"sha256": "10e2712131e6be0dff7a3b2e06641981f11f1e46f0c6b4ec23e52c52d474da8e",
|
||||
"exitCode": 0,
|
||||
"pass": 24
|
||||
},
|
||||
"legacyCommonLintBefore": {
|
||||
"file": "refactor/.cache/site-common-lint-before.log",
|
||||
"sha256": "f1978826cbb118c296332259bdbd3e1caf4a3e6a8aa24b029c21fb13658f034a",
|
||||
"exitCode": 1
|
||||
},
|
||||
"rootLint": {
|
||||
"file": "refactor/.cache/site-loading-root-lint.log",
|
||||
"sha256": "e3083de1ec97688cdfbce56aba620869eea4531afea294e4d5b4840c41e392be",
|
||||
"exitCode": 0
|
||||
},
|
||||
"targetedLint": {
|
||||
"file": "refactor/.cache/site-loading-final-lint.log",
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"exitCode": 0
|
||||
},
|
||||
"browserTypes": {
|
||||
"file": "refactor/.cache/site-loading-types.log",
|
||||
"sha256": "293a5b477d958aca4aaef3ee183447682f361ee94692b533a32c615396ba83b0",
|
||||
"exitCode": 0
|
||||
},
|
||||
"toolTypes": {
|
||||
"file": "refactor/.cache/site-loading-tool-types.log",
|
||||
"sha256": "db6d032c8e69dbfbcdbc37d3dfc6227dce2c7be659fd003c4eca3cc290921771",
|
||||
"exitCode": 0
|
||||
},
|
||||
"toolchain": {
|
||||
"file": "refactor/.cache/site-loading-toolchain.log",
|
||||
"sha256": "4b140bdd27acb3adeb1cf8a328d0024b598c8a4efe1b2c3ae180e9df5a4cb084",
|
||||
"exitCode": 0
|
||||
},
|
||||
"ci": {
|
||||
"file": "refactor/.cache/site-loading-ci-final.log",
|
||||
"sha256": "797184eb9940868fbfc3709895966ecd38c1198fcc56f6ab409d189399d600b2",
|
||||
"exitCode": 0,
|
||||
"pass": 50
|
||||
},
|
||||
"assetsCheck": {
|
||||
"file": "refactor/.cache/site-loading-assets-check.log",
|
||||
"sha256": "80807571a48a18caf82db4ebbe36ec95dcec64372c7d0d1acd4d5984248f1b29",
|
||||
"exitCode": 0
|
||||
}
|
||||
},
|
||||
"browser": {
|
||||
"file": "refactor/.cache/site-loading-browser-accepted/report.json",
|
||||
"sha256": "eeeee6afcf056d50885a8f721f52a4e742d479420930668cc6ebcb9b1b0b0b9e",
|
||||
"stats": {
|
||||
"startTime": "2026-09-13T23:43:41.727Z",
|
||||
"duration": 28844.011,
|
||||
"expected": 24,
|
||||
"skipped": 0,
|
||||
"unexpected": 0,
|
||||
"flaky": 0
|
||||
},
|
||||
"cases": [
|
||||
{
|
||||
"title": "Monaco checks all editor declarations together and runs the Chapter consumer",
|
||||
"project": "chromium",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "153.0.8010.12",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": [
|
||||
{
|
||||
"url": "http://127.0.0.1:8084/test/pattern.mp4",
|
||||
"resourceType": "media",
|
||||
"failure": {
|
||||
"errorText": "net::ERR_ABORTED"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Monaco checks all editor declarations together and runs the Chapter consumer",
|
||||
"project": "firefox",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "155.0",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "Monaco checks all editor declarations together and runs the Chapter consumer",
|
||||
"project": "webkit",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "26.6",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "mobile page runs dependencies in order and plays the selected code with no AMD property leak",
|
||||
"project": "chromium",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "153.0.8010.12",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": [
|
||||
{
|
||||
"url": "http://127.0.0.1:8084/test/pattern.mp4",
|
||||
"resourceType": "media",
|
||||
"failure": {
|
||||
"errorText": "net::ERR_ABORTED"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "real script failure is retryable and cancellation restores the original AMD function",
|
||||
"project": "chromium",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "153.0.8010.12",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [
|
||||
"Failed to load resource: the server responded with a status of 404 (Not Found)"
|
||||
],
|
||||
"failedRequests": [
|
||||
{
|
||||
"url": "http://127.0.0.1:8084/site-retry.js",
|
||||
"resourceType": "script",
|
||||
"failure": {
|
||||
"errorText": "net::ERR_ABORTED"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "desktop editor preserves example priority and reuses loaded dependencies when Run is clicked",
|
||||
"project": "chromium",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "153.0.8010.12",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": [
|
||||
{
|
||||
"url": "http://127.0.0.1:8084/test/pattern.mp4",
|
||||
"resourceType": "media",
|
||||
"failure": {
|
||||
"errorText": "net::ERR_ABORTED"
|
||||
}
|
||||
},
|
||||
{
|
||||
"url": "http://127.0.0.1:8084/test/pattern.mp4",
|
||||
"resourceType": "media",
|
||||
"failure": {
|
||||
"errorText": "net::ERR_ABORTED"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Run Code handles nested clicks, encodes dependencies and stays local on 127.0.0.1",
|
||||
"project": "chromium",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "153.0.8010.12",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "first-language redirect preserves the translated deep link and later explicit Chinese selection",
|
||||
"project": "chromium",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "153.0.8010.12",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "a late initial example response cannot overwrite a newer editor Run",
|
||||
"project": "chromium",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "153.0.8010.12",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": [
|
||||
{
|
||||
"url": "http://127.0.0.1:8084/test/pattern.mp4",
|
||||
"resourceType": "media",
|
||||
"failure": {
|
||||
"errorText": "net::ERR_ABORTED"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "denied storage keeps the requested documentation page without a redirect loop",
|
||||
"project": "chromium",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "153.0.8010.12",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "mobile page runs dependencies in order and plays the selected code with no AMD property leak",
|
||||
"project": "firefox",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "155.0",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "real script failure is retryable and cancellation restores the original AMD function",
|
||||
"project": "firefox",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "155.0",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "desktop editor preserves example priority and reuses loaded dependencies when Run is clicked",
|
||||
"project": "firefox",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "155.0",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "Run Code handles nested clicks, encodes dependencies and stays local on 127.0.0.1",
|
||||
"project": "firefox",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "155.0",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "first-language redirect preserves the translated deep link and later explicit Chinese selection",
|
||||
"project": "firefox",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "155.0",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "a late initial example response cannot overwrite a newer editor Run",
|
||||
"project": "firefox",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "155.0",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "denied storage keeps the requested documentation page without a redirect loop",
|
||||
"project": "firefox",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "155.0",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "mobile page runs dependencies in order and plays the selected code with no AMD property leak",
|
||||
"project": "webkit",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "26.6",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "real script failure is retryable and cancellation restores the original AMD function",
|
||||
"project": "webkit",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "26.6",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [
|
||||
"Failed to load resource: the server responded with a status of 404 (Not Found)"
|
||||
],
|
||||
"failedRequests": [
|
||||
{
|
||||
"url": "http://127.0.0.1:8084/site-retry.js",
|
||||
"resourceType": "script",
|
||||
"failure": {
|
||||
"errorText": "Load request cancelled"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "desktop editor preserves example priority and reuses loaded dependencies when Run is clicked",
|
||||
"project": "webkit",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "26.6",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "Run Code handles nested clicks, encodes dependencies and stays local on 127.0.0.1",
|
||||
"project": "webkit",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "26.6",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "first-language redirect preserves the translated deep link and later explicit Chinese selection",
|
||||
"project": "webkit",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "26.6",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "a late initial example response cannot overwrite a newer editor Run",
|
||||
"project": "webkit",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "26.6",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
},
|
||||
{
|
||||
"title": "denied storage keeps the requested documentation page without a redirect loop",
|
||||
"project": "webkit",
|
||||
"status": "expected",
|
||||
"attempts": 1,
|
||||
"browser": "26.6",
|
||||
"platform": "win32",
|
||||
"errors": [],
|
||||
"consoleErrors": [],
|
||||
"failedRequests": []
|
||||
}
|
||||
],
|
||||
"initialArchive": "refactor/.cache/site-loading-browser-initial",
|
||||
"setupFailureArchive": "refactor/.cache/site-loading-browser-setup-failure",
|
||||
"failure": {
|
||||
"project": "firefox",
|
||||
"phase": "page fixture setup before test body",
|
||||
"message": "Test timeout of 20000ms exceeded while setting up page",
|
||||
"simultaneousBaseline": true,
|
||||
"causalAttribution": "Not proven; subsequent run was serialized after the baseline. No timeout, retry or skip change."
|
||||
}
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"file": "docs/index.html",
|
||||
"sha256Lf": "f654fa04c8aea08bc718e96ce2a438f04cc91060b2bb9b2b86f4e1467258fd97"
|
||||
},
|
||||
{
|
||||
"file": "docs/assets/js/common.js",
|
||||
"sha256Lf": "c18f72dd5489bdee5b7bd0030c716eab08ac7ea7bd253353eaf406fb8ae2bc14"
|
||||
},
|
||||
{
|
||||
"file": "package.json",
|
||||
"sha256Lf": "5d07a142cd37b886cbad801a2dd48ec6b6a55a40aebebacf206b1370688d9214"
|
||||
},
|
||||
{
|
||||
"file": "scripts/build-site-assets.mjs",
|
||||
"sha256Lf": "58c163e16efa901d227045b468f324ac79ad4ab2f8ab8716f10a8ede62091666"
|
||||
},
|
||||
{
|
||||
"file": "scripts/tsconfig.docs.json",
|
||||
"sha256Lf": "47895ead75f89bed4ec707b77b6b9daa3705b31f3d241c23e83d22b61d565359"
|
||||
},
|
||||
{
|
||||
"file": "test/site-loading.test.js",
|
||||
"sha256Lf": "cd0e513fcc5a6c69458ee6dd4ac12a270a2d28c15e13c46c0bab1ef1299b8667"
|
||||
},
|
||||
{
|
||||
"file": "test/browser/site-loading.spec.js",
|
||||
"sha256Lf": "3038e871b44d928fe537f15d20c88f541a7f73650b7fad46348739cfad535a57"
|
||||
},
|
||||
{
|
||||
"file": "test/browser/editor-declarations.spec.js",
|
||||
"sha256Lf": "3e80ea68e869e29e1a0230759bb1dc02d503f393de41b03ded5296b607e44684"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/browser/editor-loader.ts",
|
||||
"sha256Lf": "7cfdc82726d164d450b21680d950ec3f508482f1ab743febee473855248568e1"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/browser/loader.ts",
|
||||
"sha256Lf": "d5d5c079854f40025be6af457baba863ab8cd37af59c120e811b7f59e5c160b6"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/browser/mobile.ts",
|
||||
"sha256Lf": "beba095b7fda9fb9aa2c5cd50437ea9e186fa76e700e6e79ee8e9eb67fd86d7d"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/browser/navigation.ts",
|
||||
"sha256Lf": "1ad87a6bee717f9e62d28c5e6dc382c5c1b43c09c9f10c64e3ef0824f2fbdedc"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/browser/README.md",
|
||||
"sha256Lf": "93c4b79c70e8a43ac4999642171366d272a0868907cf7e909ec9be9ed9f6562d"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/browser/tsconfig.json",
|
||||
"sha256Lf": "9a1331ca4b311d66df7aca6e5ff8a8e3647e338931e013ffc7df58aaee8f6a0c"
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"file": "docs/assets/js/loader.js",
|
||||
"sha256Lf": "f917507fc921f96159402b7f744dc15b8341a89cf0e089abbfe459879169d1a5"
|
||||
},
|
||||
{
|
||||
"file": "docs/assets/js/mobile.js",
|
||||
"sha256Lf": "53a03d1c6725942ee306d2d38fb7ee31d756f16d68f7e0e38f0f01d6073dbf47"
|
||||
},
|
||||
{
|
||||
"file": "packages/artplayer-vitepress/docs/public/main.js",
|
||||
"sha256Lf": "b8c9b9334abc800e12fd2b8154d89f04c580adf0a155718f2ed44e85f7fd44d7"
|
||||
}
|
||||
],
|
||||
"limitations": [
|
||||
"Baseline 522 passed before final common.js const/layout cleanup; affected editor and site consumers then revalidated.",
|
||||
"Common desktop UI remains JavaScript and is explicitly assigned to SITE-03.",
|
||||
"No advertising-service, real device/BFCache, full VitePress/docs/document build or remote CI acceptance.",
|
||||
"Cancellation test controls append; removing a classic script does not guarantee cancellation of already-started evaluation.",
|
||||
"No manual Chrome/iab session, push, translation request or publication."
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
# SITE-LOAD-01 文档示例加载与导航
|
||||
|
||||
起点 `76499e7a3e033c8350ff495ba8bfff4ca5c08d25`。从 SITE-03 分出浏览器加载
|
||||
与导航,保留父任务的 i18n/文档/LLM/翻译流程,并明确桌面剩余 UI 的 TS 迁移。
|
||||
没有修改核心/插件运行代码、公开类型、样式钩子、包入口、版本或锁文件。
|
||||
|
||||
## 实现与兼容边界
|
||||
|
||||
- `packages/artplayer-vitepress/browser/` 新增 TS loader、桌面桥接、移动入口和
|
||||
导航模块。README 解释生命周期、生成规则、已验证边界与剩余任务。原 mobile.js
|
||||
和 public/main.js 变为生成资产;新增桌面 loader.js 在 index.html 原引导链前
|
||||
加载。移动端内联同一模块,保持原页面和查询 URL。
|
||||
- 固定旧提交复现:移动 loadScript 失败不恢复 define;两次同时加载各自保存
|
||||
临时 define 后,Promise.all 成功也可能留下 undefined。新 loader 按输入顺序
|
||||
串行所有批次,成功绝对 URL 缓存、失败移除并可重试;CSS 保持顺序但不改 AMD。
|
||||
在成功、失败、append 抛错和取消时恢复原 define 描述符或原本不存在的状态。
|
||||
不兼容的不可变属性在插入前失败,不静默绕过。
|
||||
- dispose 拒绝等待项与未来调用并拆监听器/待加载元素。已加载元素仍归页面。
|
||||
移除 script 不保证浏览器取消已经开始的脚本求值;第三方不可逆全局副作用
|
||||
不承诺回滚。非 BFCache 的 pagehide 清理,persisted 页保留可恢复 loader。
|
||||
真实设备和 BFCache 行为没有计为通过。
|
||||
- 桌面保留 Monaco、Run、导入、存储和现有 cleanup/destroy 顺序,替换重复 loader。
|
||||
初始化代次阻止晚到的旧示例覆盖新 Run。example 仍优先于 code;移动/桌面默认
|
||||
示例仍是 mobile/index;HTTP 错误不作为代码执行。查询保留原始 `+`、最后重复
|
||||
参数和一次显式解码。移动示例在普通非严格函数作用域运行,不变成 ES module。
|
||||
- Run Code 编码 libs/code,支持子元素点击并处理缺失代码节点;localhost、
|
||||
127.0.0.1、IPv6 loopback 均用自身 host 的 HTTP 8082,非本地仍用旧官方编辑器。
|
||||
首次非中文访问保留现存英文对应页与 query/hash,缺对应页回英文首页;英文页
|
||||
不再自跳,lang-init 原 key/值保留,显式后续中文选择不被覆盖。存储不可用时
|
||||
保留请求页,防止循环。英文路径从实际 Markdown 清单生成,未虚构翻译页面。
|
||||
- common.js 原有 32 项目标 lint 错误已处理:const/布局、声明实际外部 globals,
|
||||
eval 仅针对编辑器原 Run 作用域保留定向说明。该旧 UI 文件纳入根 lint;未把
|
||||
它计为完整 TS 迁移。libUris 改 const 后,其实际加载列表测试同时支持 let/const。
|
||||
|
||||
## 工程与验证
|
||||
|
||||
无新依赖,复用固定 esbuild 生成 ES2020 经典脚本。build:site-assets/check:site-assets
|
||||
分别生成/只读核对三个资产,后者进入 CI;typecheck:site-assets 严格检查浏览器
|
||||
模块,生成 CLI 在 docs-tools 下 checkJs。root build:docs 先生成资产,直接 workspace
|
||||
VitePress 命令的编排仍属父任务;没有在本任务暗中请求翻译服务。
|
||||
|
||||
- 5 项新增 Node 回归验证旧问题、串行/去重/重试/取消、描述符边界、URL 与语言规则。
|
||||
最终连同编辑器、文档退出码、清单/示例回归共 13 项通过。完整 baseline 522
|
||||
通过(在最终 common.js 的 const/布局清理前;相关最终消费者已独立回归)。
|
||||
- 首轮三浏览器 15 项通过。扩展运行 20 通过/1 失败,唯一失败是 Firefox 在
|
||||
page fixture 创建时超时 20000ms,尚未进入测试代码;当时完整基线并行运行。
|
||||
不能据此断言唯一根因是 CPU。保留 trace/report,等基线完成后串行运行,不
|
||||
改 timeout/retry/skip;最终 24 通过(21 新加载/导航 + 3 Monaco 回归),0 跳过。
|
||||
- 浏览器实际访问 root/mobile 页面与本地 Monaco;移动播放推进、暂停、销毁;
|
||||
桌面依赖复用、example 优先、重复 Run 清理、旧响应隔离;原生脚本 404/重试
|
||||
和 AMD 恢复。取消测试控制 append 阶段,只证明回收/Promise,不证明取消已
|
||||
请求脚本的执行。Run Code 使用真实点击,语言重定向用受控 HTTPS 页面路由。
|
||||
- 根 lint 0 error/1 既有生成声明 warning;目标 lint、两套工具/浏览器严格类型、
|
||||
资产只读一致性、严格 Node24.21.0/Yarn1.22.22 工具链、CI 50 项通过。
|
||||
具体日志/源与产物/浏览器版本指纹见验证 JSON。
|
||||
|
||||
外部分析/广告脚本在自动化路线中为空响应,没有修改生产广告配置。未验证
|
||||
广告服务、所有 233 示例、真实设备、完整 VitePress 构建/生成 docs/document、
|
||||
遠端 CI/Pages/npm;没有手动 Chrome/iab 会话、推送或发布。此次测试不是这些
|
||||
范围的替代证据。SITE-03/04/05、EX-03 和包验收仍开放。
|
||||
|
||||
本任务单独提交并审计。回退提交可恢复原页面/脚本和根命令;会带回旧 define
|
||||
失败与乱序问题,应优先针对回归修复。修改 TS 后重新 build:site-assets,不手改
|
||||
生成资产;维护实际模块 README、任务、当前清单和独立变更记录。
|
||||
@@ -12,6 +12,8 @@
|
||||
| `yarn typecheck:react` / `yarn typecheck:vue` | 原 React TSX / Vue SFC 示例严格检查,ci:check 同时执行对应 lint |
|
||||
| `yarn typecheck:docs-tools` / `yarn check:docs-smoke` | 严格检查 TS 示例/声明生成器及 JS/MJS 门面;只读核对确定性生成的 readiness smoke,ci:check 执行 |
|
||||
| `yarn check:editor-types` | 只读核对全部编辑器声明、SDK notices 和实际 libUris;主 TS 5.9.3/历史 4.3.5 整组语义检查,ci:check 执行 |
|
||||
| `yarn build:site-assets` / `yarn check:site-assets` | 从站点 browser/ TS 生成三个经典脚本;check 只读,root build:docs 先生成;完整 VitePress 构建另行验收 |
|
||||
| `yarn typecheck:site-assets` | 严格检查站点 browser/ 模块;生成脚本由 typecheck:docs-tools 的 checkJs 覆盖;均进入 ci:check |
|
||||
| `yarn test:react-consumer` / `yarn test:vue-consumer` | 仓库外 tarball 安装、原框架示例、开发/生产三引擎;browser-smoke 执行并上传独立目录,本地证据不代替远端矩阵 |
|
||||
| `yarn test:unit` | 原播放/DASH 回归、同夹具的新旧公共契约与 JS/TS loader 验证 |
|
||||
| `yarn test:node` | test:unit 加工具链/文档构建回归,保留原 test:playback/test:dash-control 入口 |
|
||||
|
||||
+6
-4
@@ -2,9 +2,9 @@
|
||||
|
||||
> 由 tasks.json 生成。请修改数据后运行 `node refactor/scripts/plan.mjs --write`,不要手改本表。
|
||||
|
||||
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 240 项,范围 22 个包及工作区/示例。
|
||||
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 241 项,范围 22 个包及工作区/示例。
|
||||
|
||||
状态:todo 59 / doing 15 / blocked 0 / done 166 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
|
||||
状态:todo 59 / doing 15 / blocked 0 / done 167 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
|
||||
|
||||
前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
| artplayer-proxy-mediabunny | 1.2.0 | PKG-MB-01, PKG-MB-02, PKG-MB-03, PKG-MB-04, PKG-MB-05, PKG-MB-06, PKG-MB-07, PKG-MB-08, PKG-MB-09, PKG-MB-10 |
|
||||
| artplayer-tool-iframe | 1.1.0 | PKG-IFRAME-01, PKG-IFRAME-02, PKG-IFRAME-03, PKG-IFRAME-04, PKG-IFRAME-05, PKG-IFRAME-06 |
|
||||
| artplayer-tool-thumbnail | 4.4.0 | PKG-TOOL-THUMB-01, PKG-TOOL-THUMB-02, PKG-TOOL-THUMB-03, PKG-TOOL-THUMB-04, PKG-TOOL-THUMB-05, PKG-TOOL-THUMB-06 |
|
||||
| artplayer-vitepress | 1.1.0 | SITE-01, SITE-SMOKE-01, SITE-02, SITE-03, SITE-04, SITE-05, SITE-06, SITE-07 |
|
||||
| artplayer-vitepress | 1.1.0 | SITE-01, SITE-SMOKE-01, SITE-02, SITE-LOAD-01, SITE-03, SITE-04, SITE-05, SITE-06, SITE-07 |
|
||||
|
||||
## 0 规划
|
||||
|
||||
@@ -383,7 +383,8 @@
|
||||
| SITE-01 | artplayer-vitepress, workspace<br>清点文档/示例/生成链 | BASE-04, BASE-05 | 中英文文档、插件页面、demo URL、编辑器声明与生成目录清单;六类 HTML 入口、prod/libs/code/example 加载行为及移动重定向 | 所有公开 API/插件有对应页面或明确补充任务;核实 BASE-DEMO-01 的历史 thumbnail 插件来源及 29 示例/36 HTML 路径;明确 BASE-05 所记录站点实际分发与未设 private 的 manifest 意图;接续 VENDOR-05/06/07/08 和 BASE-SITE-01/BASE-MEDIA-01,核对字体、Monaco、vConsole、console bundle 与样本来源及分发范围 | M | done |
|
||||
| SITE-SMOKE-01 | artplayer-vitepress, workspace<br>迁移示例生成器并验证真实就绪与清理 | SITE-01 | TS Markdown 解析/生成与浏览器运行模块;旧命令和 URL、稳定实例就绪 smoke、错误与资源清理 | 复现旧 malformed 死循环并保证有限失败;保留全部既有示例内容、生成确定且 check 只读;不再以 100ms 作为成功,验证原生就绪、异常、取消与清理;三浏览器检查,明确延迟交互与全部 233 示例仍需 EX-03 | M | done |
|
||||
| SITE-02 | artplayer-vitepress<br>整理声明与示例生成器 | SITE-01, ENG-04, ENG-06, SITE-SMOKE-01 | build-ts/build-test 生成链的可验证 TS 脚本 | 不靠字符串拼接掩盖声明错误,生成示例有真实断言或仅标 smoke;替换固定 100ms 成功判定,明确异步错误、清理和生成覆盖限制;坏代码块解析必须终止,覆盖 malformed 分支不推进 regexp 的回归 | M | done |
|
||||
| SITE-03 | artplayer-vitepress<br>整理 i18n/文档/LLM 生成流程 | SITE-02 | build-i18n/build-docs/build-llm/trans-docs 的任务边界和错误处理 | 原命令兼容、生成可复现,翻译步骤不隐式运行远程服务;覆盖移动 loader 失败恢复 define、脚本依赖顺序、localhost/127.0.0.1 Run Code 目标和语言重定向 | M | todo |
|
||||
| SITE-LOAD-01 | artplayer-vitepress, workspace<br>修复文档示例加载顺序与导航边界 | SITE-02 | 共享 TS loader、移动入口与 Run Code/语言路由,保留 URL 和使用方式 | 旧版复现 define 丢失和依赖乱序;真实浏览器验证成功/失败恢复、顺序、去重、编码/优先级及 localhost/127 路由和语言跳转;不以此替代 SITE-03 构建/翻译流程 | M | done |
|
||||
| SITE-03 | artplayer-vitepress<br>整理 i18n/文档/LLM 生成流程 | SITE-02, SITE-LOAD-01 | build-i18n/build-docs/build-llm/trans-docs 的任务边界和错误处理;桌面 common.js 自有 UI 的 TS 迁移与模块拆分 | 原命令兼容、生成可复现,翻译步骤不隐式运行远程服务;覆盖移动 loader 失败恢复 define、脚本依赖顺序、localhost/127.0.0.1 Run Code 目标和语言重定向;桌面剩余 UI 完成 TS 职责拆分并回归运行、导入与持久设置 | M | todo |
|
||||
| SITE-04 | artplayer-vitepress<br>交叉核对逐包持续维护的文档 | CORE-21, SITE-03, PKG-CHAPTER-04, PKG-AMBILIGHT-04, PKG-AUDIO-04, PKG-AUTO-THUMB-04, PKG-VTT-THUMB-04, PKG-HLS-04, PKG-DASH-04, PKG-MULTI-SUB-04, PKG-JASSUB-04, PKG-MASK-04, PKG-ASR-04, PKG-ADS-04, PKG-VAST-04, PKG-CAST-04, PKG-DPIP-04, PKG-CANVAS-04, PKG-IFRAME-04, PKG-TOOL-THUMB-04, PKG-DANMUKU-06, PKG-MB-08 | 已随实现更新的中文/英文 API、包内实现地图、旧 JS 示例及已知能力限制的全包核对 | 未把缺环境的能力写成已验证,静态核对不等待设备任务;最终 demo 仍由 EX-03 验收;按 SITE-01 声明成员/候选标题清单逐项语义核对,补齐缺失的双语插件说明和 Danmuku 英文入口 | M | todo |
|
||||
| SITE-05 | artplayer-vitepress<br>构建文档站和验证链接/示例 | SITE-04, EX-01, EX-02, SITE-07 | VitePress 构建、链接与嵌入 demo 检查 | 文档构建、链接、嵌入路径与声明注入通过;真实完整 demo 保留 EX-03 独立门槛;核对 ENG-PM-01 登记的搜索 peer 范围和真实搜索行为 | M | todo |
|
||||
| SITE-06 | artplayer-vitepress<br>文档站交付验收 | SITE-05 | 维护指南和站点变更记录 | 未手改 generated 目录,旧 URL 可用、部署与检查分离 | M | todo |
|
||||
@@ -609,6 +610,7 @@
|
||||
- SITE-01: [记录](site-inventory.md) [记录](baselines/site-inventory.json) [记录](baselines/site-provenance.json) [记录](baselines/demo-additions.json) [记录](changes/2026-09-14-SITE-01-site-inventory.md) [记录](baselines/site-inventory-validation.json)
|
||||
- SITE-SMOKE-01: [记录](changes/2026-09-14-SITE-SMOKE-01-documentation-smoke.md) [记录](baselines/docs-smoke-validation.json) [记录](scripts/docs-smoke.test.mjs)
|
||||
- SITE-02: [记录](changes/2026-09-14-SITE-02-editor-declarations.md) [记录](baselines/editor-declarations-validation.json) [记录](changes/2026-09-14-SITE-SMOKE-01-documentation-smoke.md)
|
||||
- SITE-LOAD-01: [记录](changes/2026-09-14-SITE-LOAD-01-site-loading.md) [记录](baselines/site-loading-validation.json)
|
||||
- SITE-07: [记录](site-inventory.md) [记录](baselines/site-provenance.json)
|
||||
- EX-01: [记录](changes/2026-09-14-EX-01-react-consumer.md) [记录](baselines/react-consumer-validation.json) [记录](scripts/react-consumer.mjs)
|
||||
- EX-02: [记录](changes/2026-09-14-EX-02-vue-consumer.md) [记录](baselines/vue-consumer-validation.json) [记录](scripts/vue-consumer.mjs)
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
# 进度与证据
|
||||
|
||||
## SITE-LOAD-01 示例加载与导航完成
|
||||
|
||||
从 SITE-03 拆出共享 TS loader、移动入口与 Run Code/语言导航;恢复 define 原
|
||||
描述符,串行依赖/批次并缓存成功项、重试失败项,阻止旧示例晚到覆盖新 Run。
|
||||
保留原 URL、example 优先、Run cleanup 和页面使用方式。生成三个 ES2020
|
||||
资产,root build:docs 先生成;浏览器类型、生成一致性与 common.js lint 已纳入
|
||||
CI。13 项最终目标测试、522 项 baseline、50 项 CI 回归通过。三浏览器最终
|
||||
24 项通过(21 新项 + 3 Monaco);一次 Firefox page fixture 创建超时保留报告,
|
||||
其后等基线结束串行复验,没有扩大超时/重试取绿。类型、只读资产、工具链、
|
||||
lint 均通过(根 lint 1 条既有 warning)。见
|
||||
[变更](changes/2026-09-14-SITE-LOAD-01-site-loading.md)和
|
||||
[证据](baselines/site-loading-validation.json)。当前 241 项:167 done、15 doing、
|
||||
59 todo。SITE-03 保留生成/翻译流程与桌面剩余 UI 的 TS 迁移;未验证完整
|
||||
VitePress 构建/设备/广告服务/远端 CI。下一步接续 SITE-03,不改变 VAST 默认
|
||||
行为和 Auto Thumbnail 首帧的开放状态。仅本地独立提交,无推送或发布。
|
||||
|
||||
## SITE-02 编辑器声明生成链完成
|
||||
|
||||
build:ts 与 core/plugin 转换器完成 TS 模块拆分,原 JS/MJS 命令/导入路径保留。
|
||||
|
||||
@@ -78,7 +78,7 @@ export function captureSiteInventory() {
|
||||
pages: demo.pages,
|
||||
baselinePaths: { examplesAdded: demo.examples.filter(row => !historical.examples.some(old => old.source === row.source)).map(row => row.source), examplesRemoved: historical.examples.filter(row => !demo.examples.some(now => now.source === row.source)).map(row => row.source), htmlAdded: demo.pages.filter(row => !historical.pages.some(old => old.source === row.source)).map(row => row.source), htmlRemoved: historical.pages.filter(row => !demo.pages.some(now => now.source === row.source)).map(row => row.source) },
|
||||
editorDeclarations: [...read('docs/assets/js/common.js').matchAll(/'\.\/assets\/ts\/([^']+\.d\.ts)'/g)].map(match => ({ file: `docs/assets/ts/${match[1]}`, exists: fs.existsSync(path.join(root, 'docs/assets/ts', match[1])), owner: 'SITE-02' })),
|
||||
scripts: [...scriptFiles, ...files('scripts/docs-smoke').filter(file => file.endsWith('.ts')), ...files('scripts/editor-declarations').filter(file => file.endsWith('.ts'))].map(file => ({ file, sha256Lf: hash(read(file)) })),
|
||||
scripts: [...scriptFiles, 'scripts/build-site-assets.mjs', ...files('scripts/docs-smoke').filter(file => file.endsWith('.ts')), ...files('scripts/editor-declarations').filter(file => file.endsWith('.ts')), ...files('packages/artplayer-vitepress/browser').filter(file => file.endsWith('.ts'))].map(file => ({ file, sha256Lf: hash(read(file)) })),
|
||||
generationCommands: Object.fromEntries(Object.entries(json('package.json').scripts).filter(([name]) => /^(?:build:(?:types|ts|test|i18n|docs|llm|all)|ci:build)$/.test(name))),
|
||||
siteManifest: json('packages/artplayer-vitepress/package.json'),
|
||||
assets,
|
||||
|
||||
@@ -8,6 +8,10 @@ SITE-SMOKE-01 后续已将 build:test 拆为 TS 解析、生成和浏览器运
|
||||
不再走删除 import 的文本回退。见[模块说明](../scripts/editor-declarations/README.md)。
|
||||
以下 SITE-01 对这些旧生成问题的描述是历史发现,站点/编辑器交互仍需后续验收。
|
||||
|
||||
SITE-LOAD-01 后续修复并抽取共享 loader、移动入口和 Run Code/语言导航,TS
|
||||
来源及生成规则见[浏览器模块](../packages/artplayer-vitepress/browser/README.md)。
|
||||
保留本站点生成/翻译流程和桌面剩余 UI 给 SITE-03,完整内容/页面验收给 SITE-04/05。
|
||||
|
||||
SITE-01 在 `d62ab13a35c756ea567c426d4fbe00d893dd7e2b` 后核对当前源码。
|
||||
可重跑清单见 [site-inventory.json](baselines/site-inventory.json);它登记
|
||||
22 包、27 Markdown、30 示例、36 HTML、963 条声明成员和 204 个资产指纹。
|
||||
|
||||
+24
-3
@@ -4148,6 +4148,26 @@
|
||||
"changes/2026-09-14-SITE-SMOKE-01-documentation-smoke.md"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "SITE-LOAD-01",
|
||||
"phase": "6 文档与消费者",
|
||||
"title": "修复文档示例加载顺序与导航边界",
|
||||
"scope": [
|
||||
"artplayer-vitepress",
|
||||
"workspace"
|
||||
],
|
||||
"dependsOn": [
|
||||
"SITE-02"
|
||||
],
|
||||
"status": "done",
|
||||
"risk": "M",
|
||||
"deliverable": "共享 TS loader、移动入口与 Run Code/语言路由,保留 URL 和使用方式",
|
||||
"acceptance": "旧版复现 define 丢失和依赖乱序;真实浏览器验证成功/失败恢复、顺序、去重、编码/优先级及 localhost/127 路由和语言跳转;不以此替代 SITE-03 构建/翻译流程",
|
||||
"evidence": [
|
||||
"changes/2026-09-14-SITE-LOAD-01-site-loading.md",
|
||||
"baselines/site-loading-validation.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "SITE-03",
|
||||
"phase": "6 文档与消费者",
|
||||
@@ -4156,12 +4176,13 @@
|
||||
"artplayer-vitepress"
|
||||
],
|
||||
"dependsOn": [
|
||||
"SITE-02"
|
||||
"SITE-02",
|
||||
"SITE-LOAD-01"
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "M",
|
||||
"deliverable": "build-i18n/build-docs/build-llm/trans-docs 的任务边界和错误处理",
|
||||
"acceptance": "原命令兼容、生成可复现,翻译步骤不隐式运行远程服务;覆盖移动 loader 失败恢复 define、脚本依赖顺序、localhost/127.0.0.1 Run Code 目标和语言重定向",
|
||||
"deliverable": "build-i18n/build-docs/build-llm/trans-docs 的任务边界和错误处理;桌面 common.js 自有 UI 的 TS 迁移与模块拆分",
|
||||
"acceptance": "原命令兼容、生成可复现,翻译步骤不隐式运行远程服务;覆盖移动 loader 失败恢复 define、脚本依赖顺序、localhost/127.0.0.1 Run Code 目标和语言重定向;桌面剩余 UI 完成 TS 职责拆分并回归运行、导入与持久设置",
|
||||
"evidence": []
|
||||
},
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user