Files
ArtPlayer/refactor/baselines/setting-manager-validation.json
T

544 lines
19 KiB
JSON

{
"task": "CORE-14",
"status": "partial",
"date": "2026-09-11",
"node": "v24.21.0",
"scope": "Typed specialized manager, root event ownership, animated layout recovery, add failure unlink and removal cleanup",
"files": {
"packages/artplayer/src/setting/aspectRatio.ts": "a16eb58fadf77f0a9009cf162d957ffd59d9b8fde83cc193d510fd642e3456cb",
"packages/artplayer/src/setting/events.ts": "f7a3347ca146232caf2a8c9a5a18731cf7bc91dca4cd36370e0265c6eb70df53",
"packages/artplayer/src/setting/flip.ts": "e72a4ae33300d9e48880897a4f85a04fa6d9a5fff7b06ecaf9081cfb1bb14404",
"packages/artplayer/src/setting/index.ts": "5041441ae24cb3610fc28dba563fb3904dd007710423175373b36f47eefb95b2",
"packages/artplayer/src/setting/layout.ts": "584604e8fffaeaf1d633d1ed45e64d94595c2a56976e3a3f7ede01839b83a37d",
"packages/artplayer/src/setting/model.ts": "944006a0191b675a8d76605a0544d81409e1e63224332f4b56de43a5f1a3a173",
"packages/artplayer/src/setting/playbackRate.ts": "2e70e0d2a33cb0ec9fcdd6d22424979fed7b2e01f87015d6be4e520d5cf4e88a",
"packages/artplayer/src/setting/render.ts": "256c2561d28bac2e0af8bb81b971f62c180063928ecdd70782b6e0d035488d8f",
"packages/artplayer/src/setting/resources.ts": "4b1a9507ecb13833fe80e6afc5d8ee315bdd4aab7b4fe761491472fad937d71d",
"packages/artplayer/src/setting/selection.ts": "7664f73e31837fd0b8d22f7eb401877f04ab7fe3a972e4cb958e0f817ed3a92c",
"packages/artplayer/src/setting/subtitleOffset.ts": "86513835d4e542ac39e9d551507473e3e14c71fd0d5ea725267008ecbff6ab83",
"packages/artplayer/src/setting/types.ts": "12930e46c43b66803521403759dbdef658860e13006f8ac6f917d2fb1be96b5c",
"test/setting-model.test.js": "931bee643bea3cbd93927f7c9739a1bf559da5aaf58783d19b6898a092ba56bc",
"test/setting-layout.test.js": "a7da46075bd478182559b9af4817b128eb9f9c219b6032d77fd437370f2a3563",
"test/setting-resources.test.js": "8fbc541cfede17cc63a7c54f630fcad2eba91ad780172c56f8fbe774d1586cc8",
"test/types/setting-model.ts": "ba024ffeae26428d06f07f98f62f211db94ef8b259251f9f424a4203f1187c7b",
"test/types/setting-manager.ts": "27e3687a89909ea6f97aa842347cb8fbcd6f8ce5cf779a24d5dabad3eff8dc5c",
"test/browser/setting.spec.js": "b36e91e4ba96138db482f894a57307cb56e0f58d624861ff21841784275b9526",
"package.json": "82459e37eb54391bb73ebd84b1b27a3c37750d7cc2cd24607fc8f983f7342960"
},
"ci": {
"passed": 194,
"unit": 165,
"engineering": 4,
"baseline": 25,
"strictSourceFiles": 122,
"logSha256": "fdd702b63a53c1d973a1eca7010bb19181e7182596a8b0f86a8e557398c9db14"
},
"browser": {
"stats": {
"startTime": "2026-09-10T21:45:56.846Z",
"duration": 20664.667999999998,
"expected": 72,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"reportSha256": "9b38aef6211411133a08c75d7ca782d146331546d66833731cc6541394f950d0",
"candidate": {
"source": {
"kind": "workspace-build",
"entry": "packages\\artplayer\\src\\index.js"
},
"sha256": "dec3a08b4c185499fdddfd0ba91c33b2bbfb4cbba62b64b63c6ce1d52ad30e34",
"bytes": 256143
},
"versions": {
"chromium": "153.0.8010.12",
"firefox": "155.0",
"webkit": "26.6"
},
"cases": [
{
"title": "published: builtin setting subscriptions are replaced and removed with their row",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "published: deferred setting mounts belong to the rendered item generation",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "published: removed setting subtrees release child listeners and cached panels",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "published: setting button results cannot overwrite an updated or newer item",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "published: sibling setting selections share the parent result generation",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "published: setting callback rejection retains its original failure identity",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "published: a wide nested setting panel fits the narrow player and remains selectable",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "published: setting registry retains item returns and hidden tree bindings",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "published: moved setting items bind to their current parent and panel",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "published: automatic setting names and explicit nested names have an explicit baseline",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: builtin setting subscriptions are replaced and removed with their row",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: deferred setting mounts belong to the rendered item generation",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: removed setting subtrees release child listeners and cached panels",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting button results cannot overwrite an updated or newer item",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: sibling setting selections share the parent result generation",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting callback rejection retains its original failure identity",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: a wide nested setting panel fits the narrow player and remains selectable",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting registry retains item returns and hidden tree bindings",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: moved setting items bind to their current parent and panel",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: automatic setting names and explicit nested names have an explicit baseline",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: open settings follow container and control height changes with fallback=false",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: open settings follow container and control height changes with fallback=true",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: failed setting additions leave existing rows usable and allow retry",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting removal finishes DOM cleanup when the event-removal hook throws",
"engine": "chromium",
"status": "passed",
"retry": 0
},
{
"title": "published: builtin setting subscriptions are replaced and removed with their row",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "published: deferred setting mounts belong to the rendered item generation",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "published: removed setting subtrees release child listeners and cached panels",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "published: setting button results cannot overwrite an updated or newer item",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "published: sibling setting selections share the parent result generation",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "published: setting callback rejection retains its original failure identity",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "published: a wide nested setting panel fits the narrow player and remains selectable",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "published: setting registry retains item returns and hidden tree bindings",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "published: moved setting items bind to their current parent and panel",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "published: automatic setting names and explicit nested names have an explicit baseline",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: builtin setting subscriptions are replaced and removed with their row",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: deferred setting mounts belong to the rendered item generation",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: removed setting subtrees release child listeners and cached panels",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting button results cannot overwrite an updated or newer item",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: sibling setting selections share the parent result generation",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting callback rejection retains its original failure identity",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: a wide nested setting panel fits the narrow player and remains selectable",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting registry retains item returns and hidden tree bindings",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: moved setting items bind to their current parent and panel",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: automatic setting names and explicit nested names have an explicit baseline",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: open settings follow container and control height changes with fallback=false",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: open settings follow container and control height changes with fallback=true",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: failed setting additions leave existing rows usable and allow retry",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting removal finishes DOM cleanup when the event-removal hook throws",
"engine": "firefox",
"status": "passed",
"retry": 0
},
{
"title": "published: builtin setting subscriptions are replaced and removed with their row",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "published: deferred setting mounts belong to the rendered item generation",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "published: removed setting subtrees release child listeners and cached panels",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "published: setting button results cannot overwrite an updated or newer item",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "published: sibling setting selections share the parent result generation",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "published: setting callback rejection retains its original failure identity",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "published: a wide nested setting panel fits the narrow player and remains selectable",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "published: setting registry retains item returns and hidden tree bindings",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "published: moved setting items bind to their current parent and panel",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "published: automatic setting names and explicit nested names have an explicit baseline",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: builtin setting subscriptions are replaced and removed with their row",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: deferred setting mounts belong to the rendered item generation",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: removed setting subtrees release child listeners and cached panels",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting button results cannot overwrite an updated or newer item",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: sibling setting selections share the parent result generation",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting callback rejection retains its original failure identity",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: a wide nested setting panel fits the narrow player and remains selectable",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting registry retains item returns and hidden tree bindings",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: moved setting items bind to their current parent and panel",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: automatic setting names and explicit nested names have an explicit baseline",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: open settings follow container and control height changes with fallback=false",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: open settings follow container and control height changes with fallback=true",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: failed setting additions leave existing rows usable and allow retry",
"engine": "webkit",
"status": "passed",
"retry": 0
},
{
"title": "candidate: setting removal finishes DOM cleanup when the event-removal hook throws",
"engine": "webkit",
"status": "passed",
"retry": 0
}
]
},
"failures": [
{
"file": "refactor/.cache/core14-manager-browser.json",
"sha256": "9319f4023678b3cec40d5dcc617a86bd4ba1a5cb17e43fc485d576bf9ea645ed",
"stats": {
"startTime": "2026-09-10T21:34:14.601Z",
"duration": 30176.837,
"expected": 63,
"skipped": 0,
"unexpected": 3,
"flaky": 0
},
"reason": "ResizeObserver reads animated bottom before the final control-height offset"
},
{
"file": "refactor/.cache/core14-manager-layout-browser.json",
"sha256": "08dc1621f4e475f1f7b7e74e37d985330912bf8844316821d964b967deecc31f",
"stats": {
"startTime": "2026-09-10T21:40:47.436Z",
"duration": 29928.708,
"expected": 63,
"skipped": 0,
"unexpected": 3,
"flaky": 0
},
"reason": "Style observation alone still reads the transition starting value"
},
{
"file": "refactor/.cache/core14-manager-recovery-browser.json",
"sha256": "b519d98e1248894c606c6cf4faa54cfcda5f3da3a7d54874d9833527fb94fa29",
"stats": {
"startTime": "2026-09-10T21:44:13.564Z",
"duration": 20791.101000000002,
"expected": 69,
"skipped": 0,
"unexpected": 3,
"flaky": 0
},
"reason": "Fault injection used unregistered callbacks, which real Events.remove does not invoke"
}
],
"limits": [
"Source fixture validation only; final CORE-14 installed UMD and legacy validation remains outstanding",
"Transactional update and panel-render rollback, independent header cleanup and reentry remain unfinished",
"Cross-instance sharing/reuse, switch/range, long text and mobile/rotation still need coverage",
"No generic rollback of arbitrary getter/setter or Proxy side effects; failed new input may retain hidden metadata",
"Without ResizeObserver, external container resize requires the existing window/core resize signal",
"BASE-DOM-02/06/07 and BASE-LIFE-12/13/14 remain open"
]
}