diff --git a/docs/README.md b/docs/README.md index 62903788..91c94d21 100644 --- a/docs/README.md +++ b/docs/README.md @@ -52,6 +52,9 @@ setup/REPL、任意应用与物理等价仍需分别验证。 [性能修复与对照计划](plans/2026-11-03-emulator-performance.md)执行, [性能修复与对照证据](evidence/2026-11-03-emulator-performance/README.md)分别记录浏览器与原生结果, [QEMU 执行优化决策](adr/0001-qemu-browser-hot-block-jit.md)保留单一 QEMU TCI,不引入第二套 JIT 后端。 +2026-11-04 后续[携已知问题部署](evidence/2026-11-04-pages-workbench-release/README.md)已按用户要求完成,全部HTTPS资产一致;HTTPS首6例SUBSET_PASS,其余34例NOT RUN/HOLD,不授全19线上通过。 +[部署前资格与Lite复位失败](evidence/2026-11-04-pages-rollout-qualification/README.md)保持原检查点,hosted及新本地完整门禁FAIL不因部署转为PASS。 +原V6/R8本地PASS保留日期与身份,不授新导出资格或C根因关闭,RUNTIME-09仍OPEN。 2026-11-04 的[全19板默认UIFlow与输入验收](evidence/2026-11-04-browser-uiflow-all19-acceptance/README.md)在V6本地独立完成60例, 覆盖编辑器、声明按键/键盘/机身触摸输入与原固定示例;[设计](plans/2026-11-04-uiflow-browser-workbench-design.md)保留范围与路径。 逐板性能、长期稳定性及正式HTTPS仍独立验收,本地功能结果不关闭原策略C根因。 @@ -337,6 +340,8 @@ Unit batch12a 7 款 driver-gap Unit(byteswitch/bytebutton/step16/timerpwr/mq/8 | [Paper PM1应用配置](evidence/2026-11-04-paper-pm1-application/README.md) | 精确固件输入证据 | `2026-11-04` | R6 PaperColor准备ImportError/零输入保留;两Paper显式公开I2C配置后23/19项、8/6次250ms输入与原BtnPWR通过;Mono编辑器63项独立通过,模块/物理pinmux与清场范围分开 | | [S3工作台执行策略](evidence/2026-11-04-s3-workbench-execution-policy/README.md) | 精确镜像候选与源审查证据 | `2026-11-04` | 原AtomS3 Lite首启INT_CLR读PIF保留/09OPEN;八板各自editor+buttons及Stackbody共17候选/656检查/40输入通过,真实argv与清场逐项绑定;仅功能行推广到V6,完整60/线上另验 | | [全19板UIFlow与输入验收](evidence/2026-11-04-browser-uiflow-all19-acceptance/README.md) | 完整本地浏览器功能证据 | `2026-11-04` | canonical V6独立60/2564、224次raw-paste/38次默认样例、200组输入与真实清场;逐板ready仅功能观察、11S3精确argv,原FAIL及07/08/09 OPEN;不授逐板性能或线上;[V5 DOM/model-only摘要](evidence/2026-11-04-browser-uiflow-all19-acceptance/dom-qa-summary.json)独立保留观察器首FAIL,不授guest | +| [Pages发布资格与Lite复位复现](evidence/2026-11-04-pages-rollout-qualification/README.md) | 发布资格失败与分层对照证据 | `2026-11-04` | regular Matrix ready超时、CfT单case58项独立通过、新MAIN导出Lite oneInsn硬reset PIF;旧R8保留,部署前检查点无release/deploy/HTTPS,09 OPEN | +| [携已知问题部署工作台](evidence/2026-11-04-pages-workbench-release/README.md) | 部署与资产身份记录 | `2026-11-04` | 用户要求先部署;prepared-preview成功、全部2130资产匹配;标准hosted/本地资格FAIL保留;HTTPS首6子集通过/余34未运行,不授全19或C修复 | | [QEMU 执行优化决策](adr/0001-qemu-browser-hot-block-jit.md) | 架构决策 | `2026-11-03` | 保留原 TCI,不加入第二后端/JIT;精确 SHA/ready/patch 绑定及回调后 IRQ 新鲜度 | | [Unit 第二批协议研究](unit-research/2026-11-02-batch2-protocols.md) | Unit 研究 | `2026-11-02` | 12 款未登记 Unit 的驱动 file:line/寄存器表/QEMU 复用建议与 unresolved(adc_v11 快照漏调用 bug、neopixel 版本语义、多从机/双端点框架缺口);planned,不含 runtime 声明 | | [Unit 第三批协议研究](unit-research/2026-11-02-batch3-protocols.md) | Unit 研究 | `2026-11-02` | 12 款未登记 Unit 的驱动 file:line/寄存器表/QEMU 复用建议与 unresolved(rfid→rfid2 复用、vmeter/env-iv 双从机、ADS1100/ADS1110 区分、SHT4x/SCD4x 快照 vs master 语义差异、PbHub 7 地址与 MCU/RGB 冲突);planned,不含 runtime 声明 | diff --git a/docs/evidence/2026-11-04-pages-rollout-qualification/README.md b/docs/evidence/2026-11-04-pages-rollout-qualification/README.md new file mode 100644 index 00000000..7b4cb4d8 --- /dev/null +++ b/docs/evidence/2026-11-04-pages-rollout-qualification/README.md @@ -0,0 +1,43 @@ +# Pages发布资格:正式云端与新本地失败 + +日期与最近核对:2026-11-04。执行层级:**virtual-device validation**。 +当前结果 **FAIL_RELEASE_QUALIFICATION**,既有公开站点未被本轮替换。 +精确身份及原报告byte/SHA见[summary.json](summary.json);JSON逐字来自 +[已发布固定提交](https://github.com/m5agent/agent-work-logs/blob/04b04a2225c4a233ef95ca2ea05e325de75a6f76/records/esp-emulator/2026-11-04-uiflow-browser-workbench/followups/2026-11-04-pr165-release-qualification-failures/evidence/summary.json),9,907字节,SHA256 +55ed3817e18b45b3feed54af12a6c101680781c693faaf77f1be7bd484a84df0。 +本次文档维护未新增guest、构建、重试或发布。 + +## 三条独立路径 + +| 路径 | 实际结果 | 不能继承的结论 | +| --- | --- | --- | +| regular41799916700 attempt2 | sourcebuild/export/host控制通过;首Matrix600000ms未app-ready,4UI检查/零program,1FAIL/59NOT RUN | build/export成功不等于应用ready;最后五CDP关闭不证明正常QMP | +| 本机CfT152/M4控制 | 单Matrix完整case58项、11program和reset通过;normal0/两阶段5CDP | 不是58个case,不关闭hosted PV失败,不确定Chrome/host/C根因 | +| fresh MAIN23d/prod-prefix桌面完整计划 | 17completed=16PASS+Lite1FAIL、43NOT RUN;48项后硬reset新boot PIF | 旧V6/R8 PASS不授新导出资格,oneInsn不保证reset稳定 | + +MAIN23d38d8dbe91488185dc53eb4cd47dee687df019与已验c3db源码树相同。 +正式runtime manifest9c317e4d…和本机合法fa6b5604…保持不同producer身份; +五个runtime资产相同(含96ea WASM)不等于manifest相同,没有复制manifest伪装云端产物。 + +新export manifest为685e134cbaa09bf44edf45218843d387b26cf9e775b75cdf21b8ce3024539e7d, +用fa6/96资产。Lite精确Flash为 +5c06f621bd765980f8ac274760b5648df58f3828d647f9d13acf77fb4d9601e8, +原8f9控制脚本不变,divisor1/无icount,实际TCG参数one-insn-per-tb=on。 +代码执行后的硬reset在Core1 PC403864c3/EXCVADDR6002306c触发PIF; +不能与早先多指令首次boot失败混为同一个执行阶段。 + +Lite该次normal-QMP0、零forced/fallback、五pthread归零、六CDP-before-context关闭; +held-iframe未捕获。AtomS3R peer63项正常drain与两阶段六CDP另有证据。 +正式hosted失败未建立normal QMP/disposal,仅有最后五CDP关闭,不能混写。 + +## 当前范围与关闭要求 + +此前2026-11-04[V6/R8全19本地60例通过](../2026-11-04-browser-uiflow-all19-acceptance/README.md) +保持原日期/固件/runtime身份,不被本轮失败覆盖,也不能转授新export发布资格。 +[RUNTIME-09](../../runtime-model-gap-register.md)仍OPEN,现包括精确oneInsn下的reset复现。 +已映射INT_CLR普通读的实际region/TLB/TB/IRQ事务原因尚未闭合; +诊断片段、另一环境或另一执行策略的通过均不等于C根因修复。 + +release promotion、prepared-preview部署及HTTPS40/DOM验收均NOT RUN。 +保留原FAIL,取得同异常路径修复与回归后,再完成同候选导出的完整门禁和线上验收; +不通过改固件/时钟、放宽断言、跳过reset或转授另一设备PASS收口。 diff --git a/docs/evidence/2026-11-04-pages-rollout-qualification/summary.json b/docs/evidence/2026-11-04-pages-rollout-qualification/summary.json new file mode 100644 index 00000000..33e5367a --- /dev/null +++ b/docs/evidence/2026-11-04-pages-rollout-qualification/summary.json @@ -0,0 +1,247 @@ +{ + "schema_version": 1, + "date": "2026-11-04", + "kind": "rollout-qualification-followup-separate-failure-and-control-lanes", + "status": "FAIL_RELEASE_QUALIFICATION", + "source": { + "main_sha": "23d38d8dbe91488185dc53eb4cd47dee687df019", + "tree_sha": "f892649011246b88cb76e3b2ad2973fe76ec99ee", + "equal_local_source_ref": "c3db057d2ee99c022a4116ae72d661c4d39888c6", + "regular_workflow_url": "https://github.com/m5agent/m5stack-esp-emulator/actions/runs/41799916700" + }, + "prior_detailed_checkpoint_reference": { + "label": "Formal PV/CfT detailed checkpoint, not duplicated", + "bytes": 52617, + "sha256": "685a8bd93507989eebec6c8bbe3def1924e639a1fa0db2886327f72cd84c5c26" + }, + "regular_attempt2": { + "status": "FAIL", + "workflow_URL": "https://github.com/m5agent/m5stack-esp-emulator/actions/runs/41799916700", + "attempt": 2, + "source_build_and_static_host_controls": "PASS; unlike attempt1 source-fetch TLS failure, this attempt reached actual guest execution.", + "parent": { + "raw": { + "label": "CI all-admitted parent", + "bytes": 15796, + "sha256": "8740ef0f15b14c7061ee82ada7d45fceeebe4763b899f9f74ff7ad956523d380" + }, + "completed_cases": 1, + "FAIL": 1, + "NOT_RUN": 59 + }, + "case": { + "device": "atom-matrix", + "completed_UI_checks": 4, + "application_programs": 0, + "application_ready_timeout_ms": 600000, + "browser": "152.0.7977.65", + "renderer": "ANGLE (Apple, ANGLE Metal Renderer: Apple Paravirtual device, Unspecified Version)", + "raw": { + "label": "CI AtomMatrix full failure report", + "bytes": 26788, + "sha256": "5669472c2f0359cfb873832c8fc845081d3be32b8bf3d9675bb5575e710ac95f" + } + }, + "execution_identity": { + "firmware_sha256": "f553ad2c9d84e22591d8da8d32a7517c9e378eb5439214a9e0b2075bf31844ed", + "wasm_sha256": "96ea9f91956aa80926182ed174ea426f3f4c84e96ca58754fa249063fdda5ca1", + "javascript_sha256": "30bd87652a1938146d7d9dfd3cd96bc582c85eee756801fe177f1a74f79fdcb0", + "worker_sha256": "b3da90501116a254f0518048ff154ee695aa889ce168573adaf78e13bd5d3d8d", + "board": "m5atommatrix", + "profile": "atom-matrix-wasm-deterministic-icount", + "accelerator": { + "icountShift": 5, + "kind": "tcg-icount", + "tbSizeMb": 128, + "thread": "single" + }, + "clock_divisor": 1, + "clock_override": null, + "one_insn_per_tb": false + }, + "site_manifest_sha256": "1c0077e53cbfbc23f0d552bc2abac0bb568ac029b2ae79ecf5e6247e99526d2c", + "runtime_manifest_sha256": "9c317e4d6e3c00a3c34fcb32443a0a8e2e1a7d20a1f68eae6cb300d24aad3085", + "test_script_sha256": "8f9dad6414db348a315acdaceab73f4e95abdbe10440056edb7eed42356c93c2", + "cleanup": { + "normal_QMP_exit": "NOT ESTABLISHED", + "final_failure_CDP": { + "ok": true, + "minimum_observed": 1, + "observed": 5, + "destroyed": 5, + "live": 0 + }, + "held_iframe_nested_fence": "NOT CAPTURED", + "zero_fallback_final_proof": "NOT ESTABLISHED; early snapshot owner still live is not final cleanup proof." + }, + "preview_upload_and_deploy": "NOT RUN after guest gate failure", + "root_cause": "OPEN; local PASS does not erase it." + }, + "local_CfT_control": { + "status": "PASS_ONE_MATRIX_CASE", + "checks": 58, + "application_programs": 11, + "browser": "152.0.7977.65", + "renderer": "ANGLE (Apple, ANGLE Metal Renderer: Apple M4, Unspecified Version)", + "raw": { + "label": "local152CfTM4", + "bytes": 95631, + "sha256": "e7d8ab8dcdbc96a7bc0b8ad51f8fad210841da305486485d0be796980b728326" + }, + "source_site_manifest_sha256": "e597ce3c4465f582928042d4a36be684454a9cb4f8910f80720ad027cf1da898", + "runtime_manifest_sha256": "fa6b56048ec91d100cb4f2a15088ce77e313bd2e6e8ba083229826b258297c51", + "same_original_script_8f9": true, + "hardware_reset": "PASS within original full case", + "normal_cleanup": { + "gracefulExit": true, + "exitCode": 0, + "workersAtExit": 0, + "engineFallbackTerminations": 0 + }, + "two_stage_CDP": { + "pthreads_closed": { + "ok": true, + "observed": 5, + "destroyed": 5, + "live": 0 + }, + "all_workers_closed": { + "ok": true, + "observed": 5, + "destroyed": 5, + "live": 0 + } + }, + "scope": "One exact-version CfT152/localM4 functional control, not58cases. Different packaging/signature/host from hostedPV; no browser minimum or cause attribution." + }, + "shared_runtime_boundary": { + "local_legitimate_manifest_sha256": "fa6b56048ec91d100cb4f2a15088ce77e313bd2e6e8ba083229826b258297c51", + "formal_CI_manifest_sha256": "9c317e4d6e3c00a3c34fcb32443a0a8e2e1a7d20a1f68eae6cb300d24aad3085", + "reason": "Identicalfive runtimeasset bytes andsource/recipe/lock/effectiveflags; manifestcommand/link-argv hashes reflect separatebuild invocations. Neither manifests copied/edited to pretend another producer.", + "formal_preview_artifact": "Not uploaded afterguest failure; actualruntimehashes came from source-bound fullbyte provenance computed inCI beforeguest. Localexact96ea bytes separately rehashed." + }, + "fresh_main_desktop_full60": { + "status": "FAIL", + "source_commit": "23d38d8dbe91488185dc53eb4cd47dee687df019", + "source_tree": "f892649011246b88cb76e3b2ad2973fe76ec99ee", + "site_manifest": { + "bytes": 429908, + "sha256": "685e134cbaa09bf44edf45218843d387b26cf9e775b75cdf21b8ce3024539e7d" + }, + "runtime_manifest": { + "bytes": 34437, + "sha256": "fa6b56048ec91d100cb4f2a15088ce77e313bd2e6e8ba083229826b258297c51" + }, + "parent_raw": { + "bytes": 21186, + "sha256": "2dc15180d8a1048aa09cc4dc2987a6643fce8edad273c16b07f112f99b56cac4" + }, + "started_at_UTC": "2026-11-04T09:43:20.430Z", + "finished_at_UTC": "2026-11-04T09:48:38.088Z", + "counts": { + "planned": 60, + "completed": 17, + "PASS": 16, + "FAIL": 1, + "NOT_RUN": 43 + }, + "max_parallel_functional_guests": 2, + "performance_sample": false, + "publication_eligible": false, + "Lite_failure": { + "raw": { + "bytes": 92655, + "sha256": "fcab67b89818e2bab6eeaf37633972384c3f5d6233ebd03596a9be45bdbb7c46" + }, + "stage": "New UIFlow boot after host hardware reset; first boot/programs already ran.", + "completed_checks": 48, + "all_completed_checks_true": true, + "programs_completed": 10, + "initial_default_runs": 2, + "panic": "Core1 LoadStorePIFAddrError", + "PC": "0x403864c3", + "EXCVADDR": "0x6002306c", + "post_failure_console_epoch": 3, + "identity": { + "firmwareSha256": "5c06f621bd765980f8ac274760b5648df58f3828d647f9d13acf77fb4d9601e8", + "wasmSha256": "96ea9f91956aa80926182ed174ea426f3f4c84e96ca58754fa249063fdda5ca1", + "javascriptSha256": "30bd87652a1938146d7d9dfd3cd96bc582c85eee756801fe177f1a74f79fdcb0", + "workerSha256": "b3da90501116a254f0518048ff154ee695aa889ce168573adaf78e13bd5d3d8d", + "board": "m5atoms3lite", + "profile": "atoms3-lite-wasm-uiflow-workbench-wallclock-oneinsn-candidate", + "clockDivisor": 1, + "clockOverride": null, + "oneInsnPerTb": true + }, + "actual_accelerator": "tcg,thread=multi,one-insn-per-tb=on", + "icount": "Absent", + "startup_main_sha256": "a109d9c11c09b4aa649e1a0a2d0929136fe7083f75bf2452e9c17b57f8b13ab0", + "required_runtime_patch": { + "path": "patches/qemu-wasm-probe/0027-gpio-bounded-transactions.patch", + "sha256": "43685da86d9b959b2e769cd9cda5785a5c4039b5076f73f3b9d6033d1d161bdf" + }, + "test_script": { + "path": "platform/tests/test_public_uiflow_guest.mjs", + "sha256": "8f9dad6414db348a315acdaceab73f4e95abdbe10440056edb7eed42356c93c2" + }, + "cleanup": { + "normal_QMP_exit": true, + "exitCode": 0, + "nested_created": 5, + "nested_at_exit": 0, + "remaining": 0, + "forced_disposals": 0, + "engine_normal_terminations": 1, + "engine_self_close_notifications": 1, + "engine_fallback_terminations": 0, + "actual_CDP_before_context": { + "ok": true, + "observed": 6, + "destroyed": 6, + "live": 0 + }, + "held_iframe_CDP": "NOT CAPTURED" + }, + "cause": "OPEN; observed despite oneInsn. Not a new source/clock/input weakening or proof of a common C cause." + }, + "peer_drain": { + "device": "atoms3r", + "status": "PASS", + "checks": 63, + "raw": { + "bytes": 1182139, + "sha256": "d9879a9414cda05c38115eca9bd38f1abfe7f6ccc9f2be8fbf6563d83efb1e68" + }, + "normal_QMP_exit": true, + "exitCode": 0, + "engine_fallback": 0, + "two_stage_CDP": { + "pthreads_closed": { + "ok": true, + "observed": 6, + "live": 0 + }, + "all_workers_closed": { + "ok": true, + "observed": 6, + "live": 0 + } + } + } + }, + "current_delivery": { + "release_qualification": "FAIL", + "prepared_preview_ready": false, + "release_promotion": "NOT RUN", + "prepared_preview_deployment": "NOT RUN", + "HTTPS40_and_DOM_acceptance": "NOT RUN", + "existing_publication": "UNCHANGED; no new deployment from these failures" + }, + "actions": "Derived summary of retained terminal reports. No new firmware execution, retry or deployment in this checkpoint.", + "limits": [ + "Earlier localR8PASS remains a separately scoped result; it cannot qualify this failed export/run.", + "CfT58checks/onecase do not transfer to19devices, cloudPV or fresh local60.", + "Same five runtime assets do not make runtime manifests producer-identical: legitimate localfa6 and formal9c stay distinct.", + "No platform/Chrome/C root cause or physical/performance guarantee inferred." + ] +} diff --git a/docs/evidence/2026-11-04-pages-workbench-release/README.md b/docs/evidence/2026-11-04-pages-workbench-release/README.md new file mode 100644 index 00000000..eb82340e --- /dev/null +++ b/docs/evidence/2026-11-04-pages-workbench-release/README.md @@ -0,0 +1,30 @@ +# UIFlow工作台:携已知问题部署 + +日期与最近核对:2026-11-04。**DEPLOYED_WITH_KNOWN_FAILURES**。 +用户明确要求先合并部署、问题保留记录;这不是完整生产功能门禁通过。 + +[正式站点](https://m5agent.github.io/m5stack-esp-emulator/)已由 +[prepared-preview工作流](https://github.com/m5agent/m5stack-esp-emulator/actions/runs/41816252534) +于10:45:44Z(UTC)完成部署,工作流结论success。 +[summary.json](summary.json)绑定MAIN23d源码/树、MF685、fa6/96运行时、归档与原收据SHA。 +149,451,828字节归档上传后下载SHA相同;2,130个声明HTTPS资产共251,196,202字节 +逐一比对length/SHA通过,向量SHA为90ebdb820deeded74cc3495066c5cda13a028239e1bb61e700f20d16f6031a94。 +资产一致性不等于guest功能通过;本次文档维护没有新增guest或构建。 + +## 独立HTTPS子集 + +实际首6例为功能并发(最多2个guest),不是性能样本。六例均normal QMP0、零forced/fallback, +32个实际CDP Worker在context关闭前全部消失;三editor另有held-iframe围栏,三buttons该围栏NOT CAPTURED。 +终态父报告9,038B,SHA103eba714eabc894099d15539cbbe8f9fa26e945b14ee3552e17d3ec3969be72; +逐例raw byte/SHA、固件、控制脚本及实际执行策略见摘要。没有用本子集覆盖原hosted或Lite复位FAIL。 + +## 已知失败与验收边界 + +- [部署前资格失败](../2026-11-04-pages-rollout-qualification/README.md)原样保留:hosted Matrix600秒未app-ready;同导出本地计划16PASS、Lite1FAIL、43NOT RUN。 +- Lite精确oneInsn在代码后的硬reset仍触发Core1 PIF;`RUNTIME-07`、`RUNTIME-08`、`RUNTIME-09`根因继续OPEN。没有C/固件/时钟修复声明。 +- [此前V6/R8完整本地通过](../2026-11-04-browser-uiflow-all19-acceptance/README.md)保留其日期和身份,不能转授本次导出或线上结果。 +- 独立HTTPS首6例已终态 **SUBSET_PASS / full_scope=false**:Matrix、StickC Plus、CoreS3各editor+buttons共222检查、35程序、6次未改默认Run和10次250ms输入通过;其余34例NOT RUN/HOLD,不授全19线上通过。v4诊断不是发布修复或验收证据。 + +部署前证据中的“未部署/站点未变”是其当时检查点事实;本页追加后续部署事实,不改写旧JSON。 +部署成功及所有资产匹配不关闭标准hosted失败、本地复位缺口、长期稳定性或性能边界; +不授物理硬件或网络/安全问题结论。 diff --git a/docs/evidence/2026-11-04-pages-workbench-release/summary.json b/docs/evidence/2026-11-04-pages-workbench-release/summary.json new file mode 100644 index 00000000..5c6c14b9 --- /dev/null +++ b/docs/evidence/2026-11-04-pages-workbench-release/summary.json @@ -0,0 +1 @@ +{"kind":"pages-workbench-user-directed-prepared-preview-release-v1","date":"2026-11-04","status":"DEPLOYED_WITH_KNOWN_FAILURES","publication_scope":"USER_APPROVED_PREPARED_PREVIEW_WITH_KNOWN_FAILURES","authorization":"User explicitly prioritized merge and deployment while preserving known failures; no additional approval requested.","deployment":{"url":"https://m5agent.github.io/m5stack-esp-emulator/","workflow_run_url":"https://github.com/m5agent/m5stack-esp-emulator/actions/runs/41816252534","status":"completed","conclusion":"success","deploy_step_completed_at":"2026-11-04T10:45:44Z","workflow_completed_at":"2026-11-04T10:45:46Z"},"identity":{"source_commit":"23d38d8dbe91488185dc53eb4cd47dee687df019","source_tree":"f892649011246b88cb76e3b2ad2973fe76ec99ee","tested_source_commit":"c3db057d2ee99c022a4116ae72d661c4d39888c6","site_manifest":{"bytes":429908,"sha256":"685e134cbaa09bf44edf45218843d387b26cf9e775b75cdf21b8ce3024539e7d"},"runtime_manifest_sha256":"fa6b56048ec91d100cb4f2a15088ce77e313bd2e6e8ba083229826b258297c51","wasm_sha256":"96ea9f91956aa80926182ed174ea426f3f4c84e96ca58754fa249063fdda5ca1"},"delivery":{"package":{"bytes":149451828,"sha256":"09a7c91cb4fab05d886528d81bb43fe701a32bad24f3619340571be22e011f13"},"release_readback":{"bytes":149451828,"sha256":"09a7c91cb4fab05d886528d81bb43fe701a32bad24f3619340571be22e011f13"},"package_readback_match":true,"release_url":"https://github.com/m5agent/m5stack-esp-emulator/releases/tag/pages-uiflow-workbench-20261104-23d38d8d","all_https_assets":{"verified_assets":2130,"verified_bytes":251196202,"sha256_vector":"90ebdb820deeded74cc3495066c5cda13a028239e1bb61e700f20d16f6031a94","scope":"Every declared HTTPS asset length/SHA matches the reviewed exact-main export, including licenses/runtime source archive."}},"receipts":{"https_identity":{"bytes":23717,"sha256":"2a7987efc75de3914ba2853a6f5a3804f8dee04e94e7cd70e0e23b5081c6c5d2","status":"FROZEN_READBACK","scope":"Asset/source identity readback only; artifact_site and private paths omitted."},"deployment_run":{"bytes":1879,"sha256":"22c021ffffca907546a3ca7881b64c3a60cb88f9b41ed119a02b8a9b5afdb072"},"acquisition":{"bytes":1018,"sha256":"53b79098fae8410ce482b0387cb1d7fbb99dec12a9eb3633a704515faba3f5bf"}},"preserved_failures":{"regular_hosted":{"workflow_run":"41799916700","attempt":2,"status":"FAIL_OPEN","note":"Hosted Matrix600s failure preserved; no CI functional PASS claimed."},"same_export_local_full60":{"status":"FAIL","raw_report_sha256":"2dc15180d8a1048aa09cc4dc2987a6643fce8edad273c16b07f112f99b56cac4","raw_report_bytes":21186,"completed_cases":17,"not_run_cases":43,"passed_cases":16,"failed_cases":1,"failure":"AtomS3 Lite hardware reset Core1 PIF despite exact oneInsn; PC0x403864c3/EXCVADDR0x6002306c."},"runtime_gaps_open":["RUNTIME-07","RUNTIME-08","RUNTIME-09"],"evidence":"../2026-11-04-pages-rollout-qualification/summary.json","earlier_failure_record_scope":"As of the pre-deployment qualification checkpoint; its no-deployment statements remain historical."},"functional_verification":{"https_first6":{"status":"SUBSET_PASS","full_scope":false,"cases_passed":6,"total_remote_scope":40,"remaining":"34 NOT RUN / HOLD; no further guest authorized by this checkpoint.","started_at":"2026-11-04T10:51:11.088Z","finished_at":"2026-11-04T10:55:45.147Z","parent_report":{"bytes":9038,"sha256":"103eba714eabc894099d15539cbbe8f9fa26e945b14ee3552e17d3ec3969be72","exit_code":0},"controller_sha256":"b3b55e973652a3e8bd5c4d0df6b238e1ef781f4743be4e2b83441f02b948eec2","checks":222,"programs":35,"untouched_default_runs":6,"subject_trials_250ms":10,"max_parallel_guests":2,"performance_sample":false,"raw_identity_review":"All six terminal raw report byte/SHA, PASS checks, exact firmware and actual arguments independently read back for this documentation update.","firmware_sha256":{"atom-matrix":"f553ad2c9d84e22591d8da8d32a7517c9e378eb5439214a9e0b2075bf31844ed","stickc-plus":"42d6318333c7812a75c2072c1cc0e9f13c6e54edb6929198a5a3b3f7b592e36d","cores3":"52f38f562f6e3749357a2ed4834efd72d16870046ea052f2f31691743cb5384d"},"execution_policy":{"classic":"div1; TCG single/tb-size128/icount shift5; oneInsn false.","cores3":"div1; TCG multi/one-insn-per-tb=on; no icount."},"controller_source":{"original_editor_sha256":"8f9dad6414db348a315acdaceab73f4e95abdbe10440056edb7eed42356c93c2","https_editor_sha256":"b7b0b4a4633b7681ab074869c79409ba655d59a709e65613287901892981dc3c","original_buttons_sha256":"7e1ca495b0006f7976914ded0d51b6f137da9c8155b806ee371820620ac20989","https_buttons_sha256":"66b55a236ab058b086aebca6450e54b6e5759ff260d40229b522a70e16bd4f1d"},"cleanup":"All six normal QMP exit0, zero forced/fallback, no live CDP workers before context; 32 actual Worker targets total. Three editors also captured held-iframe fence; three buttons did not.","cases":[{"device":"atom-matrix","lane":"uiflow-editor","checks":58,"report_bytes":96347,"report_sha256":"372f4ad7d75bbf81edecf2c618a64968040199346d9fffd199e3885e8e1548d1","programs":11,"subject_trials":0,"cdp_workers_closed":5,"held_iframe":"CAPTURED"},{"device":"atom-matrix","lane":"uiflow-buttons","checks":10,"report_bytes":61254,"report_sha256":"d0c11f22fb8a3dcc243b5585ae2b0e5530eb37f1daff254cd4d2ca3a16a13a10","programs":0,"subject_trials":2,"cdp_workers_closed":5,"held_iframe":"NOT CAPTURED"},{"device":"stickc-plus","lane":"uiflow-editor","checks":63,"report_bytes":2238919,"report_sha256":"87fccaac0b8454eaec54c96e766442081275530d22fad0982c94d16bfb7c6bdd","programs":12,"subject_trials":0,"cdp_workers_closed":5,"held_iframe":"CAPTURED"},{"device":"stickc-plus","lane":"uiflow-buttons","checks":18,"report_bytes":1518227,"report_sha256":"f4572cb856399e6f140d0bfdb7473706845e9dd3d4999e396080126203f0a9be","programs":0,"subject_trials":6,"cdp_workers_closed":5,"held_iframe":"NOT CAPTURED"},{"device":"cores3","lane":"uiflow-editor","checks":63,"report_bytes":5170252,"report_sha256":"4d2402556e2ddec21ab8bf8dd65c3989ffe991114ce06c77b521253f0f67e72a","programs":12,"subject_trials":0,"cdp_workers_closed":6,"held_iframe":"CAPTURED"},{"device":"cores3","lane":"uiflow-buttons","checks":10,"report_bytes":3435157,"report_sha256":"851b1a02fc93c0e438c93ea2a23d598ae6d8e861459d4798028e2baef9b83c46","programs":0,"subject_trials":2,"cdp_workers_closed":6,"held_iframe":"NOT CAPTURED"}],"strict_bounded_review":{"bytes":20638,"sha256":"f2bc0a9750d272c4e562b0696f20d371d6e983a57a0ba2a0817e56bfd53d649d","scope":"Independent actual-six-report binding/cleanup revalidation; retained separately, not copied into this small checkpoint."}},"https_complete40":"NOT RUN: only this six-case subset completed; 34 remain on HOLD.","new_guest_execution_for_this_document_update":"NOT RUN: only existing terminal receipts inspected.","standard_production_gate":"FAIL preserved; deployment/subset success is not full qualification or a C/runtime fix."},"limits":["No C/runtime/firmware/clock/test assertion changes are claimed as a fix.","Earlier dated V6/R8 full60 PASS does not replace this export qualification FAIL.","This approved prepared-preview deployment does not establish all-device online behavior, performance, stability, physical hardware or network/security findings.","Diagnostic v4 is not a release fix or an acceptance PASS."]} diff --git a/docs/pages-deployment.md b/docs/pages-deployment.md index 1eeb112b..11ee03bd 100644 --- a/docs/pages-deployment.md +++ b/docs/pages-deployment.md @@ -3,6 +3,10 @@ 最近核对:`2026-11-04`。本页说明部署流程;当前能力以 [项目状态](project-status.md)和[逐设备配置](../platform/web/qemu-browser-profiles.json)为准。 +PR #165 已合并;用户明确要求先部署、问题保留,prepared-preview已于2026-11-04 10:45:44Z更新[正式站点](https://m5agent.github.io/m5stack-esp-emulator/)。 +[本次部署证据](evidence/2026-11-04-pages-workbench-release/README.md)记录工作流success与全部2,130个HTTPS资产匹配;独立HTTPS首6例已SUBSET_PASS、full_scope=false;Matrix/Plus/Core各编辑器与按键共222检查通过,其余34例NOT RUN/HOLD,不授完整线上门禁。 +[部署前资格失败](evidence/2026-11-04-pages-rollout-qualification/README.md)保持原检查点:标准hosted和新本地完整计划均FAIL;部署不将其改写为生产门禁PASS或C修复。 + 入口为仓库根 `index.html`,由 `platform/tools/build_public_site.py` 导出。 GitHub Pages 只托管静态文件;C/QEMU、客体 CPU、板级控制器、 LVGL 和 PIR 在访问者浏览器内运行,不需要 Device Service 或本机 Node 服务。 @@ -173,7 +177,8 @@ StackChan 的 SCS `present_position` 来自稀疏 QOM 快照。页面会按相 静态画面可零传帧;性能报告分别记录请求、传帧、像素变化与输入延迟。 - 保留双客体 CPU、TCI、原板级与 Unit 控制器、QMP in-band;不提供 QMP OOB。 网络、音频、其它 Unit、Flash 持久化和任意固件兼容性均需分别验证。 - 当前网页 C/QEMU 配置只开放 UART 输出;串口文本输入保持禁用。 + 通用串口文本输入框保持禁用;已确认的 UIFlow2 编程环境单独使用 UART0 + raw-paste 传输源码、接收输出与执行中断,不向任意上传固件承诺 REPL 兼容。 - 纯网页记录属于 `browser-local-qemu-evidence`,没有远程 `/api/v1` lease; 不将原生服务、其它 guest 或物理设备结果拼接成浏览器 PASS。 - QEMU WASM 及链接依赖保留各自 GPL/LGPL/宽松许可。站点随执行文件提供 @@ -213,8 +218,13 @@ Service Worker 首控流程。聚合器为每个公开板型启动独立 guest `M5_QEMU_EXAMPLE=stock-reference` 或 `wallclock-candidate`,运行 `platform/tests/test_public_qemu_guest.mjs`。 `stock-div8` 仍是兼容选择名,已映射到相同的 `stock-reference`,不代表实际慢放。 -对已部署站点可设置 `M5_PUBLIC_URL=https://.github.io//` -复用同一验收器。不得把本地子路径测试写成公开部署测试;实际 URL 和结果写入验证台账。 +上述 `test_public_qemu_guest.mjs` 固定示例验收器可设置 +`M5_PUBLIC_URL=https://.github.io//` 直接检查已部署站点。 +完整 UIFlow 编辑器、普通按键、Cardputer 全键和 StackChan 机身触摸验收器目前 +使用 `M5_PUBLIC_SITE` 启动本地静态服务器,不读取该 URL 变量;仅设置它不能证明 +这些路径已在线执行。线上复验需要明确的远程适配器,保留原程序、输入、断言和清场, +并核对实际 HTTPS 资产及运行收据。不得把本地子路径测试写成公开部署测试; +实际 URL 和结果写入验证台账。 ### 逐板 fixture 与输入门禁 diff --git a/docs/project-backlog.md b/docs/project-backlog.md index dced2818..26ed1119 100644 --- a/docs/project-backlog.md +++ b/docs/project-backlog.md @@ -346,14 +346,14 @@ setup/REPL 与任意 legacy application 继续由 `API-01` 覆盖。其余 P0 | `RUNTIME-02` | 进行中(backend blocked) | C6 802.15.4 MAC ACK/commissioning 和 join/收发/离网生命周期 | 真实 guest 驱动完成生命周期;否则保持显式 `runtime_model_gap` | | `RUNTIME-07` | 进行中 | 定位 StamPLC 浏览器原多指令 TB 在硬件复位后访问 SYSTIMER 的 PIF 异常;精确工作台 oneInsn 策略仅作限定规避 | 原策略同固件受控复现,绑定实际 MMIO transaction、region/TLB、指令恢复元数据与 CPU1 reset/IRQ 顺序;真正修复后重跑 reset、代码执行和清场,不以规避策略关闭模型缺口 | | `RUNTIME-08` | 进行中 | 捕获 Cardputer-ADV 原工作台策略复位后 WASM OOB 的实际 trap 栈与状态,分清运行时原因 | 同二进制符号映射、受控复位/负载对照及真正修复回归;保留首次失败和 fallback 清理,不以单次未复现或执行策略通过关闭缺口 | -| `RUNTIME-09` | 进行中 | 定位 AtomS3 Lite 原工作台多指令策略首次启动时对 SYSTIMER_INT_CLR 的 PIF | 同固件实际事务/region/TLB/TB恢复和IRQ时序;保留首FAIL,逐板执行策略验证不代替原C根因修复 | +| `RUNTIME-09` | 进行中 | 定位AtomS3 Lite精确工作台首次启动及oneInsn硬reset PIF,恢复受影响候选资格 | 采集同异常路径真实MMIO/region/TLB/TB恢复与IRQ/复位时序;修复后补启动、代码、reset、输入及清场回归,诊断或策略通过不代替根因关闭 | | `SVC-01` | 进行中 | namespace-managed/Tab5/cross-host companion 和跨主机 session/evidence 持久性 | 重启后接管或明确失败,不产生假 running;claim response-loss 已由 durable queue 覆盖 | | `SVC-02` | 待做 | warm pool、配额、对象存储、审计和容量指标 | 租户状态隔离,资源与 GC 可观测 | | `SVC-03` | 进行中 | `ServiceError`、首批无状态 parser、QEMU/runtime 内存策略、私有 env 脱敏、network policy/CNAME parsing、设备规格/profile 加载、storage/NVS、esp-emu network execution 和 QEMU WiFi security/env 已移到独立模块并由 `device_service.py` re-export;继续提取其余请求解析/运行参数,再拆 store、runtime adapter、evidence collector 和 session 状态机 | 每一步只移动一个边界;对外 API、历史恢复和 evidence 字段不回归 | | `TAB5-01` | 决策 | 重建或扩展 P4 backend | 缺失控制器与端到端网络有执行路径 | | `UI-01` | 待做 | 逐设备结构、材质、hitbox 和截图阈值 | 设备本地视觉回归,不跨设备继承 | | `UI-02` | 进行中 | 扩展更多固定固件与长期稳定性,继续归因原始 StackChan 跳舞固件的 Core1 ROM 字面量启动异常及独立触摸证据缺口、官方 Factory 浏览器 WDT/异常、其它应用的 CPU/触摸延迟、stock SDK C Timer coalescing 与 Flash 持久化;分别验证 C6 RISC-V、P4 controller 数据面与 Linux ARM64 浏览器执行;保留 PaperMono 逻辑校准、StopWatch 触摸偏差、Cardputer CFG1 时序、Plus2 USB sleep/EXT0/RTC CRC 及 StackChan 其它固件/运动模式边界 | 已满足前置:单一 C/QEMU 性能优化及精确固件正常时钟、新 producer 路径策略、完整本地固定示例门禁和应急 prepared-site 正式 HTTPS 更新已有独立证据;逐固件绑定 Flash/runtime/profile/input/frame,功能回归不等于逐板提速,native 或 compiled_profiles 不授浏览器/stock SDK PASS;hosted regular publication 的 engine CDP target 残留仍需定位并重新执行正式全板门禁,prepared 发布不关闭该缺口 | -| `UI-03` | 进行中 | 继续逐设备启动性能、cold/warm与长期稳定性;默认UIFlow网页编程和声明输入路径的正式HTTPS独立验收 | [设计](plans/2026-11-04-uiflow-browser-workbench-design.md);[本地全19门禁](evidence/2026-11-04-browser-uiflow-all19-acceptance/README.md)已绑定V6/各精确Flash完成60例,功能结果不授逐板提速、未知固件、原厂联网菜单或线上;保留Matrix/Plus性能基线与原策略07/08/09根因定位 | +| `UI-03` | 进行中 | 完成已部署工作台的独立HTTPS编辑器/输入验收,修复当前MAIN/prod-prefix启动与复位资格缺口;逐板性能/长期稳定性另行 | [设计](plans/2026-11-04-uiflow-browser-workbench-design.md)、[部署范围](evidence/2026-11-04-pages-workbench-release/README.md)与[资格阻断](evidence/2026-11-04-pages-rollout-qualification/README.md);资产匹配不授功能PASS,保留原FAIL并补同路径修复/回归,不转授另一环境或旧本地结果 | | `UNIT-01` | 已完成(virtual-device) | 视觉主机接入与 Unit 数据面战役 2026-11-03 收口:9 host 接入 + 5 boundary-only/composition-only;Unit 160 = 158 implemented/partial + 2 DEFER(`mini-bps-v11`/`mini-pdm`)+ 25 c 类边界,184/184;canonical 41 层(0120–0161,41/41 replay),PR #80–#161。 仅 `UNIT-DEFER-01` 保留 2 项 DEFER 的关闭条件;其余历史 UNIT-HOST 问题与逐型号边界保留在证据/研究页 | 仅剩 2 项 DEFER;所有 implemented 均为限定 virtual-device 证据,物理 RF/光学/电气/声学/机械语义 NOT RUN;DEFER 关闭前不升 implemented | | `CZ-01` | 待做 | CardputerZero 系统、驱动和长期回归 | 启动、USB、网络、音频和摄像头虚拟设备边界明确 | @@ -587,14 +587,15 @@ SHA-bound expectation、SD/NVS fixture、静态/文件系统审查和 network-fi 验收:真实 guest 驱动完成完整生命周期;否则保持 `runtime_model_gap`, 不承诺所有 C6 固件兼容。 -### RUNTIME-09 AtomS3 Lite 工作台首次启动 PIF +### RUNTIME-09 AtomS3 Lite 工作台首次启动及硬复位 PIF -下一项最小交付:针对[已解码的INT_CLR读异常](evidence/2026-11-04-s3-workbench-execution-policy/README.md), -在原精确固件/策略上采集真实MMIO事务、MemTxResult、region、TLB、TB恢复元数据 -与双核IRQ顺序,定位已映射寄存器普通读触发PIF的原因。 +下一项最小交付:针对[INT_CLR异常与复位复现](evidence/2026-11-04-pages-rollout-qualification/README.md), +在同精确固件的原多指令与oneInsn策略下采集MMIO事务、MemTxResult、region、 +TLB、TB恢复元数据及双核IRQ/复位顺序,定位已映射寄存器普通读触发PIF的原因。 -验收:保留首次FAIL,证明修复作用于该异常路径,补启动、代码执行、复位、输入 -和正常清场回归。逐板验证的精确执行策略仅授对应镜像/路径,不关闭原模型缺口。 +验收:保留原FAIL,证明修复作用于已失败路径,补首次启动、代码执行、硬reset、 +输入和正常清场回归;同候选导出完整门禁通过后再推进发布与HTTPS。 +诊断片段、另一环境或执行策略通过不关闭原模型缺口。 ### RUNTIME-08 Cardputer 浏览器复位后 WASM OOB diff --git a/docs/project-snapshot.md b/docs/project-snapshot.md index 781165a8..69dba993 100644 --- a/docs/project-snapshot.md +++ b/docs/project-snapshot.md @@ -109,7 +109,7 @@ | `RUNTIME-01` | `FIXED` | C6 软件复位后 chip-id 错误 | | `RUNTIME-05` | `FIXED` | S3 QEMU AP WPA2-PSK 数据面 | | `RUNTIME-04` | `FIXED` | Core2 for AWS ATECC608 | -| `RUNTIME-09` | `OPEN / under investigation` | AtomS3 Lite 工作台首次启动的 SYSTIMER PIF | +| `RUNTIME-09` | `OPEN / under investigation` | AtomS3 Lite 工作台首次启动及硬复位后的 SYSTIMER PIF | | `RUNTIME-08` | `OPEN / under investigation` | Cardputer 工作台硬件复位后 WASM 越界 | | `RUNTIME-07` | `OPEN / exact execution-policy workaround validated` | StamPLC 浏览器多指令 TB 下硬件复位后 PIF 异常 | | `RUNTIME-02` | `OPEN` | C6 Zigbee/802.15.4 运行时未建模 | @@ -131,14 +131,14 @@ | `RUNTIME-02` | 进行中(backend blocked) | C6 802.15.4 MAC ACK/commissioning 和 join/收发/离网生命周期 | | `RUNTIME-07` | 进行中 | 定位 StamPLC 浏览器原多指令 TB 在硬件复位后访问 SYSTIMER 的 PIF 异常;精确工作台 oneInsn 策略仅作限定规避 | | `RUNTIME-08` | 进行中 | 捕获 Cardputer-ADV 原工作台策略复位后 WASM OOB 的实际 trap 栈与状态,分清运行时原因 | -| `RUNTIME-09` | 进行中 | 定位 AtomS3 Lite 原工作台多指令策略首次启动时对 SYSTIMER_INT_CLR 的 PIF | +| `RUNTIME-09` | 进行中 | 定位AtomS3 Lite精确工作台首次启动及oneInsn硬reset PIF,恢复受影响候选资格 | | `SVC-01` | 进行中 | namespace-managed/Tab5/cross-host companion 和跨主机 session/evidence 持久性 | | `SVC-02` | 待做 | warm pool、配额、对象存储、审计和容量指标 | | `SVC-03` | 进行中 | `ServiceError`、首批无状态 parser、QEMU/runtime 内存策略、私有 env 脱敏、network policy/CNAME parsing、设备规格/profile 加载、storage/NVS、esp-emu network execution 和 QEMU WiFi security/env 已移到独立模块并由 `device_service.py` re-export;继续提取其余请求解析/运行参数,再拆 store、runtime adapter、evidence collector 和 session 状态机 | | `TAB5-01` | 决策 | 重建或扩展 P4 backend | | `UI-01` | 待做 | 逐设备结构、材质、hitbox 和截图阈值 | | `UI-02` | 进行中 | 扩展更多固定固件与长期稳定性,继续归因原始 StackChan 跳舞固件的 Core1 ROM 字面量启动异常及独立触摸证据缺口、官方 Factory 浏览器 WDT/异常、其它应用的 CPU/触摸延迟、stock SDK C Timer coalescing 与 Flash 持久化;分别验证 C6 RISC-V、P4 controller 数据面与 Linux ARM64 浏览器执行;保留 PaperMono 逻辑校准、StopWatch 触摸偏差、Cardputer CFG1 时序、Plus2 USB sleep/EXT0/RTC CRC 及 StackChan 其它固件/运动模式边界 | -| `UI-03` | 进行中 | 继续逐设备启动性能、cold/warm与长期稳定性;默认UIFlow网页编程和声明输入路径的正式HTTPS独立验收 | +| `UI-03` | 进行中 | 完成已部署工作台的独立HTTPS编辑器/输入验收,修复当前MAIN/prod-prefix启动与复位资格缺口;逐板性能/长期稳定性另行 | | `UNIT-01` | 已完成(virtual-device) | 视觉主机接入与 Unit 数据面战役 2026-11-03 收口:9 host 接入 + 5 boundary-only/composition-only;Unit 160 = 158 implemented/partial + 2 DEFER(`mini-bps-v11`/`mini-pdm`)+ 25 c 类边界,184/184;canonical 41 层(0120–0161,41/41 replay),PR #80–#161。 仅 `UNIT-DEFER-01` 保留 2 项 DEFER 的关闭条件;其余历史 UNIT-HOST 问题与逐型号边界保留在证据/研究页 | | `CZ-01` | 待做 | CardputerZero 系统、驱动和长期回归 | @@ -157,14 +157,14 @@ - `tests/`:`155` 个可执行 Python 测试文件,分布在 `63` 个目录;`228` 个 evidence JSON。 - `patches/`:`16` 个补丁组,`268` 个 patch 文件。 -- 文档:`613` 个 Markdown 页面;除本生成页外共 `68527` 行。 +- 文档:`615` 个 Markdown 页面;除本生成页外共 `68619` 行。 ## 文档与测试 - 平台测试:`1967` 项。 -- Docs 新鲜度登记:`223` 行;其中非历史页 `202` 行,历史固定页 `21` 行。 -- 文档职责分布:待办 `3`,契约 `9`,证据/差异 `86`,历史固定 `21`,实现/设计 `14`,参考 `86`,工作流/导航 `4`。 -- 全量文档盘点:`613` 个 Markdown 页面;职责分布:权威/专题页 `223`,设备档案 `37`,示例 `1`,治理/入口 `9`,文档导航 `1`,其他 `9`,补丁说明 `21`,平台说明 `13`,仓内历史记录 `5`,测试/用例说明 `186`,未登记 docs 页面 `4`,第三方来源说明 `104`。 +- Docs 新鲜度登记:`225` 行;其中非历史页 `204` 行,历史固定页 `21` 行。 +- 文档职责分布:待办 `3`,契约 `9`,证据/差异 `87`,历史固定 `21`,实现/设计 `14`,参考 `87`,工作流/导航 `4`。 +- 全量文档盘点:`615` 个 Markdown 页面;职责分布:权威/专题页 `225`,设备档案 `37`,示例 `1`,治理/入口 `9`,文档导航 `1`,其他 `9`,补丁说明 `21`,平台说明 `13`,仓内历史记录 `5`,测试/用例说明 `186`,未登记 docs 页面 `4`,第三方来源说明 `104`。 - 复核日期早于当前事实日期的非历史页:[evidence/2026-11-03-emulator-performance/README.md](evidence/2026-11-03-emulator-performance/README.md) `2026-11-03`,[evidence/2026-11-03-performance-pages-release/README.md](evidence/2026-11-03-performance-pages-release/README.md) `2026-11-03`,[evidence/2026-11-03-emulator-performance/native-validation.md](evidence/2026-11-03-emulator-performance/native-validation.md) `2026-11-03`,[plans/2026-11-03-emulator-performance.md](plans/2026-11-03-emulator-performance.md) `2026-11-03`,[adr/0001-qemu-browser-hot-block-jit.md](adr/0001-qemu-browser-hot-block-jit.md) `2026-11-03`,[unit-research/2026-11-02-batch2-protocols.md](unit-research/2026-11-02-batch2-protocols.md) `2026-11-02`,[unit-research/2026-11-02-batch3-protocols.md](unit-research/2026-11-02-batch3-protocols.md) `2026-11-02`,[unit-research/2026-11-02-batch4-protocols.md](unit-research/2026-11-02-batch4-protocols.md) `2026-11-02`,[unit-research/2026-11-02-batch5-protocols.md](unit-research/2026-11-02-batch5-protocols.md) `2026-11-02`,[unit-research/2026-11-02-batch5-impl-status.md](unit-research/2026-11-02-batch5-impl-status.md) `2026-11-02`,[unit-research/2026-11-02-batch6-protocols.md](unit-research/2026-11-02-batch6-protocols.md) `2026-11-02`,[unit-research/2026-11-02-batch7-protocols.md](unit-research/2026-11-02-batch7-protocols.md) `2026-11-02`,[unit-research/2026-11-03-batch8-protocols.md](unit-research/2026-11-03-batch8-protocols.md) `2026-11-03`,[unit-research/2026-11-03-batch9-protocols.md](unit-research/2026-11-03-batch9-protocols.md) `2026-11-03`,[unit-research/2026-11-03-batch9-impl-status.md](unit-research/2026-11-03-batch9-impl-status.md) `2026-11-03`,[unit-research/2026-11-03-batch10-protocols.md](unit-research/2026-11-03-batch10-protocols.md) `2026-11-03`,[unit-research/2026-11-03-batch10-impl-status.md](unit-research/2026-11-03-batch10-impl-status.md) `2026-11-03`,[evidence/2026-11-03-unit-batch12a-evidence/README.md](evidence/2026-11-03-unit-batch12a-evidence/README.md) `2026-11-03`,[evidence/2026-11-03-unit-batch10/README.md](evidence/2026-11-03-unit-batch10/README.md) `2026-11-03`,[evidence/2026-11-03-unit-batch12c-evidence/README.md](evidence/2026-11-03-unit-batch12c-evidence/README.md) `2026-11-03`,[evidence/2026-11-03-unit-batch11/README.md](evidence/2026-11-03-unit-batch11/README.md) `2026-11-03`,[unit-research/2026-11-03-batch11-driver-gap-protocols.md](unit-research/2026-11-03-batch11-driver-gap-protocols.md) `2026-11-03`,[evidence/2026-11-03-unit-batch12b-evidence/README.md](evidence/2026-11-03-unit-batch12b-evidence/README.md) `2026-11-03`,[evidence/2026-11-03-visual-campaign-summary/README.md](evidence/2026-11-03-visual-campaign-summary/README.md) `2026-11-03`,[evidence/2026-11-03-unit-can-lorawan/README.md](evidence/2026-11-03-unit-can-lorawan/README.md) `2026-11-03`,[evidence/2026-11-03-glass-unblock/README.md](evidence/2026-11-03-glass-unblock/README.md) `2026-11-03`,[unit-research/2026-11-03-batch7-impl-status.md](unit-research/2026-11-03-batch7-impl-status.md) `2026-11-03`,[plans/2026-11-02-classic-hosts.md](plans/2026-11-02-classic-hosts.md) `2026-11-02`,[evidence/2026-11-02-atoms3r-cam-sccb/README.md](evidence/2026-11-02-atoms3r-cam-sccb/README.md) `2026-11-02`,[evidence/2026-11-02-atoms3r-cam-geometry/README.md](evidence/2026-11-02-atoms3r-cam-geometry/README.md) `2026-11-02`,[evidence/2026-11-02-atoms3r-m12-host/README.md](evidence/2026-11-02-atoms3r-m12-host/README.md) `2026-11-02`,[evidence/2026-11-02-stickt2-host/README.md](evidence/2026-11-02-stickt2-host/README.md) `2026-11-02`,[unit-research/2026-11-02-batch1-protocols.md](unit-research/2026-11-02-batch1-protocols.md) `2026-11-02`,[evidence/2026-11-02-unit-batch1/README.md](evidence/2026-11-02-unit-batch1/README.md) `2026-11-02`,[evidence/2026-11-02-unit-bclass/README.md](evidence/2026-11-02-unit-bclass/README.md) `2026-11-02`,[evidence/2026-11-02-unit-cclass/README.md](evidence/2026-11-02-unit-cclass/README.md) `2026-11-02`,[evidence/2026-11-02-unit-batch2/README.md](evidence/2026-11-02-unit-batch2/README.md) `2026-11-02`,[evidence/2026-11-02-unit-batch2b/README.md](evidence/2026-11-02-unit-batch2b/README.md) `2026-11-02`,[evidence/2026-11-02-unit-batch3/README.md](evidence/2026-11-02-unit-batch3/README.md) `2026-11-02`,[evidence/2026-11-02-unit-batch4/README.md](evidence/2026-11-02-unit-batch4/README.md) `2026-11-02`,[evidence/2026-11-02-unit-batch5/README.md](evidence/2026-11-02-unit-batch5/README.md) `2026-11-02`,[evidence/2026-11-02-unit-batch6/README.md](evidence/2026-11-02-unit-batch6/README.md) `2026-11-02`,[evidence/2026-11-03-unit-batch6b/README.md](evidence/2026-11-03-unit-batch6b/README.md) `2026-11-03`,[evidence/2026-11-03-unit-batch8/README.md](evidence/2026-11-03-unit-batch8/README.md) `2026-11-03`,[evidence/2026-11-03-unit-id-unblock/README.md](evidence/2026-11-03-unit-id-unblock/README.md) `2026-11-03`,[evidence/2026-11-03-unit-batch7/README.md](evidence/2026-11-03-unit-batch7/README.md) `2026-11-03`,[evidence/2026-11-02-m5stick-host/README.md](evidence/2026-11-02-m5stick-host/README.md) `2026-11-02`,[evidence/2026-11-02-basic-v27-host/README.md](evidence/2026-11-02-basic-v27-host/README.md) `2026-11-02`,[evidence/2026-11-02-atomu-host/README.md](evidence/2026-11-02-atomu-host/README.md) `2026-11-02`,[evidence/2026-11-02-atom-echo-host/README.md](evidence/2026-11-02-atom-echo-host/README.md) `2026-11-02`,[evidence/2026-11-02-atoms3r-cam-host/README.md](evidence/2026-11-02-atoms3r-cam-host/README.md) `2026-11-02`,[plans/2026-11-02-host-boundary-decisions.md](plans/2026-11-02-host-boundary-decisions.md) `2026-11-02`,[evidence/2026-11-02-atom-echos3r-host/README.md](evidence/2026-11-02-atom-echos3r-host/README.md) `2026-11-02`,[evidence/2026-11-02-atoms3u-host/README.md](evidence/2026-11-02-atoms3u-host/README.md) `2026-11-02`,[plans/2026-10-29-agent-skills.md](plans/2026-10-29-agent-skills.md) `2026-10-29`,[AGENTS.md](AGENTS.md) `2026-10-30`,[plans/2026-10-30-docs-readme-refresh.md](plans/2026-10-30-docs-readme-refresh.md) `2026-10-30`,[images/README.md](images/README.md) `2026-10-30`,[evidence/2026-10-30-docs-homepage-refresh/README.md](evidence/2026-10-30-docs-homepage-refresh/README.md) `2026-10-30`,[engineering-handoff.md](engineering-handoff.md) `2026-11-03`,[workstreams.md](workstreams.md) `2026-11-03`,[project-snapshot.md](project-snapshot.md) `2026-11-03`,[project-status.md](project-status.md) `2026-11-03`,[project-backlog.md](project-backlog.md) `2026-11-03`,[code-map.md](code-map.md) `2026-10-30`,[evidence-retention.md](evidence-retention.md) `2026-10-27`,[browser-runtime-feasibility.md](browser-runtime-feasibility.md) `2026-10-28`,[plans/2026-10-29-wasm-performance-devices.md](plans/2026-10-29-wasm-performance-devices.md) `2026-10-29`,[plans/2026-10-29-motion-power-device-adaptation.md](plans/2026-10-29-motion-power-device-adaptation.md) `2026-10-29`,[stackchan-arduino-browser.md](stackchan-arduino-browser.md) `2026-10-29`,[evidence/2026-10-29-stackchan-arduino-nvs/README.md](evidence/2026-10-29-stackchan-arduino-nvs/README.md) `2026-10-29`,[evidence/2026-10-29-motion-command-followup/README.md](evidence/2026-10-29-motion-command-followup/README.md) `2026-10-29`,[plans/2026-10-30-cardputer-stackchan-input.md](plans/2026-10-30-cardputer-stackchan-input.md) `2026-10-30`,[evidence/2026-10-30-cardputer-stackchan-input/README.md](evidence/2026-10-30-cardputer-stackchan-input/README.md) `2026-10-30`,[evidence/2026-10-30-stackchan-dance-and-cardputer-all-keys/README.md](evidence/2026-10-30-stackchan-dance-and-cardputer-all-keys/README.md) `2026-10-30`,[evidence/2026-10-30-pages-stackchan-cardputer-production/README.md](evidence/2026-10-30-pages-stackchan-cardputer-production/README.md) `2026-10-30`,[evidence/2026-10-31-stackchan-servo-smoothing/README.md](evidence/2026-10-31-stackchan-servo-smoothing/README.md) `2026-10-31`,[plans/2026-10-29-expanded-host-models.md](plans/2026-10-29-expanded-host-models.md) `2026-10-29`,[evidence/2026-10-29-expanded-hosts/README.md](evidence/2026-10-29-expanded-hosts/README.md) `2026-10-29`,[plans/2026-10-29-wasm-remaining-xtensa.md](plans/2026-10-29-wasm-remaining-xtensa.md) `2026-10-29`,[evidence/2026-10-29-wasm-remaining-xtensa/README.md](evidence/2026-10-29-wasm-remaining-xtensa/README.md) `2026-10-29`,[evidence/2026-10-29-wasm-performance-devices/README.md](evidence/2026-10-29-wasm-performance-devices/README.md) `2026-10-29`,[evidence/2026-10-29-browser-lvgl-wallclock/README.md](evidence/2026-10-29-browser-lvgl-wallclock/README.md) `2026-10-29`,[evidence/2026-10-29-cardputer-adv-user-firmware/README.md](evidence/2026-10-29-cardputer-adv-user-firmware/README.md) `2026-10-29`,[plans/2026-10-28-public-simulator.md](plans/2026-10-28-public-simulator.md) `2026-10-28`,[evidence/2026-10-29-motion-power-preview/README.md](evidence/2026-10-29-motion-power-preview/README.md) `2026-10-29`,[evidence/2026-10-28-public-simulator/README.md](evidence/2026-10-28-public-simulator/README.md) `2026-10-28`,[plans/2026-10-27-source-pr-cleanup.md](plans/2026-10-27-source-pr-cleanup.md) `2026-10-27`,[evidence/2026-10-27-uiflow2-api-sweep/README.md](evidence/2026-10-27-uiflow2-api-sweep/README.md) `2026-10-28`,[evidence/2026-10-28-multi-board-uiflow2-revalidation/README.md](evidence/2026-10-28-multi-board-uiflow2-revalidation/README.md) `2026-10-28`,[evidence/2026-10-28-qrcode-tls-candidate-firmware/README.md](evidence/2026-10-28-qrcode-tls-candidate-firmware/README.md) `2026-10-28`,[evidence/2026-10-28-stopwatch-drawpixel-transaction/README.md](evidence/2026-10-28-stopwatch-drawpixel-transaction/README.md) `2026-10-28`,[evidence/2026-10-28-three-board-audio/README.md](evidence/2026-10-28-three-board-audio/README.md) `2026-10-28`,[evidence/2026-10-28-core2-touch-buttons/README.md](evidence/2026-10-28-core2-touch-buttons/README.md) `2026-10-28`,[evidence/2026-10-28-core2-intmatrix-pending-irq/README.md](evidence/2026-10-28-core2-intmatrix-pending-irq/README.md) `2026-10-28`,[evidence/2026-10-28-cooperative-highint-rmt/README.md](evidence/2026-10-28-cooperative-highint-rmt/README.md) `2026-10-28`,[evidence/2026-10-28-core2-legacy-vfs-wifi-fixture/README.md](evidence/2026-10-28-core2-legacy-vfs-wifi-fixture/README.md) `2026-10-28`,[evidence/2026-10-28-core2-dual-spi-panel-routing/README.md](evidence/2026-10-28-core2-dual-spi-panel-routing/README.md) `2026-10-28`,[evidence/2026-10-28-espnow-and-three-board-interface-retest/README.md](evidence/2026-10-28-espnow-and-three-board-interface-retest/README.md) `2026-10-28`,[evidence/2026-10-28-concurrent-fixture-and-ready-state/README.md](evidence/2026-10-28-concurrent-fixture-and-ready-state/README.md) `2026-10-28`,[evidence/2026-10-28-three-board-uiflow2-latest-runtime/README.md](evidence/2026-10-28-three-board-uiflow2-latest-runtime/README.md) `2026-10-28`,[evidence/2026-10-29-three-board-uiflow2-full-retest/README.md](evidence/2026-10-29-three-board-uiflow2-full-retest/README.md) `2026-10-29`,[evidence/2026-10-28-core2-timg-wdt-feed/README.md](evidence/2026-10-28-core2-timg-wdt-feed/README.md) `2026-10-28`,[evidence/2026-10-29-core2-legacy-uart-clock/README.md](evidence/2026-10-29-core2-legacy-uart-clock/README.md) `2026-10-29`,[evidence/2026-10-29-core2-legacy-status-cas/README.md](evidence/2026-10-29-core2-legacy-status-cas/README.md) `2026-10-29`,[evidence/2026-10-29-core2-legacy-cas-episodes/README.md](evidence/2026-10-29-core2-legacy-cas-episodes/README.md) `2026-10-29`,[evidence/2026-10-29-core2-contended-cas-scheduler/README.md](evidence/2026-10-29-core2-contended-cas-scheduler/README.md) `2026-10-29`,[evidence/2026-10-29-core2-ipc-handoff-attribution/README.md](evidence/2026-10-29-core2-ipc-handoff-attribution/README.md) `2026-10-29`,[evidence/2026-10-29-core2-handoff-episode-budget/README.md](evidence/2026-10-29-core2-handoff-episode-budget/README.md) `2026-10-29`,[evidence/2026-10-29-core2-handoff-issuer-phases/README.md](evidence/2026-10-29-core2-handoff-issuer-phases/README.md) `2026-10-29`,[evidence/2026-10-29-core2-icount-percpu-budget/README.md](evidence/2026-10-29-core2-icount-percpu-budget/README.md) `2026-10-29`,[evidence/2026-10-30-core2-legacy-boot-to-ui-wait/README.md](evidence/2026-10-30-core2-legacy-boot-to-ui-wait/README.md) `2026-10-30`,[evidence/2026-10-30-core2-timg-feed-reschedule/README.md](evidence/2026-10-30-core2-timg-feed-reschedule/README.md) `2026-10-30`,[evidence/2026-10-30-core2-wifi-stub-menu/README.md](evidence/2026-10-30-core2-wifi-stub-menu/README.md) `2026-10-30`,[evidence/2026-10-30-core2-legacy-wifi-config-overlay/README.md](evidence/2026-10-30-core2-legacy-wifi-config-overlay/README.md) `2026-10-30`,[evidence/2026-10-30-core2-concurrent-capacity-boundary/README.md](evidence/2026-10-30-core2-concurrent-capacity-boundary/README.md) `2026-10-30`,[evidence/2026-10-30-core2-toolhash-rebind/README.md](evidence/2026-10-30-core2-toolhash-rebind/README.md) `2026-10-30`,[evidence/2026-10-30-svc03-execution-parsing/README.md](evidence/2026-10-30-svc03-execution-parsing/README.md) `2026-10-30`,[evidence/2026-10-30-svc03-network-execution/README.md](evidence/2026-10-30-svc03-network-execution/README.md) `2026-10-30`,[evidence/2026-10-30-svc03-qemu-wifi/README.md](evidence/2026-10-30-svc03-qemu-wifi/README.md) `2026-10-30`,[evidence/2026-10-30-core2-legacy-wdt-level-delivery/README.md](evidence/2026-10-30-core2-legacy-wdt-level-delivery/README.md) `2026-10-30`,[evidence/2026-10-30-svc03-network-parsing/README.md](evidence/2026-10-30-svc03-network-parsing/README.md) `2026-10-30`,[evidence/2026-10-30-svc03-device-specs/README.md](evidence/2026-10-30-svc03-device-specs/README.md) `2026-10-30`,[evidence/2026-10-29-cardputer-adv-imu/README.md](evidence/2026-10-29-cardputer-adv-imu/README.md) `2026-10-29`,[evidence/2026-10-29-core2-preboot-phase-profile/README.md](evidence/2026-10-29-core2-preboot-phase-profile/README.md) `2026-10-29`,[evidence/2026-10-29-core2-ssi-transaction-profile/README.md](evidence/2026-10-29-core2-ssi-transaction-profile/README.md) `2026-10-29`,[evidence/2026-10-29-core2-ssi-command-correlation/README.md](evidence/2026-10-29-core2-ssi-command-correlation/README.md) `2026-10-29`,[evidence/2026-10-29-core2-ssi-command-pc/README.md](evidence/2026-10-29-core2-ssi-command-pc/README.md) `2026-10-29`,[evidence/2026-10-29-core2-m5ui-dma-dedup/README.md](evidence/2026-10-29-core2-m5ui-dma-dedup/README.md) `2026-10-29`,[evidence/2026-10-29-core2-post-reset-teardown/README.md](evidence/2026-10-29-core2-post-reset-teardown/README.md) `2026-10-29`,[evidence/2026-10-29-core2-stock-ble-native-hci/README.md](evidence/2026-10-29-core2-stock-ble-native-hci/README.md) `2026-10-29`,[evidence/2026-10-29-svc03-runtime-boundary/README.md](evidence/2026-10-29-svc03-runtime-boundary/README.md) `2026-10-29`,[evidence/2026-10-29-m5ble-get-client-candidate/README.md](evidence/2026-10-29-m5ble-get-client-candidate/README.md) `2026-10-29`,[evidence/2026-10-29-three-board-uiflow2-interface-retest-r2/README.md](evidence/2026-10-29-three-board-uiflow2-interface-retest-r2/README.md) `2026-10-29`,[evidence/2026-10-29-three-board-uiflow2-interface-retest-r3/README.md](evidence/2026-10-29-three-board-uiflow2-interface-retest-r3/README.md) `2026-10-29`,[evidence/2026-10-29-three-board-uiflow2-interface-retest-r4/README.md](evidence/2026-10-29-three-board-uiflow2-interface-retest-r4/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-external-peer/README.md](evidence/2026-10-29-espnow-external-peer/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-external-ccmp/README.md](evidence/2026-10-29-espnow-external-ccmp/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-external-ccmp-replay/README.md](evidence/2026-10-29-espnow-external-ccmp-replay/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-peer-lifecycle/README.md](evidence/2026-10-29-espnow-peer-lifecycle/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-m5espnow-lifecycle/README.md](evidence/2026-10-29-espnow-m5espnow-lifecycle/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-external-ccmp-window/README.md](evidence/2026-10-29-espnow-external-ccmp-window/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-guest-key-state/README.md](evidence/2026-10-29-espnow-guest-key-state/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-peer-fabric/README.md](evidence/2026-10-29-espnow-peer-fabric/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-per-peer-key-routing/README.md](evidence/2026-10-29-espnow-per-peer-key-routing/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-ccmp-pn-exhaustion/README.md](evidence/2026-10-29-espnow-ccmp-pn-exhaustion/README.md) `2026-10-29`,[evidence/2026-10-29-espnow-loss-channel-rate/README.md](evidence/2026-10-29-espnow-loss-channel-rate/README.md) `2026-10-29`,[evidence/2026-10-29-worker-claim-idempotency/README.md](evidence/2026-10-29-worker-claim-idempotency/README.md) `2026-10-29`,[evidence/2026-10-29-lease-bound-evidence-store/README.md](evidence/2026-10-29-lease-bound-evidence-store/README.md) `2026-10-29`,[evidence/2026-10-29-runtime-acl/README.md](evidence/2026-10-29-runtime-acl/README.md) `2026-10-29`,[evidence/2026-10-29-core2-atecc608/README.md](evidence/2026-10-29-core2-atecc608/README.md) `2026-10-29`,[evidence/2026-10-29-unit-hard-reset-output-boundary/README.md](evidence/2026-10-29-unit-hard-reset-output-boundary/README.md) `2026-10-29`,[evidence/2026-10-29-flashlight-cold-route-four-host/README.md](evidence/2026-10-29-flashlight-cold-route-four-host/README.md) `2026-10-29`,[device-service-api.md](device-service-api.md) `2026-10-29`,[unit-agent-api.md](unit-agent-api.md) `2026-10-29`,[unified-device-runtime.md](unified-device-runtime.md) `2026-10-26`,[core2-native-hci-backend.md](core2-native-hci-backend.md) `2026-10-30`,[firmware-manifest.md](firmware-manifest.md) `2026-10-26`,[network-simulation-plan.md](network-simulation-plan.md) `2026-10-26`,[network-lane.md](network-lane.md) `2026-10-26`,[qemu-device-adaptation-matrix.md](qemu-device-adaptation-matrix.md) `2026-10-26`,[uiflow2-peripheral-test-matrix.md](uiflow2-peripheral-test-matrix.md) `2026-10-26`,[tab5-deferred-backlog.md](tab5-deferred-backlog.md) `2026-10-26`,[device-visual-fidelity-backlog.md](device-visual-fidelity-backlog.md) `2026-10-26`,[deployment.md](deployment.md) `2026-11-03`,[device-center-adapter.md](device-center-adapter.md) `2026-10-26`,[device-functional-test-workflow.md](device-functional-test-workflow.md) `2026-10-30`,[firmware-review-and-simulation-workflow.md](firmware-review-and-simulation-workflow.md) `2026-10-26`,[peripheral-simulation-architecture.md](peripheral-simulation-architecture.md) `2026-10-26`,[p4-peripheral-backend-requirements.md](p4-peripheral-backend-requirements.md) `2026-10-26`,[simulator-service-architecture.md](simulator-service-architecture.md) `2026-11-03`,[cores3-image-rendering-boundary.md](cores3-image-rendering-boundary.md) `2026-10-26`,[plans/2026-10-26-aiflow-live-preview-api.md](plans/2026-10-26-aiflow-live-preview-api.md) `2026-10-27`,[plans/2026-10-27-preview-run-control.md](plans/2026-10-27-preview-run-control.md) `2026-10-27`,[plans/2026-10-27-preview-web-consumer.md](plans/2026-10-27-preview-web-consumer.md) `2026-10-27`,[plans/2026-10-27-preview-controls-and-2relay.md](plans/2026-10-27-preview-controls-and-2relay.md) `2026-10-27`,[plans/2026-10-27-binary-checkpoint-and-unit-protocols.md](plans/2026-10-27-binary-checkpoint-and-unit-protocols.md) `2026-10-27`,[plans/2026-10-27-flashlight-and-uploaded-uiflow-base.md](plans/2026-10-27-flashlight-and-uploaded-uiflow-base.md) `2026-10-27`,[plans/2026-10-27-public-main-mpy-runtime.md](plans/2026-10-27-public-main-mpy-runtime.md) `2026-10-27`,[plans/2026-10-27-flashlight-route-history.md](plans/2026-10-27-flashlight-route-history.md) `2026-10-27`,[plans/2026-10-27-flashlight-cold-pad-observation.md](plans/2026-10-27-flashlight-cold-pad-observation.md) `2026-10-29`,[plans/2026-10-27-core2-startup-issues.md](plans/2026-10-27-core2-startup-issues.md) `2026-10-27`,[unit-research/official-protocols.md](unit-research/official-protocols.md) `2026-10-26`,[unit-research/scroll-roller485.md](unit-research/scroll-roller485.md) `2026-10-26`,[unit-research/encoder-protocol-conflicts.md](unit-research/encoder-protocol-conflicts.md) `2026-10-26`,[unit-research/esp32s3-adc-calibration.md](unit-research/esp32s3-adc-calibration.md) `2026-10-26`,[unit-research/visual-bindings-and-component-gaps.md](unit-research/visual-bindings-and-component-gaps.md) `2026-10-26`,[unit-research/host-runtime-compatibility.md](unit-research/host-runtime-compatibility.md) `2026-10-26`。这不自动表示内容错误;状态页变更时应优先复核。 - 带显式旧复核日期的委派文档(需按相邻索引和权威页复核): - [platform/web/vendor/m5stack-models/docs/INTEGRATION.md](../platform/web/vendor/m5stack-models/docs/INTEGRATION.md) `2026-10-25` diff --git a/docs/project-status.md b/docs/project-status.md index c8ec036d..42521b97 100644 --- a/docs/project-status.md +++ b/docs/project-status.md @@ -1,9 +1,8 @@ # 项目当前状态 -2026-11-04 的[全19板默认UIFlow与输入验收](evidence/2026-11-04-browser-uiflow-all19-acceptance/README.md)在V6本地静态站独立完成60/60例、2,564项检查,覆盖19完整编辑器、19普通按键、Card56、Stack三区和20固定示例。 -19板均实际运行未改默认源码首/再Run;同轮224次raw-paste和200组输入试验绑定各自Flash、源码、控制器、帧及normal-QMP/CDP清场。普通按键/Card的held-iframe围栏未捕获,不能借其它case补齐。 -11个S3仅对各自精确工作台Flash使用正常钟oneInsn/0027策略;原UART、观察器、PM1、finally与矩阵FAIL保留,StamPLC/Cardputer/AtomS3Lite原策略的`RUNTIME-07/08/09`根因仍OPEN。 -`UI-03`保持`PARTIAL`:本地既定功能门禁已验,逐板性能、长期稳定性、其它固件与正式HTTPS仍独立;V6未在本记录部署,功能并发不作性能样本。 +2026-11-04 已按用户明确要求[携已知问题部署UIFlow工作台](evidence/2026-11-04-pages-workbench-release/README.md):prepared-preview于10:45:44Z完成,正式HTTPS的2,130个资产length/SHA全部匹配。标准hosted Matrix600秒启动FAIL及同导出本地16PASS、Lite1FAIL、43NOT RUN保留,精确oneInsn硬reset PIF的`RUNTIME-09`继续OPEN;部署成功不代表完整生产功能门禁或C根因修复。独立HTTPS首6例已SUBSET_PASS(Matrix/Plus/Core各编辑器与按键),其余34例NOT RUN/HOLD,不授全19线上通过。部署前[资格失败记录](evidence/2026-11-04-pages-rollout-qualification/README.md)保持原检查点,不改写旧FAIL。 + +此前2026-11-04 的[全19板默认UIFlow与输入验收](evidence/2026-11-04-browser-uiflow-all19-acceptance/README.md)在V6本地静态站独立完成60/60例、2,564项检查,覆盖19完整编辑器、19普通按键、Card56、Stack三区和20固定示例。 19板均实际运行未改默认源码首/再Run;同轮224次raw-paste和200组输入试验绑定各自Flash、源码、控制器、帧及normal-QMP/CDP清场。普通按键/Card的held-iframe围栏未捕获,不能借其它case补齐。 11个S3仅对各自精确工作台Flash使用正常钟oneInsn/0027策略;原UART、观察器、PM1、finally与矩阵FAIL保留,`RUNTIME-07`、`RUNTIME-08`、`RUNTIME-09`根因仍OPEN。 `UI-03`保持`PARTIAL`:携已知失败部署后,继续修复当前MAIN/prod-prefix资格缺口并完成正式HTTPS独立验收;既有本地门禁不授逐板性能、长期稳定性、其它固件或新导出通过,功能并发不作性能样本。 日期:`2026-11-04`。Unit 历史 PASS 精确绑定旧固件/运行时,raw 归档已外置,读取规则见[证据说明](evidence-retention.md)。 diff --git a/docs/runtime-model-gap-register.md b/docs/runtime-model-gap-register.md index 8af91e34..e9ebb3c5 100644 --- a/docs/runtime-model-gap-register.md +++ b/docs/runtime-model-gap-register.md @@ -128,22 +128,24 @@ side-channel、电气行为和真机仍为独立 `NOT RUN`。样本自身仍因 ## 当前缺口 -### RUNTIME-09:AtomS3 Lite 工作台首次启动的 SYSTIMER PIF +### RUNTIME-09:AtomS3 Lite 工作台首次启动及硬复位后的 SYSTIMER PIF | 字段 | 当前值 | | --- | --- | | 状态 | `OPEN / under investigation`,根因未确定 | -| 影响 | browser runtime75、AtomS3 Lite 精确工作台 Flash、div1/无icount/原多指令TB首次启动 | -| 首次异常 | 到达工作台ready前,Core1 PC `0x403864c3` 触发PIF,EXCVADDR `0x6002306c`,随后guest复位 | -| 真实指令 | 同Flash IRAM解码为 `l32i a8,a7,108`,A7=`0x60023000`;普通、对齐32位读已映射的 `SYSTIMER_INT_CLR` | -| 模型依据 | 当前read显式返回INT_CLR初值0,write清raw状态并更新IRQ;缺少实际故障事务/region/TLB/TB恢复元数据,不能定为缺控制器或固件缺陷 | -| 清理 | 该次normal QMP exit0、零fallback、五pthread归零,六实际CDP关闭;held-iframe独立CDP围栏未捕获 | -| 证据 | [工作台执行策略调查](evidence/2026-11-04-s3-workbench-execution-policy/README.md) | - -关闭条件:在原精确固件/多指令策略下定位实际MMIO transaction、MemTxResult、 -命中region、TLB、TB恢复元数据及双核中断时序,给出同异常路径的修复/回归。 -原策略曾独立通过不能覆盖首次FAIL;其它型号的PIF/OOB不自动归为同一根因。 -精确镜像的另一执行策略必须逐板实跑,它通过也不关闭原C/事务根因。 +| 影响 | browser runtime75、AtomS3 Lite精确工作台Flash、div1/无icount:原多指令首次启动,以及精确oneInsn硬reset新启动 | +| 首次异常 | 工作台ready前Core1 PC `0x403864c3` 触发PIF,EXCVADDR `0x6002306c`,随后guest复位 | +| 后续复现 | MAIN23d/prod-prefix新导出中,精确oneInsn先执行代码并完成48项检查,硬reset新boot再次在同PC/地址触发Core1 PIF | +| 真实指令 | 同Flash IRAM为 `l32i a8,a7,108`,A7=`0x60023000`;普通对齐32位读已映射的 `SYSTIMER_INT_CLR` | +| 模型依据 | read显式返回INT_CLR初值0,write清raw状态并更新IRQ;实际故障transaction/region/TLB/TB恢复元数据未捕获,不能定为缺控制器或固件缺陷 | +| 清理 | 原首启失败与后续oneInsn reset失败各有normal QMP0、零fallback、五pthread归零、六CDP-before-context关闭;held-iframe独立围栏均未捕获 | +| 证据 | [原执行策略调查](evidence/2026-11-04-s3-workbench-execution-policy/README.md)、[发布资格与复位复现](evidence/2026-11-04-pages-rollout-qualification/README.md) | + +关闭条件:在同精确固件的首次启动及硬reset路径中定位MMIO transaction、 +MemTxResult、命中region、TLB、TB恢复元数据与双核IRQ/复位时序,证明修复 +作用于已失败路径;补原多指令/精确oneInsn受影响回归,再恢复同候选导出的完整发布门禁。 +既有独立通过不覆盖原FAIL,其它型号的PIF/OOB不自动归为同一根因。 +另一环境、诊断片段或执行策略的通过均不关闭原C/事务根因。 ### RUNTIME-08:Cardputer 工作台硬件复位后 WASM 越界 diff --git a/docs/validation-ledger.md b/docs/validation-ledger.md index 5e25dc35..baa39300 100644 --- a/docs/validation-ledger.md +++ b/docs/validation-ledger.md @@ -18,6 +18,8 @@ PASS 不代表本次检出重跑;材料、哈希和显式审计入口见[证 | 工作流 | 结果 | 证据 | | --- | --- | --- | +| `UI-03` / 用户要求携已知问题部署 | prepared-preview工作流41816252534于10:45:44Z UTC部署success,MAIN23d/treef892、MF685/fa6/96;149451828B归档上传下载SHA相同,正式HTTPS全部2130资产/251196202B length/SHA匹配,向量90eb…;standard hosted与同导出本地完整计划FAIL保留,07/08/09 OPEN,无C修复或生产功能门禁PASS。独立HTTPS首6已SUBSET_PASS/full_scope=false:Matrix/Plus/Core各editor+buttons,222检查/35程序/6默认Run/10输入,normal0/零fallback、32CDP全关;三editor held-iframe已捕获/三buttons未捕获,余34NOT RUN/HOLD,不授全19线上;此前“未部署”保持旧检查点,不改写原JSON | [部署与边界](evidence/2026-11-04-pages-workbench-release/README.md)、[摘要](evidence/2026-11-04-pages-workbench-release/summary.json) | +| `UI-03` / PR165后续发布资格 | regular attempt2完成sourcebuild/export/host控制,但Matrix首case600s未app-ready,4UI检查/零program,1FAIL/59NOT RUN;同版本本机CfT152/M4单case58项含reset/两阶段5CDP通过,不授hosted或19板。新MAIN23d/prod-prefix导出685e…、合法fa6/96执行完整计划,17completed=16PASS+Lite1FAIL、43NOT RUN;Lite48项后硬reset在403864c3/6002306c复现Core1 PIF,尽管实际oneInsn/div1/无icount。Lite normal0/零fallback/六CDP-before-context、held-iframe未捕获;AtomS3R peer63项正常drain/two-stage6CDP。正式9c与本机fa6 producer差异保留;旧R8PASS不覆盖此FAIL。RUNTIME-09 OPEN,无release/deploy/HTTPS,既有公开站点未变 | [分层资格证据](evidence/2026-11-04-pages-rollout-qualification/README.md)、[公开固定摘要](evidence/2026-11-04-pages-rollout-qualification/summary.json) | | `UI-03` / R8 canonical全19本地验收 | V6/e597…、WASM96ea与各精确Flash的独立完整60例均PASS,共2564检查;19编辑器完成224次raw-paste,逐板ready仅为max2并发功能观察;未改初始样例每板首/再Run均实际Hello且无stderr;19普通按键+Card56+Stack三区共200组subject trials,Fn pointer有键盘伴随。11S3逐收据实际oneInsn/div1/无icount,classic/fixed不继承。全部normal0/零fallback及实际CDP关闭,20个buttons/Card case的held-iframe围栏NOT CAPTURED;V5四宽DOM检查独立。首pretty汇总超64KiB拒绝保留,compact-only编码后63855B严格COMPLETE。07/08/09根因OPEN,逐板性能/长稳/正式HTTPS仍另验 | [全19证据](evidence/2026-11-04-browser-uiflow-all19-acceptance/README.md)、[同轮摘要](evidence/2026-11-04-browser-uiflow-all19-acceptance/summary.json)、[V5 DOM分层摘要](evidence/2026-11-04-browser-uiflow-all19-acceptance/dom-qa-summary.json)、[逐板功能ready观察](evidence/2026-11-04-browser-uiflow-all19-acceptance/readiness-summary.json) | | `UI-03` / S3 精确工作台执行策略 | R7 AtomS3 Lite首次启动在ready前普通对齐32位读SYSTIMER_INT_CLR触发PIF,4UI检查/零程序,normal0/六CDP清场,held-iframe未捕获;同Flash实际指令和当前映射/read/write已核,事务根因09OPEN。其后同96ea、各精确FW/main、div1/oneInsn/0027的八款独立preview共17用例、656检查、40输入通过,逐17真实argv无icount/override且正常清场。候选publicationfalse;仅已验功能行推广,Node首旧Stack白名单失败及修正后28合同PASS分开保留。V6 canonical导出有独立身份,完整60和线上仍另验,不授C根因关闭、全设备速度或未知固件 | [限定证据](evidence/2026-11-04-s3-workbench-execution-policy/README.md)、[摘要](evidence/2026-11-04-s3-workbench-execution-policy/summary.json) | | `UI-03` / Paper PM1 配置 API | R6 PaperColor按键准备因缺driver.m5pm1失败,只有1项UI检查、零输入,不能称PWR路由失败。保留StopWatch/StickS3已实测helper路径,PaperColor/PaperMono显式选择公开machine.I2C,真实49 RMW 2a→2d/4a不变,不读取/消费IRQ。两Paper各23/19项、8/6个250ms键鼠试验及原M5.update/BtnPWR事件通过;普通按键normal0/六CDP在context前关闭,held-iframe独立围栏未捕获。Mono最终8f9编辑器63项含默认两Run/半黑白/复位与两阶段清场另验通过。500ms为应用识别窗,未改变输入、默认Flash或C;完整门禁另验 | [限定证据](evidence/2026-11-04-paper-pm1-application/README.md)、[摘要](evidence/2026-11-04-paper-pm1-application/summary.json) |