Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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根因。
Expand Down Expand Up @@ -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 声明 |
Expand Down
43 changes: 43 additions & 0 deletions docs/evidence/2026-11-04-pages-rollout-qualification/README.md
Original file line number Diff line number Diff line change
@@ -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收口。
247 changes: 247 additions & 0 deletions docs/evidence/2026-11-04-pages-rollout-qualification/summary.json
Original file line number Diff line number Diff line change
@@ -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."
]
}
30 changes: 30 additions & 0 deletions docs/evidence/2026-11-04-pages-workbench-release/README.md
Original file line number Diff line number Diff line change
@@ -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失败、本地复位缺口、长期稳定性或性能边界;
不授物理硬件或网络/安全问题结论。
Loading
Loading