B01 delivery 02 offline evidence Code SHA: 1ed71b63b5af9a98b942ff47c66df5799d4d2c8a Base: ddd677bae3c43a5514eb40f7a1d9749fdf389115 Linux x64; Node 24.19.0; npm 11.9.0; jsdom 30.1.3 No model/SDK process or original app was started. Native style/layout acceptance is not claimed. Token failure sets before and after are equal (6 pre-existing failures); baseline unchanged. First intermediate build found a TS narrowing error; fixed before successful final build. Independent review repeated DOM tests and found no blocking production regression. ===== alignment.txt: exit 0 ===== npm warn Unknown env config "http-proxy". This will stop working in the next major version of npm. > ycode@0.0.7 test:alignment > node scripts/run-alignment-regression.mjs PASS model alignment: fresh/legacy migration, new/edit/default/delete/reload, valid selection (offline host fixtures) PASS model settings: deferred owner switch, rename mapping, addition selection, empty deletion, immutable history PASS session factory: first-send preference, mode preservation, invalid permission rejection (isolated ports) {"historyMessages":10000,"bytes":747781,"parseMs":3.751840999999999,"storeHydrationMs":0.13198400000000277,"note":"Node parsing/store benchmark only, not browser rendering or Windows IPC performance"} session-composer-alignment: loading/cache/retry/races/model/permissions/modes/SSR passed alignment-conversation: local groups, original expanded order, question projection and truthful status passed A01 native MessageBubble identity aliases, immutable inputs and ordinary raw output passed A01 imported native card, linked dedup and unknown-position compatibility passed question-answer-shell: structural and recovered CSS contracts passed question-answer-shell: DOM hierarchy, controls linkage, click, Enter, Space and inert contracts passed Runtime progress, session-grant scope and approval lifecycle regressions passed Permission intercept static rendering passed; interactive keyboard/focus remains UI acceptance Claude host approval policy unit checks passed (no SDK process/application/matching verification) Mock SDK replay lifecycle passed: fail closed, retry, session isolation, independent mode guard task popconfirm DOM regression: 34 checks passed (jsdom, not pixel validation) question-interaction: 24 DOM behavioral checks passed question-identity: 30 A01 DOM checks passed (not Electron/pixel/SDK acceptance) completed-fold-nested: real question/tool/thinking/local-summary remount, event, keyboard and identity contracts passed completed-fold-native-identity: real reducer done correction, native IDs, insertion/reorder, repeated outer toggles, message isolation and legacy fallback passed Permission intercept DOM: 14 checks passed (not pixel/SDK verification) {"checks":37,"passed":true,"scope":"Isolated React DOM and CSS contracts; no native keyboard/layout/pixel acceptance"} npm notice npm notice New major version of npm available! 11.9.0 -> 12.2.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.2.0 npm notice To update run: npm install -g npm@12.2.0 npm notice ===== conversation.txt: exit 0 ===== npm warn Unknown env config "http-proxy". This will stop working in the next major version of npm. > ycode@0.0.7 test:conversation > esbuild scripts/conversation-renderer-regression.tsx scripts/composer-regression.tsx scripts/completed-fold-regression.tsx scripts/streaming-footer-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=text --out-extension:.js=.cjs --outdir=.tmp/conversation-tests --log-level=error && node .tmp/conversation-tests/conversation-renderer-regression.cjs && node .tmp/conversation-tests/composer-regression.cjs && node .tmp/conversation-tests/streaming-footer-regression.cjs && node .tmp/conversation-tests/completed-fold-regression.cjs Conversation specialized renderer SSR regression checks passed Composer/message action regression cases passed streaming-footer-regression: persistent stream status, delayed/paused rotation, brand/locale mapping, source CSS, and completed model footer passed Completed-fold model and SSR regression checks passed ===== import.txt: exit 0 ===== npm warn Unknown env config "http-proxy". This will stop working in the next major version of npm. > ycode@0.0.7 test:workbuddy-import > esbuild scripts/workbuddy-import-regression.ts --bundle --platform=node --format=esm --outfile=.tmp/workbuddy-import-regression.mjs --log-level=warning && node .tmp/workbuddy-import-regression.mjs WorkBuddy import regression passed ===== artifacts.txt: exit 0 ===== npm warn Unknown env config "http-proxy". This will stop working in the next major version of npm. > ycode@0.0.7 test:artifacts > esbuild scripts/artifact-diff-regression.ts scripts/artifact-renderer-regression.tsx scripts/specialized-block-regression.tsx --bundle --platform=node --format=cjs --jsx=automatic --loader:.css=empty --out-extension:.js=.cjs --outdir=.tmp/artifact-tests --log-level=warning && node .tmp/artifact-tests/artifact-diff-regression.cjs && node .tmp/artifact-tests/artifact-renderer-regression.cjs && node .tmp/artifact-tests/specialized-block-regression.cjs Artifact diff recovery regression checks passed Artifact routing, content loading, full write projection and renderer regressions passed Specialized block icon and label SSR regression checks passed ===== build.txt: exit 0 ===== [Tail of successful full build; includes prior typecheck in command] out/renderer/assets/vue-vine-DXhYlaTf-DTauGW8s.js 201.27 kB out/renderer/assets/SourceSelect-DrNU8YnZ.js 203.20 kB out/renderer/assets/chunk-4HAMMTFA-BEFC_AJa.js 210.32 kB out/renderer/assets/swimlanes-42K2YHIH-Bp72q37Z.js 265.51 kB out/renderer/assets/wolfram-BVoTES0L-6ikJLWGF.js 267.14 kB out/renderer/assets/chunk-DU6HZSFF-DPu5LxXf.js 271.07 kB out/renderer/assets/architectureDiagram-5GKGNRK7-DAeFXfK3.js 318.23 kB out/renderer/assets/katex-Y9ra-ykP.js 497.35 kB out/renderer/assets/texmath-Bkeg3ZLn.js 594.25 kB out/renderer/assets/wasm-CVjZL0jK-2Bi6p3c3.js 622.62 kB out/renderer/assets/cpp-9jHBA231-CtHklR8a.js 626.73 kB out/renderer/assets/app-BYh1ERuc.js 675.57 kB out/renderer/assets/emacs-lisp-DjtOxg4j-CUUa7aOE.js 780.06 kB out/renderer/assets/cytoscape.esm-bVGYt-iW.js 869.69 kB out/renderer/assets/ArtifactPierreDiff-D5xhRc5y.js 1,119.58 kB out/renderer/assets/chunk-FOHPRMQF-BCllzKJD.js 1,154.18 kB out/renderer/assets/index-lmA4yj_k.js 3,760.12 kB out/renderer/assets/editor.api2-dPwET-7w-BYIQ9bT3.js 4,889.23 kB ✓ built in 2.08s npm notice npm notice New major version of npm available! 11.9.0 -> 12.2.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.2.0 npm notice To update run: npm install -g npm@12.2.0 npm notice ===== fold-before.txt: exit 0 ===== npm warn Unknown env config "http-proxy". This will stop working in the next major version of npm. > ycode@0.0.7 test:fold-summary > node scripts/rea/recovered-fold-summary-regression.mjs Recovered fold-summary closure regression passed (descriptor aliases, object selection, states, topics and labels). ===== tokens-before.txt: exit 1 ===== npm warn Unknown env config "http-proxy". This will stop working in the next major version of npm. > ycode@0.0.7 check:tokens > node scripts/check-design-tokens.mjs 设计 token 漂移检查(静态) 扫描:src/renderer/src 共 367 个文件(用时 49 ms) baseline:scripts/design-token-baseline.json(334 个文件) 门禁分类:adapter 8 | core 6 | local 279(合计 293 个文件) 合计:裸 hex=611 裸 px=2682 !important=6 --wb-* 定义=525 var(--yc-*) 使用=1642 var(--wb-*) 使用=1203 非门禁分类:vendor 2 | recovered 22 | source 47 | tokenSource 3(合计 74 个文件,仅记录不阻塞) 合计:裸 hex=10642 裸 px=13642 !important=920 --wb-* 定义=17966 var(--yc-*) 使用=77 var(--wb-*) 使用=19638 非门禁相对 baseline:文件 +0;裸 hex +78 裸 px +64 !important +0 --wb-* 定义 +0 var(--yc-*) 使用 +22 var(--wb-*) 使用 -120 结果:失败,共 6 项: [新增门禁文件] src/renderer/src/capabilities/recommended-flow.css(local):裸 px=22 [新增门禁文件] src/renderer/src/capabilities/skill-detail-shell.css(local):裸 px=21 [回归] src/renderer/src/capabilities/skills-host.css(local):裸 px 25 → 46(+21) [新增门禁文件] src/renderer/src/workbuddy/composer/capability-picker.css(local):裸 hex=26,裸 px=48 [回归] src/renderer/src/workbuddy/composer/composer.css(local):裸 hex 23 → 38(+15);裸 px 83 → 139(+56) [新增门禁文件] src/renderer/src/workbuddy/composer/prompt-queue.css(local):裸 hex=8,裸 px=35 提示:确认变更符合预期后运行 `node scripts/check-design-tokens.mjs --update-baseline` 刷新 baseline; 否则请改用 --yc-* token、复用现有值,或去掉重复的 --wb-* 定义。 提示(不失败,仅记录):3 个门禁文件 token 使用数上升: src/renderer/src/capabilities/skills-host.css(local):var(--wb-*) 使用 12 → 19(+7) src/renderer/src/workbuddy/composer/composer.css(local):var(--yc-*) 使用 35 → 47(+12);var(--wb-*) 使用 0 → 1(+1) src/renderer/src/workbuddy/conversation/conversation.css(local):var(--yc-*) 使用 0 → 4(+4) 提示(不失败):baseline 中 8 个文件已不存在:src/renderer/src/components/ReportedRunUsage.tsx;src/renderer/src/workbuddy/subagents/SourceMemberIcon.tsx;src/renderer/src/workbuddy/subagents/SubagentCollaboration.tsx;src/renderer/src/workbuddy/subagents/SubagentDetailPanel.tsx;src/renderer/src/workbuddy/subagents/adapters.css;src/renderer/src/workbuddy/subagents/member-view.ts;src/renderer/src/workbuddy/subagents/source.css;src/renderer/src/workbuddy/subagents/theme.css 提示:新增门禁文件 36 个且无受控计数(允许):src/renderer/src/capabilities/CapabilityMaintenance.tsx(local);src/renderer/src/capabilities/RecommendedSkills.tsx(local);src/renderer/src/capabilities/SkillAvatar.tsx(local);src/renderer/src/capabilities/SkillDetailShell.tsx(local);src/renderer/src/capabilities/SkillModalPortal.tsx(local);src/renderer/src/capabilities/skill-modal-focus.ts(local);src/renderer/src/components/SessionLoading.tsx(local);src/renderer/src/components/TaskPopconfirm.tsx(local);src/renderer/src/components/session-loading.css(local);src/renderer/src/components/task-popconfirm.css(local);src/renderer/src/components/updates/UpdateSidebarCard.tsx(local);src/renderer/src/components/updates/update-ui-model.ts(local);src/renderer/src/components/updates/update-ui-store.ts(local);src/renderer/src/components/updates/updates-ui.css(local);src/renderer/src/ui/Button.tsx(local);src/renderer/src/ui/IconButton.tsx(local);src/renderer/src/ui/Input.tsx(local);src/renderer/src/ui/Popover.tsx(local);src/renderer/src/ui/Select.tsx(local);src/renderer/src/ui/Switch.tsx(local);…(还有 16 项,详见 --json) ===== tokens-after.txt: exit 1 ===== npm warn Unknown env config "http-proxy". This will stop working in the next major version of npm. > ycode@0.0.7 check:tokens > node scripts/check-design-tokens.mjs 设计 token 漂移检查(静态) 扫描:src/renderer/src 共 367 个文件(用时 48 ms) baseline:scripts/design-token-baseline.json(334 个文件) 门禁分类:adapter 8 | core 6 | local 279(合计 293 个文件) 合计:裸 hex=611 裸 px=2682 !important=6 --wb-* 定义=525 var(--yc-*) 使用=1642 var(--wb-*) 使用=1201 非门禁分类:vendor 2 | recovered 22 | source 47 | tokenSource 3(合计 74 个文件,仅记录不阻塞) 合计:裸 hex=10642 裸 px=13642 !important=920 --wb-* 定义=17966 var(--yc-*) 使用=77 var(--wb-*) 使用=19638 非门禁相对 baseline:文件 +0;裸 hex +78 裸 px +64 !important +0 --wb-* 定义 +0 var(--yc-*) 使用 +22 var(--wb-*) 使用 -120 结果:失败,共 6 项: [新增门禁文件] src/renderer/src/capabilities/recommended-flow.css(local):裸 px=22 [新增门禁文件] src/renderer/src/capabilities/skill-detail-shell.css(local):裸 px=21 [回归] src/renderer/src/capabilities/skills-host.css(local):裸 px 25 → 46(+21) [新增门禁文件] src/renderer/src/workbuddy/composer/capability-picker.css(local):裸 hex=26,裸 px=48 [回归] src/renderer/src/workbuddy/composer/composer.css(local):裸 hex 23 → 38(+15);裸 px 83 → 139(+56) [新增门禁文件] src/renderer/src/workbuddy/composer/prompt-queue.css(local):裸 hex=8,裸 px=35 提示:确认变更符合预期后运行 `node scripts/check-design-tokens.mjs --update-baseline` 刷新 baseline; 否则请改用 --yc-* token、复用现有值,或去掉重复的 --wb-* 定义。 提示(不失败,仅记录):3 个门禁文件 token 使用数上升: src/renderer/src/capabilities/skills-host.css(local):var(--wb-*) 使用 12 → 19(+7) src/renderer/src/workbuddy/composer/composer.css(local):var(--yc-*) 使用 35 → 47(+12);var(--wb-*) 使用 0 → 1(+1) src/renderer/src/workbuddy/conversation/conversation.css(local):var(--yc-*) 使用 0 → 4(+4) 提示(不失败):baseline 中 8 个文件已不存在:src/renderer/src/components/ReportedRunUsage.tsx;src/renderer/src/workbuddy/subagents/SourceMemberIcon.tsx;src/renderer/src/workbuddy/subagents/SubagentCollaboration.tsx;src/renderer/src/workbuddy/subagents/SubagentDetailPanel.tsx;src/renderer/src/workbuddy/subagents/adapters.css;src/renderer/src/workbuddy/subagents/member-view.ts;src/renderer/src/workbuddy/subagents/source.css;src/renderer/src/workbuddy/subagents/theme.css 提示:新增门禁文件 36 个且无受控计数(允许):src/renderer/src/capabilities/CapabilityMaintenance.tsx(local);src/renderer/src/capabilities/RecommendedSkills.tsx(local);src/renderer/src/capabilities/SkillAvatar.tsx(local);src/renderer/src/capabilities/SkillDetailShell.tsx(local);src/renderer/src/capabilities/SkillModalPortal.tsx(local);src/renderer/src/capabilities/skill-modal-focus.ts(local);src/renderer/src/components/SessionLoading.tsx(local);src/renderer/src/components/TaskPopconfirm.tsx(local);src/renderer/src/components/session-loading.css(local);src/renderer/src/components/task-popconfirm.css(local);src/renderer/src/components/updates/UpdateSidebarCard.tsx(local);src/renderer/src/components/updates/update-ui-model.ts(local);src/renderer/src/components/updates/update-ui-store.ts(local);src/renderer/src/components/updates/updates-ui.css(local);src/renderer/src/ui/Button.tsx(local);src/renderer/src/ui/IconButton.tsx(local);src/renderer/src/ui/Input.tsx(local);src/renderer/src/ui/Popover.tsx(local);src/renderer/src/ui/Select.tsx(local);src/renderer/src/ui/Switch.tsx(local);…(还有 16 项,详见 --json) ===== mode-fixture-build.txt: exit 0 ===== {"output":"/workspace/scratch/0aaa9774aecc/single-package-staging/ycode/.tmp/mode-chip-native-ZJMFra","fixtureBuilt":true,"nativeExecuted":false} ===== popconfirm-fixture-build.txt: exit 0 ===== Browser fixture: /workspace/scratch/0aaa9774aecc/single-package-staging/ycode/.tmp/task-popconfirm-browser-RoVW4H/index.html ===== identity-baseline-negative-control.txt: exit 1 ===== AssertionError [ERR_ASSERTION]: terminal correction preserves choices + actual - expected { plan: [ + 'true' - 'false' ], task: [ + 'true' - 'false' ] } at main2 (/workspace/scratch/0aaa9774aecc/single-package-staging/ycode/.tmp/f01-baseline-check.cjs:293667:25) { generatedMessage: false, code: 'ERR_ASSERTION', actual: [Object], expected: [Object], operator: 'deepStrictEqual', diff: 'simple' } Baseline negative control reproduced exact terminal correction failure (expected exit 1).