wandering1
7027718dcd
Merge remote-tracking branch 'origin/master'
...
CI / 静态门禁 (pre-commit) (push) Failing after 31s
CI / 主机侧单测 (MSVC) (push) Failing after 44s
冲突三处,全部按「保留我方去废话后的结构,吸收远端新增事实」解:
- docs/硬件平台/ADC通道映射说明.md
远端新增 §7.2 ④ 段变比登记(电压族 606.06:1、电流族 29.4118 A/V)与
§8 逐通道验证四步;我方上一笔把该文改成只留现状。合并后 §7.1 四段表
的 ④ 行改为「已定死(参数算定)」并指向 §7.2,§8 保留四步验证(去掉
已完成标记与历史挂账叙述),§8.1 静态记录与 §8.2 交流动态记录并存。
- docs/内存管理/RAM使用分析与优化方案.md、RAM预算台账.md
受管内存快照区取远端数值,随后按合并后真实 .map 重跑
check_mem_numbers.py --write 与 ram_baseline.py --write 同步(构建
Program Size: Code=255160 RO=31204 RW=2080 ZI=152152,0 错误 0 警告)。
顺带修 §7.2 末尾一处指向 docs/任务规划/数据可信.md §8 的失效章节引用
(该文档已删 §8),改成陈述句。
门禁:check_doc_links --all --sections-strict 223 篇全通过、无法判定 0;
pre-commit 全 Passed。
2026-11-09 10:59:45 +08:00
wandering1
acf9f0d7e5
增加元器件说明
2026-11-09 10:27:22 +08:00
wandering1
ed1fe221e9
Merge pull request 'docs(wave): #93 修复板级验收轮证据与文档回填(续 #94)' ( #98 ) from docs-94-evidence into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 4m29s
CI / 主机侧单测 (MSVC) (push) Successful in 36s
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/98
2026-11-08 10:56:47 +08:00
super_agent_bot
1dbead5177
docs(wave): #93 修复板级验收轮证据与设计面回填(PR #94 第二提交)
...
CI / 静态门禁 (pre-commit) (pull_request) Failing after 3m59s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 40s
- 证据目录 docs/测试说明/测试数据/wave_fix_20261107/:Before(旧固件烧录前实测
oldN_P0..P3)/ After(新固件 19:10:36 构建,F1 五条 + F2 五条全过)逐帧 raw3200+PNG、
serial 摘录与 sha 台账、boot_new2/3 启动报告、restore_verify(100 件逐字节还原 OK)、
samples 三件与 README(含复现口令与 i104 环境条件如实记录)。
- 设计说明 §10 修复记录:板级验收结果行回填 + 台架环境新事实(拼接盘态口径相抵记账)+
两条 i104 观察项(软复位首绑必失败 / 重试成功静默)建议各自开票。
- 手册 §4 步 7 判废行判读表 + 开页作废纪律、§8 [ERR] 停幕例外的坏段轮点名放行;
ui_task.c 注释指向改 §4 步 7 与 §8(纯注释,Code=254960 复建一致)。
- 任务规划 README 独立行:#93 修复与板级验收里程碑。
2026-11-07 23:42:10 +08:00
wandering1
fe84a80912
Merge pull request 'ftl: add P0 bench verification probes ( #85 )' ( #96 ) from dig-volume-view-283370226187 into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 46s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/96
2026-11-07 22:20:58 +08:00
wandering1
ebb64f6df2
Merge branch 'master' into dig-volume-view-283370226187
CI / 静态门禁 (pre-commit) (pull_request) Failing after 29s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 44s
2026-11-07 22:20:40 +08:00
wandering1
01fde986ee
Merge pull request 'docs(wave): 触发源字母汉字化注记——手册补 src 速查表,人读文案改「保护触发(P)」式(#83)' ( #97 ) from docs-trig-legend-83-6f432acbeab7 into master
...
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/97
2026-11-07 22:12:29 +08:00
super_agent_bot
82a84a4264
docs(wave): 触发源字母汉字化注记——手册补 src 速查表,人读文案改「保护触发(P)」式(#83)
...
CI / 静态门禁 (pre-commit) (push) Failing after 45s
CI / 主机侧单测 (MSVC) (push) Failing after 42s
用户反馈「P 触发」这类字母看不懂(#83 评论 755)。
- 手册开头补「触发源字母速查」:M=手动录波 / P=保护启动触发 /
T=定时自抓(bench)/ -=本次上电未触发;注明四字母是串口与台架
脚本的 grep 契约、不改汉字,契约定义属主仍指设计说明 §9;
- 手册 §1/§5/§9、docs/README、任务规划 README §2.0 的人读文案把
裸字母改成「保护触发对时刻(src=P)」式汉字在前的写法;
- 串口字段 src=P / src=T 与测试数据目录下的抓帧原件逐字保留。
2026-11-07 22:09:39 +08:00
wandering1
2aa4561af6
Merge branch 'master' into dig-volume-view-283370226187
CI / 静态门禁 (pre-commit) (push) Failing after 46s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 46s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 44s
2026-11-07 22:06:44 +08:00
wandering1
33b52410f9
Merge pull request 'fix(wave): bench 定时自抓到期判定无符号回绕恒真修复,第四幕板级闭环入档(#84)' ( #95 ) from exec-issue-84-1f621ac1c3ce into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 45s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/95
2026-11-07 22:05:57 +08:00
wandering1
c6043af6c0
Merge pull request 'fix(wave): 回放页开页作废钉表重扫 + 判废串口逐次留痕(#93 F1/F2)' ( #94 ) from fix-wave-findings-b8c190da2e56 into master
...
CI / 静态门禁 (pre-commit) (push) Has been cancelled
CI / 主机侧单测 (MSVC) (push) Has been cancelled
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/94
2026-11-07 22:02:06 +08:00
super_agent_bot
aa831968ea
ftl: add P0 bench verification probes ( #85 )
...
CI / 主机侧单测 (MSVC) (push) Has been cancelled
CI / 静态门禁 (pre-commit) (pull_request) Has been cancelled
CI / 主机侧单测 (MSVC) (pull_request) Has been cancelled
CI / 静态门禁 (pre-commit) (push) Has been cancelled
Add two bench empirical verification probes for the whole-volume stale
view investigation:
1. Write-commit readback probe in dhara_nand_prog(): after a successful
program, immediately read back the same physical page and compare
byte-by-byte. Log ECC errors and data mismatches with a counter.
2. Map state logging in ftl_flush_cache(): after each successful
dhara_map_write, log the journal root/head/tail/epoch/count to
correlate with bench stale-view events.
Both probes are marked as bench-only and should be removed before
production release.
2026-11-07 21:57:46 +08:00
super_agent_bot
1df02c4658
fix(wave): bench 定时自抓到期判定无符号回绕恒真修复,第四幕板级闭环入档(#84)
...
CI / 静态门禁 (pre-commit) (push) Failing after 4m54s
CI / 主机侧单测 (MSVC) (push) Successful in 51s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 4m29s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 41s
F0(唯一代码改动,#if DTU_BENCH 闸内,产品影像零漂移):
adc_task.c 原无符号判据 (uint32_t)(now-next)>=PERIOD 在 next=now+PERIOD
挂出后立刻成立(now<next 差值回绕成巨数),台架实证 1 kHz 连发请求:
ovf 每秒 +1000、段节奏被去重钳到 ~1.5 s/段,违背 ON 行承诺
「1 seg / 2000 ms」。改有符号比较(半程内回绕安全)。修复后实测
seg 恰 +5/10 s;bench Code=255284 vs 产品 254820(差 464 B)证门控。
第四幕三判据板级实证(手册 §6 步骤 3 逐条对上):
- 临界占卷命中唯一 [ERR] seg drop: ring abandoned(idx=36),心跳
err 恰 +1,段号不推进、同号 5250 B 重写(P1/P2/P3 + sha256 固化);
- 长占卷 72.6 s 静默自弃 err 1→15 零留痕(不是每拍刷屏最严形态);
- 占卷期间 104 STARTDT 实测应答 + UI 主菜单照常(丢录波不丢采集)。
现场发现 F1(单发未复现软件复位,只记不断)/F2(lftpd 放锁早于
DOWNLOAD 落账 ~0.13 s,临界命中方法钥匙)/F3(pack_next 留痕板级
首见,同族分支)入设计说明 §10 闭环记录。
文档销项:设计说明 §5.2 L163 / §10 留痕名清单 / 板级行 / 未跑清单
四处标记闭环 + 新增「bench 定时自抓与占卷弃段观察闭环记录」小节;
到场轮手册 §1 第四幕行标已完成 + §6 收工状态注记。
收工:FILLER/FILL2/FILL3 删净,产品构建 21:32:52 已烧(除 #53 i104
首绑 FAIL 行外 8/9 required 全过、端口 STARTDT 实测活,沿用 11-06
先例定性);UI 主菜单;证据目录 docs/测试说明/测试数据/
wave_bench_20261107/(README 判据对照 + 原始/复原串口摘录 + 各轮
JSON + 启动锚点两跑日志)。
2026-11-07 21:55:06 +08:00
super_agent_bot
36e309576f
fix(wave): 回放页开页作废钉表重扫 + 判废串口逐次留痕(#93 F1/F2)
...
CI / 静态门禁 (pre-commit) (push) Failing after 5m49s
CI / 主机侧单测 (MSVC) (push) Successful in 48s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 3m37s
CI / 主机侧单测 (MSVC) (pull_request) Successful in 29s
F1 开机后 FTP 新 STOR 段不进回放页钉住段表(#68 轮现场发现):
注入表新增第七件 wave_enter 作废钩子(纯内存零 I/O),页面
pg_init(方案 A)与空态左右键再探(方案 B)各调一次;重扫仍懒
在首帧绘制,开页链零 I/O 不破;页内普通按键不作废,2026-11-02
钉表防抖纪律零改动。manual_req 同族同纪律:段表与段头缓存一起
作废,同号覆盖不拿旧尺子量新段。
F2 数据 CRC 判废串口静默(同轮发现):ui_task_wave_load_head()
五类 BAD 出口(头解析/长度等式/窗读/尾读/CRC 不符)收敛为一条
`ui wave head idx=%u reject=%u stored=0x%04X calc=0x%04X`;
reject=5 带 stored/calc 值对,与 PC 侧 wave_read REJECT 行同名
同值互证;reject 1..4 两字段 0 占位。ERROR 级、不判重(判废是
低频人工动作,逐次留痕),裁定与判读表随第二笔提交入手册 §3。
验证:keil 0 err 0 warn(ER_IROM1 285940 B,+224 B,内存两份
台账 --write 同步随本笔入库);ui-golden 菜单 8 态 + 内容页 74
张全过、录波回放三态像素零刷(模拟器假桩 no-op 即行为不变);
宿主 ui_data 295 / ui_sink 17 / wave_ring 113 / wave_store 170 /
wave_trig 110 全绿。板级五项验收进行中,设计说明 §10 / 手册
§3-§4 修订与台账销项随第二笔。
2026-11-07 19:16:21 +08:00
wandering1
06baf7a531
Merge pull request 'docs(hw): ④ 段变比定死入通道映射——电压族 606.06:1、电流族 29.4118 A/V,eng 保持 0(#41)' ( #92 ) from write-ratio-41-fba44d301c82 into master
...
Reviewed-on: #92
2026-11-06 19:41:56 +08:00
wandering1
8a24c7ac85
Merge branch 'master' into write-ratio-41-fba44d301c82
2026-11-06 19:41:42 +08:00
wandering1
2ed715f6d5
Merge pull request 'docs(故障录波): 第二幕尾步坏段/空态画面板级闭环入档(#68)' ( #91 ) from remote-shoot-68-274d2d56da74 into master
...
Reviewed-on: #91
2026-11-06 19:40:06 +08:00
super_agent_bot
2e4c167bfb
docs(hw): ④ 段变比定死入通道映射——电压族 606.06:1、电流族 29.4118 A/V,eng 保持 0
...
用户在 Issue #41 现场报子板参数:PT 2mA/2mA、输入侧 200 kΩ、输出侧 330 Ω;
CT 5A/2.5mA、输出侧负担 68 Ω。先复核算术后入库:
- 200000 ÷ 330 = 606.060606… V/V ✓;5 ÷ (2.5mA × 68Ω) = 5 ÷ 0.17 =
29.41176470… A/V(= 匝比 2000 ÷ 68)✓,两数与报参口径一致,未发现算误。
- 电流族"变比"实为带单位的 A/V(I端子 ÷ UAINn),与 V/V 不可混写,文档分注。
改动全在 docs/硬件平台/ADC通道映射说明.md(#41 口径:本卡不动代码、
ROM、登记簿):
- §7.1 链路分段表 ④ 行由"仍待实测确认"改"定死(参数算定)",给出两族数值;
引文与可评审结论 1/3/4 同步收口。
- 新增 §7.2 登记:算式与额定点(400 V→0.66 V、5 A→0.17 V)、②×③×④ 端到端
标称系数表(92.48 / 488.28 mV/码、4.488 / 23.70 mA/码)、复核口径——铭牌
参数非本板实测,数值确认归两点标定;`eng` 判定:④ 到手满足第一条件,
电气 8 路 ADC_CAL_F_VALID 未置位,eng 保持 0,两点标定转为可开工。
- 移交两点标定卡的两道存储题:电压族端子域标称 k 越 int32 Q16 µV/码上限
32767,且合法带基准读 ROM 出厂表(引脚域)——写入端子域系数前存储单位
与出厂表须一并换血。
验证:check_doc_links.py --all 与 no-mojibake 实跑通过;docs-only,
/keil-build 不适用。
2026-11-06 19:10:21 +08:00
super_agent_bot
c40fd24c1a
docs(故障录波): 第二幕尾步坏段/空态画面板级闭环入档(#68)
...
同号翻位覆盖列内段 WAVE06 → 回放页显式「该段不可读」(零波形元素,
判据「绝不许画直线」过);全删段 → 「无录波段」空态 + 串口
open fail fr=4 互证。证据目录 wave_shot_20261106:三态 PNG 与原始
帧、坏样本与原件、PC 侧 wave_read REJECT 实录、串口摘录、sha256
清单。收工:板上九件原件逐件 sha 复验恢复、坏样本不留板(§7 二
选一取删除),UI 停 STANDBY。发现 F1(STOR 新文件不进钉表,需同
号顶当前段或手动录波触发重扫)与 F2(数据 CRC 判废串口静默、画
面自证)记 §10。同步销项:手册第二幕状态与现场记录表第 3 行、
设计说明 §10「回放页坏段/空态画面闭环记录」、任务规划 README
§2.0 独立行。本轮不改代码。关联 #68 #38。
2026-11-06 18:35:40 +08:00
wandering1
ad87f979b1
docs(规约): 删除编号规范.md,生效规则并入文档规范 §7.1
...
用户裁定:docs/编号规范.md 在项目里已无意义,删除。
依据:该文 253 行里真正仍生效的只有两条规则(新条目一律不发编号、
人读文档存量编号继续清退)和一张存量族表;其余内容早有归属——两道
编号门禁的退役记录在 docs/门禁说明/id-check.md 与 id-check-new.md,
手工普查与恢复机器面在 scripts/archive/id_gate/README.md。留着就是
第二真相源,同一事实写在两处迟早漂移。
处理:
- docs/文档规范.md 新增 §7.1「条目与编号:一律不发」,承接规则、
场景表、三条硬规矩、存量族表、已停发旧号族清单、不是编号的清单、
清理动作与「没有机器门禁兜底」四段。
- 活跃引用 62 处逐条改指 §7.1 或归档 README:AGENTS.md 2 处、
门禁说明三篇 18 处、其余文档 11 篇、代码与脚本 10 处、rename_maps
七个 record 字段、.dsh/skills 四个文件 8 处。
- 归档区 107 处去掉 docs/ 前缀当纯文本提及;编号治理历史.md 45 处
改为「原编号规范 §N」,避免被 doc-links 当自引用解析。
- 顺带修正 scripts/archive/id_gate/README.md 里仍称旧文为现行规范
的表述。
门禁:check_doc_links --all --sections-strict 220 篇全通过、无法判定 0;
pre-commit 全 Passed。
2026-11-06 18:32:04 +08:00
wandering1
c7c0125982
docs: 增加硬件平台关键元器件笔记(压敏电阻 10D102K)
...
docs/硬件平台/关键元器件.md:记 10D102K 氧化锌压敏电阻的工作
原理(正常高阻、瞬态击穿钳位、浪涌后恢复)与典型应用场景,
供选型与防护设计查阅。
2026-11-06 17:43:55 +08:00
wandering1
163b933715
docs: 数据可信与 ADC 通道映射只留现状,清历史与悬空引用
...
数据可信.md 与 ADC通道映射说明.md 按「只写现状」口径重写:
删历史沿革、推理过程与已删小节的残留指针,保留现行判据。
- 数据可信:§2.7 删「当时的证据」六行表;§4.6.1 标题改「范围与
幅度上限」、四行改现状陈述;§4.6.2 删轮次名历史映射注;§4.6.3
段文件行去过程语;删节尾孤立排程段;§4.4 负零点段收成现状结论。
- 数据可信:把「系数合法带」从已删的 §8 风险表搬回 §4.1(代码头注释
仍指向它,属搬回不是新发明)。
- 数据可信:行号纠错 adc_task.c:382 -> :425、protect_task.c:245 ->
:268,逐个 grep 核对。
- 跨文档与代码:12 处指向已删 §4.6.4/§4.6.5/§8/§9/§10 的悬空引用改到
现存小节或内联结论,涉 6 处 App 源文件头注释与 6 篇文档。
- 两个 SVG 生成器文案同步重跑,产物同笔提交。
check_doc_links --all 通过(221 篇);pre-commit 全绿。
2026-11-06 17:41:11 +08:00
wandering1
c2a946f993
Merge pull request 'docs(ui): Issue #53 台架轮复核销项——六页真机判据上板复核完成(RESTARTED 标不可验)' ( #90 ) from bench-verify-ui-pages-f9c1662bf18b into master
...
Reviewed-on: #90
2026-11-06 09:37:18 +08:00
super_agent_bot
3da3936ffe
chore(sync): 空合并提交触发 PR #90 可合并性复测(master@8772420 已在 e1476e1 中合入,内容零变化)
2026-11-06 08:41:40 +08:00
wandering1
e1476e12c1
Merge branch 'master' into bench-verify-ui-pages-f9c1662bf18b
2026-11-06 08:21:23 +08:00
wandering1
87724205c9
Merge pull request 'docs: #39 收尾——子项 A 收口审计 + 子项 B 台架重验证据写入模块文档' ( #89 ) from queue-issue-39-d318f32c6528 into master
...
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/89
2026-11-06 08:18:27 +08:00
super_agent_bot
416e92f109
docs(ui): Issue #53 台架轮复核销项——六页真机判据上板复核完成(RESTARTED 标不可验)
...
CI / 静态门禁 (pre-commit) (push) Failing after 3m10s
CI / 主机侧单测 (MSVC) (push) Failing after 44s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 47s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 44s
台架轮(2026-11-06,实机 192.168.31.100 生产固件,boot 187–193,
ST-LINK + RemoDispBus 7003 按键注入/抓帧 + FTP 取证,全程持 bench 锁):
- 判据1 真记录翻页与保持:oper 73 条 19 页 / yk 34 条 9 页 / start 2 条
1 页实机翻页连续,页数与盘上条数交叉吻合;跨 188–193 六次重启
(IWDG/NRST/系统复位,RAM 每次全清)YK/START/WDEV md5 逐字节不变,
RUN/SOE/OPER/SELFTEST 纯追加、旧记录区零改写。
- 判据2 清除记录后对应页归零:oper 73→0、start 2→0、yk 34→0(页显
「无记录」+ NAND 对应文件消失);告警行空类清除幂等;RUN/SOE/
SELFTEST 清除前后逐字节一致(逐行独立清除证实);OPER 由后续写入
自动重建且恰含三条清类留痕、清 oper 自身不留痕(留痕契约证实)。
- 判据3 上电一次 boot_count +1:187→193 六连号无跳变,电池域 SRAM
保持+回写正常;本机无市电开关,以系统复位代理完整上电(覆盖
SRAM 存储语义),真·拔电 POR 计数差额留人工一眼补验。
- 判据4 拔 RTC 电池落 RESTARTED:台架不可验(用户裁定 2026-11-05),
销项不挂账;seq_state 四态判定归主机单测 test/host/boot_stats/ 覆盖。
- 判据5 IWDG 复位落「独立看门狗」:SWD 热插拔现场收窄看门狗窗口
(PR=0/RLR=2,窗口 ≈0.37ms ≪ 100ms 喂狗节拍)触发真实计数器溢出
→ rst_cause=独立看门狗;咬后 wd_platform_start 自愈回 PR=4/RLR=1249。
调试停机(DBGMCU_APB1_FZ 实读 0)与 NRST 硬脉冲两条不咬路径的
归因已记台架台账(Issue #53 评论)。
- 判据6 主站接入一次 conn_up +1:75s 静默窗(前后帧逐字节相同)后
单次 STARTDT 连接恰好 +1,发送帧数 +1、接收字节 +6B 交叉印证。
销项:六页文件头「台架待补」段改为「台架复核已完成」(模拟器口径
保留);模拟器差距清单 §2.3 开机账本行更新复核口径;登记簿 §7
「UI 六页真机判据」行删除(工单授权),交叉引用同步(任务规划
README、产品需求 FR-SOE-3)。清除动作是判据 2 本体,清前全量
NAND 记录已备份(PC 侧),留证于 Issue #53 台架轮评论。
门禁:check_doc_links --all 213 文档过;主机侧单测 48 runner
4257 断言全过;ARMCC 全量构建 0 Error 0 Warning
(Code=254820 RO=30896 RW=2072 ZI=150104);ui-golden 菜单 8 状态
+ 内容页 74 张黄金参考一致(本机按部署文档第 3 步补装 SDL2 SDK)。
附带:内存数字两文档随 .map 同步——RAM 台账受管区 3 行 +
RAM 使用分析快照 3 行(mem-budget / mem-numbers 门禁随本票
Drivers/BSP staged 触发的 HEAD 既有漂移修正:#73/#79 合入后未跑
--write;285,716 B 与体积凭证一致,全部 PASS/参考,无红线变动)。
体积凭证指纹陈旧同为 HEAD 既有(488f6fb 起),本票纯注释/文档
不动体积面,不越权刷新。
2026-11-06 03:49:18 +08:00
super_agent_bot
685e3b58f5
docs: #39 收尾——子项 A 收口审计 + 子项 B 台架重验证据写入模块文档
...
CI / 静态门禁 (pre-commit) (push) Failing after 7m23s
CI / 主机侧单测 (MSVC) (push) Successful in 31s
- docs/网络/网络自愈架构设计.md:新增 2026-11-06 台架重验条目(子项 B 完成判据达成)
- docs/子系统设计/看门狗设计说明.md:新增 2026-11-06 变更记录(uiTask ≥800ms 饿死签名新负载下不复现)
- docs/任务规划/README.md §2.0:第 2 行 net 层跨上下文收口 → ✅ 2026-11-06 闭环
- docs/任务规划/登记簿.md §6:第 1 项销项并重新编号
Closes #39
2026-11-06 02:11:24 +08:00
wandering1
829c2580bb
Merge pull request 'build(mdk): Keil 可逆排除 126 个零产出 LVGL 编译单元,全量重建 21.5→18.3 s(-14.6%,#46)' ( #87 ) from execute-issue-46-214251580469 into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 4m36s
CI / 主机侧单测 (MSVC) (push) Successful in 32s
Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/87
2026-11-06 01:04:31 +08:00
wandering1
0f2aec8850
Merge pull request 'docs(storage): #45 复核结论——卷锁无第二写者,全序列卷锁项关闭(销项)' ( #86 ) from execute-issue-45-262ec492e96a into master
...
Reviewed-on: #86
2026-11-06 00:05:47 +08:00
super_agent_bot
488f6fbf21
build(mdk): Keil 可逆排除 126 个零产出 LVGL 编译单元,全量重建 21.5→18.3 s(-14.6%,#46)
...
CI / 静态门禁 (pre-commit) (push) Failing after 44s
CI / 主机侧单测 (MSVC) (push) Failing after 44s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 45s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 45s
按 #46 判据「有实测收益才保留改动」执行,证据(同机同基线 c487ce42,UV4 -r 墙钟):
- 基线 4 次全量重建均值 21.46 s → 排除态 4 次均值 18.33 s,-3.13 s(-14.6%);
增量最坏对照(touch lvgl.h 后 -b)9.66 s/83 单元 → 8.06 s/45 单元(-16.6%)。
- 影像等价:Program Size 四项全同(Code=254820 RO=30896 RW=2072 ZI=150104);
.hex 286,084 字节两两比对仅差 0x08007C6B–6F 的 fw 时间戳横幅(基线之间同差);
.map 符号表逐行比对,基线独有 126 行恰为被排除单元的 ABSOLUTE 文件记录。
- 零产出认定:3 次基线 .map 的 Image component sizes 中 Code/RO/RW/ZI 全 0,
名单一致(121 空 TU + 6 仅调试记录)。Cross Reference Table 不动点收敛得可安全
排除集:lv_circle_buf.c 因被保留的 lv_iter.o 静态引用而保留(armlink 先解析
后死删,127 全排实测 L6218E×9);净排除 126 个。
- 形态:仅加每文件 <FileOption><IncludeInBuild>0</IncludeInBuild>,不删条目,
GUI 可逐项恢复,revert 单笔整体回滚;FilePath 集合不变(registration-check 过)。
- 本机构建对工程文件零抖动;最终一次全量构建(18.20 s,0E0W)跑在提交字节上。
- sim/CMake 不涉及;LVGL 源码零改动。台架回归不需要:镜像与已验收基线逐字节
等价(除时间戳)。
Issue: http://100.123.83.113:3001/wandering1/STM32F4-Base/issues/46
2026-11-06 00:03:33 +08:00
super_agent_bot
84f46b5660
docs(storage): #45 复核结论——卷锁无第二写者,全序列卷锁项关闭(销项)
...
登记簿 §2「可选全序列卷锁」按其判据(无第二写者则关闭)销项:
master c487ce4 枚举全部生产卷访问点——写者 syslog/soe/cfg/prot_set、
录波段、lftpd,读者 UI 两径,空闲 sync——全部持卷锁或走屏障;
启动期卷写由 STORAGE_READY 屏障门控(default_task.c bring-up)。
「存储侧喂狗饥饿」2026-10-02 后无新台架证据:F2/F3(10-25)、
录波枚举(11-02)、PR #82 补验 soak(11-05)均无该签名;dhara
try_recover 自旋有界(8 次 restart 定案 TOO_BAD)且 FTL 入口
nand_ftl_wd_feed() 直接喂 IWDG,观察行留存并更新现状字段。
覆盖面审计沉淀进 存储架构说明 §10.5;登记簿 §6 第 3 项销项、
uvprojx 观察行升 3;项目架构总览 fs/ 行旧「三条路径」口径更正。
评估过程与逐条证据:Gitea issue #45。
2026-11-05 23:51:23 +08:00
wandering1
c487ce4225
Merge pull request 'fix(cfg): 热重载读侧三点一致性校验——掐断打回出厂与保存吞段(#73)' ( #82 ) from fix-config-reload-03ecc431fc5e into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 5m15s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
Reviewed-on: #82
2026-11-05 18:26:56 +08:00
super_agent_bot
b66fcc4d87
docs(cfg): HELD 日志行“两数相等”语义注记(内容判据命中)(#73)
...
CI / 静态门禁 (pre-commit) (pull_request) Failing after 44s
CI / 主机侧单测 (MSVC) (pull_request) Successful in 49s
台架实录中出现 `poll: view 1064B != stat 1064B, HELD`:两数相等是
设计使然——同尺寸旧映射块命中内容判据(s_view_bad),并非空读/
短读。首读该日志易误判为格式串错误,在 §5.3 守卫条目补一句语义
注记。纯文档改动,不影响代码指纹与体积门禁。
2026-11-05 17:27:34 +08:00
super_agent_bot
1a2ca0467d
fix(cfg): 视图守卫补内容判据——同尺寸全 0 旧映射块也能拦(#73)
...
CI / 静态门禁 (pre-commit) (pull_request) Failing after 6m33s
CI / 主机侧单测 (MSVC) (pull_request) Successful in 35s
CI / 静态门禁 (pre-commit) (push) Failing after 5m7s
CI / 主机侧单测 (MSVC) (push) Failing after 43s
台架(PR #82 head d9303e05,常授权烧写验证)在三点校验版守卫上继续复现
出打回形态:卷层给出的旧映射块与目标文件恰好同长(1064B)且整块全 0,
读长 == st.size 与读前后复 stat 全部通过,解析零错误、RAM 照样打回默认
(15:21 决定性轮:盘文件 RETR 校验七段完好,重载窗口内 s_sntp 三字节段
全 0)。纯令牌层校验对"内容坏"是盲的,必须补内容判据。
处置(引擎侧,与三点校验同族):
- 新增 s_view_bad:重载/保存读到的视图若为空读、或 [0,len) 内任意偏移
含 NUL 字节即判坏——INI UTF-8 文本约定下任何偏移都不得含 0x00;解析
器按行切分遇 NUL 即断行,零块之后的内容本就不可达(静默截断同源故障),
拒之不误伤任何可解析文档。不要求首字节 ';'(手写文档可直接段名起始)。
- poll:坏内容 = 与长度/令牌不符同处置——拒绝应用,RAM 与基线不动,2s
重试自愈,首次 ERROR + 自检留痕,每 30 趟一条 WARN(限速)。
- save:坏内容同族拒存返回 -1,原文件一字节不动,调用方 dirty 保留重试。
- 边界如实保留:内容合法但陈旧的整卷视图(长度/令牌/内容三者皆一致滞后)
引擎层无法检出,属卷层(dhara/FTL)课题,重启必然收敛;"改过配置后
重启一次"在卷层根治前仍是最稳口径。
测试:
- TC-CONFIG-061(poll 同尺寸全 0 块 HELD + 视图刷新自愈 + 零回调)、
TC-CONFIG-062(save 遇全 0 块拒存、文件字节/写次数不动、追平后重试
成功);桩新增 vfs_mark_stale_zeros() 注入同长全 0 旧视图。
- cfg_file 套件 259/259;iec104 179/179、run_par 67/67、adc_cal 117/117、
sntp 98/98、cfg_file_store_mcu 34/34 复跑全绿。
- /keil-build 0 错 0 警:Code 254,784 -> 254,820 B(+36 B);台账与同码
凭证已同步。台架实录见 PR #82 评论:NUL 注入块实机 HELD(16:55:46)
+ WARN 节拍 30/60 趟命中(16:56:42/16:57:41)+ 视图转新鲜后重载自动
追平;残余打回事件均为"内容合法但陈旧"整卷视图(15:19:30/16:34:59/
16:58:38),属已声明守卫边界,盘文件全程未吞段,重启收敛实机确认
(17:04 RAM 回文件值)。
文档:
- 《配置文件设计说明》§4-(3)/§5.3 守卫描述补内容判据与 15:21 实证形态、
风险表行更新、变更记录 v1.17 行同步;
- 《配置文件单元测试说明》TC-CONFIG-061/062 行 + 当前结果 259/259 +
扩展指南补 vfs_mark_stale_zeros()。
2026-11-05 17:08:25 +08:00
super_agent_bot
d9303e05a4
fix(cfg): 热重载读侧三点一致性校验——掐断打回出厂与保存吞段(#73)
...
CI / 静态门禁 (pre-commit) (push) Failing after 8m2s
CI / 主机侧单测 (MSVC) (push) Successful in 40s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 5m10s
CI / 主机侧单测 (MSVC) (pull_request) Successful in 37s
真机 #73:运行中改配置触发热重载,卷层(dhara)偶发返回旧/短
视图时,引擎把该视图当成文件全文:逐段按缺省解析后整盘打回
出厂默认且不自愈;此后任何一次保存又按缩小的视图做手术式
重写,文件越写越小(台架 1066B→986B,[sntp] 段整体丢失),
即真机对时静默 10.5 小时的元凶。
处置(引擎侧根因无关防御;卷层回滚归 #79/#81 已合并的 FTL
修复域):
- poll:读完加三点校验(读长==stat.size、读前后 re-stat 的
size/mtime 一致),判为旧/短视图则 RAM 不动、基线不刷新、
每 2 拍自动重试自愈;首次拒绝留 1 条 DBG_ERROR+syslog,
之后每 30 拍一条 WARN 提示重启收敛。
- save:同型三点校验,视图与 stat 不符返回 -1 且文件不动,
调用方保留 dirty 下拍重试,吞段链在第一次保存即被掐断。
- 边界:「一致但陈旧」的整卷回滚引擎层无法区分,靠重启
收敛,已写入设计说明风险表与文档口径。
测试:新增 TC-CONFIG-058/059/060(旧视图保持 RAM、保存短
视图拒写、读中改写拒绝+日志限速)。cfg_file 239/239;
iec104 179、run_par 67、adc_cal 117、sntp 98、
cfg_file_store_mcu 34、net_cfg 48、ftp_cfg 16、prot_set 90、
prot_dim 38 全绿;/keil-build 0 Error 0 Warning。
文档:配置文件设计说明 §(3)/§5.3/风险表/变更记录 v1.17;
单元测试说明 058–060 行;网络配置说明与产品需求 FR-CFG-3
同步口径;台账随新鲜 .map 由 ram_baseline --update 回填。
2026-11-05 12:35:46 +08:00
wandering1
0d5cd1c8d1
chore(skills): 删除 template-skill 占位模板(零引用出厂噪音)
2026-11-05 10:11:35 +08:00
wandering1
c44f985afb
docs: 谐波B行按板端前端真实衰减关闭——结论现状化与登记
...
CI / 静态门禁 (pre-commit) (push) Failing after 5m19s
CI / 主机侧单测 (MSVC) (push) Failing after 44s
- 执行手册:用户裁定删除 §8.6–§8.10 尾部(顺序/分诊/还原/归档节);
谐波 B 行结论只留现状(删万用表分诊、三点拟合、嫌疑解除等过程叙述)
- 定案:250 Hz 读数 −4.4 % = IA 前端差分滤波(C35 100 nF + R19/R21
各 1 k,一阶低通 fc ≈ 796 Hz)真实衰减,板端读数忠实、量算皆对;
工频 50 Hz 仅 −0.2 % 不受影响;选择性成立;谐波产品化需板改
- 通道映射 §8.2 新增前端 RC 段:逐阶外推(21 次 −39.6 %,改 10 nF
后 −0.9 %)、改板优先于软件修正的理由、证伪条件(250 Hz 附加滞后 ≈17°)
- 数据可信.md:§2.7 谐波行同步;任务卡打勾保留并标注四项未闭合
(叠加轮/削顶低频档/测频改码档/模型仪器证伪);README 顺位表 ✅
- 登记簿 §3 新增「IA 前端差分滤波限制谐波带宽」条目(语义标识)
- 证据:ia_rc_model.py 输出归档 boot_log_data 并入 manifest(LF 重算
md5);速查图生成器脚注同步并重跑(脚本与产物同笔)
- check_doc_links --all 通过(3206 处、无法判定 0)
2026-11-05 09:34:27 +08:00
wandering1
dc09217834
docs: 六轮动态验证收尾——削顶低频档按裁定关闭、记录回填与证据归档
...
- 削顶步 2(UB 注 DC −1.00 V)2026-11-04 已做:唯一 [ERR] rail edge=0x2
sticky=0x2、UB 钉 0 码、撤注后 rail=0x002 恒持 ≥30 min = sticky 锁存实证
- 步 3(2.0 Hz 低频档)与复位复核经用户裁定 2026-11-04 关闭:直流档已闭合
判据链,sticky 唯一清除路径 = adc_health_rail_init()(实现背书,不占台架)
- 相位 0°/90° 段 WAVE09 录波 fft 重算 Δφ = 90.05° PASS(判据 ≤2°);
测频 332 行复证「如实报不可测」;谐波 A/C 过、B 行 −4.4 % 待万用表分诊
- 执行手册 ADC前端注入验证流程.md 各轮记录表回填 + 削顶卡步 3 行关闭注;
实测结论新开 ADC通道映射说明.md §8.2(§8.1 静态轮加澄清句)
- 数据可信.md §2.7 / §4.6 / §5 任务卡现状化(削顶转 ✅ 、未闭合仅剩谐波 B)
- 证据归档 boot_log_data:6 份 txt 摘录 + 3 份录波段原件(*.BIN 被全局
gitignore 挡,段原件是相位判据本体,force-add 入库)+ md5 清单
2026-11-04 22:16:35 +08:00
wandering1
87fa0276ad
docs: 六轮验证文档剔除104读数通道+字母编号黑话清扫
...
CI / 静态门禁 (pre-commit) (push) Failing after 3m46s
CI / 主机侧单测 (MSVC) (push) Successful in 29s
注入流程/数据可信/故障录波设计说明三份文档与速查图
全部剔除104作为量测工具(YC交叉、0x401D/0x4012观察项、
§8.6第7步整行;总耗时150改135 min);104仍是固件消费者
与送检参照,架构表述保留。
注入流程全文清扫:A档/B档/定量档/定性档/段档/标量档等
字母编号与黑话清零;波形轮注简化为三句;通用动作段重写
为编号四步。
数据可信属主同步:§4.6前提表、§4.6.2三行判据、§4.6.3
读数点对比表、DoD证据归档口径。
内存内容分配策略.md:22修复编号改名事故(STM32L4被误替换
成「出口与记录」),按git原文恢复。
速查图生成器gen_ac_rounds_svg.py三处文案+脚注同步改并重跑,
脚本与产物同笔提交。
2026-11-04 19:04:31 +08:00
wandering1
740bcbcc37
Merge pull request 'fix(nand-ftl): 传输失败不再误标坏块 + format 不再被脏缓存挡死(#79)' ( #81 ) from fix/nand-ftl-format-deadlock into master
...
CI / 静态门禁 (pre-commit) (push) Has been cancelled
CI / 主机侧单测 (MSVC) (push) Has been cancelled
Reviewed-on: #81
2026-11-04 19:01:36 +08:00
super_agent_bot
5538af829b
fix(nand-ftl): 传输失败不再误标坏块 + format 不再被脏缓存挡死(#79)
...
CI / 静态门禁 (pre-commit) (push) Failing after 43s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 44s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 43s
根因(真机定案,问题 #79):旧 dhara_nand_erase/prog() 把一切失败一律
mark_bad,而 mark_block_bad 每次**立即持久化**板级 BBT(不可撤销)——
一次传输层/等忙抖动就把好块永久记成坏块。台架 129 个好块(1016–1142
连续段)被固化,journal prepare_head() 连续 8 次撞 is_bad → TOO_BAD →
Cache flush FAIL → reformat 又被同一页挡住 → 整卷禁用、重启不恢复。
- 修复①:只有芯片明确回 E_FAIL/P_FAIL(状态位证据)才标坏;
传输/超时失败只报 DHARA_E_BAD_BLOCK 让 dhara 重试,不标坏
- 修复②:nand_ftl_format() 尽力刷一次脏缓存,失败即丢弃并继续
dhara_map_clear()(格式化语义本就是销毁映射;旧实现第一步返回,
恢复动作在同一页死锁,f_mkfs 全在旧映射上必失败)
- C4 还债:新增跨调用失败类快照 nand_ftl_fault_get/clear(20 B,
resume/读/刷/同步四点位记账);defaultTask 探针按类分流,
BSP_ERR_NO_SPACE 跳过重格式化(容量问题不该用 mkfs 解)
- 哨兵与诊断:init 解锁块保护(A0h)后补回读校验(与 B0h ECC 同族
缺口,实测本板 A0h=0,非本次根因,留作哨兵);gd5f_bbt_load()
合并后坏块数 > 出厂扫描时打「BBT after merge」,现场可区分
真坏与误标固化
- 测试:主机单测 149→178 全绿;新增 format 死锁(TC-NANDPORT-800..
813b)、传输失败不标坏(207 语义翻转 + 208/505);牙齿检查过——
把修复回退即见红
- 真机:恢复动作 A 重建 BBT 清除已固化误标(3/3 PASSED,BBT
version=71);产品镜像复烧 [FS] FATFS mounted、配置出厂模板
落盘、0 条 flush FAIL——#79 真机闭环(旧卷内容随 map clear
作废,台架卷为可弃数据)
- 文档:存储架构说明 §10.4 口径修正 + 新增 §10.4.1/§10.4.2(页级
失败升级链与误标持久化机理),存储维护与容量恢复 §2 补板级 BBT
独立持久化注记 + §2.1(动作 A 此前静默失效),登记簿 C4 销项
- Keil 0 错 0 警(Code=255552,与烧录验证镜像一致);doc-links 213
文档通过
2026-11-04 18:58:13 +08:00
wandering1
1f94015434
Merge pull request 'refactor(time_sync)!: 退役 TCP :8888 对时任务,timeSyncTask 转纯 SNTP 校时节拍宿主(#78)' ( #80 ) from remove-8888-timesync-a6657322808f into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 5m15s
CI / 主机侧单测 (MSVC) (push) Successful in 39s
Reviewed-on: #80
2026-11-04 18:26:40 +08:00
super_agent_bot
3a2f9b21fb
refactor(time_sync)!: 退役 TCP :8888 对时任务,timeSyncTask 转纯 SNTP 校时节拍宿主(#78)
...
CI / 静态门禁 (pre-commit) (push) Failing after 43s
CI / 主机侧单测 (MSVC) (push) Failing after 45s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 45s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 45s
SNTP 客户端已随 #73/PR #77 上线合入(merge 2b848c4a),用户裁定
8888 对时任务退出历史舞台(gitea:77 线程原话,跟踪 Issue #78)。
生产侧(App/sync/time_sync.c v2.0,任务入口名不变,freertos.c 零改动):
- 删除 :8888 监听、TIME 包重组、sys_clock 写入、OPER 落痕、
net_drop_conn 队头自救整条链(TIME_SYNC_PORT 宏随退役删除)
- 任务体收敛为:就绪屏障(100ms 分片、osFlagsNoClear)→
200ms 校时节拍 task_wd_beat → time_sntp_run(net_get_generation())
→ 分片延时;喂狗节奏(TASK_WD_TIMESYNC=5,required_mask)不变
- 时钟写入口自此 = SNTP / UI 手工 / 104 C_CS,双写竞态(后写者赢)
随之消失(墙钟说明 §15 退役公告、§16 现势口径)
工具与测试:
- 删除 test/host/time_sync_server.py(对时源)与 e02_probe.py
(队头阻塞探针,载体随监听退役;判据脚本 v5_log_gap_report.py
保留供旧日志解读)
- time_sync 主机单测重写 v2.0:33 断言覆盖分片延时 / 屏障 /
SNTP 节拍与网络代次当轮交接 / 未出网守门;stub 的
net_socket.h 裁剪至 net_get_generation 作编译期绊线
- 覆盖率基线 --update-baseline 收口(time_sync.c 101→20 行为刻意
缩减,全仓 48/48 套绿)
文档与图:墙钟说明 §15 改退役公告(教训保留:CH395F FIN 丢未读
缓冲)、§16 单一网络来源;产品需求 FR-TIME-2 退役注记、§6.3 重写;
架构总览 / 软件架构规格 / 网络配置 / 网络自愈 §9.3 / BSD 指南 /
看门狗说明心跳与白名单行 / 实机测试指南 / 部署环境 / 继保规划 /
UI补齐时基口径 / 页面补齐规划 SNTP 页行 / 任务规划 README 叶数与
暂缓项行(SNTP 叶已绑、UI_PAGE_MAP_COUNT=31 口径)等约 30 处现势
口径同步;arch / net_stack 两图生成器与 SVG 同笔重跑。
台账:ram_baseline --update + check_mem_numbers --write + 体积凭证
(Code 254,648→253,428,−1,220 B)。静态链复测发现 timeSyncTask
1,904 B / iec104Task 1,600 B 低于 ISR 硬线:master 2b848c4a 同判据
timeSyncTask 即 2,056 B(本 PR 只减不增,−152 B 旧任务自身帧),
双 FAIL 为 #74/#77 后既有债;抬栈属 Ask-first 未擅自执行,登记簿
新增「静态链硬线双 FAIL」待台架复采,复测快照入 docs/内存管理/data。
验证:keil-build 0 错 0 警;time_sync/sntp 主机单测绿;
ci_local 全绿;doc-links --all 0。
2026-11-04 18:07:03 +08:00
wandering1
2b848c4a0b
Merge pull request 'feat(sntp): 板端 SNTP 校时接入——coreSNTP 序列化器 + [sntp] 段 + 设置页(#73)' ( #77 ) from impl-sntp-sync-ca4c69f49d3e into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 5m45s
CI / 主机侧单测 (MSVC) (push) Failing after 44s
Reviewed-on: #77
2026-11-04 16:46:30 +08:00
super_agent_bot
ad7338365c
feat(sntp): 板端 SNTP 校时接入——coreSNTP 序列化器 + [sntp] 段 + 设置页(#73)
...
CI / 静态门禁 (pre-commit) (push) Failing after 6m14s
CI / 主机侧单测 (MSVC) (push) Successful in 54s
CI / 静态门禁 (pre-commit) (pull_request) Failing after 4m35s
CI / 主机侧单测 (MSVC) (pull_request) Successful in 47s
- vendored coreSNTP v2.0.0 序列化器(MIT,仅 serializer+LICENSE,零堆),
48 字节报文编解码在库,节奏与准入判据在本方(RFC 4330 §10 调研口径)
- App/sync/time_sntp.c 挂 timeSyncTask 的 8888 事件循环,等待切片 ≤50 ms,
不饿任务狗与 IWDG;懒建 UDP socket,代际变化/禁用/死错误码即关闭归还
- 防伪 = OriginTimestamp 逐位等于发出时 T1(含低 16 位随机小数位);
mode/stratum/闰秒指示/KoD 按 RFC 拒收;DENY·RSTR 换服务器、RATE 只退避
- 主备轮换 + 失败指数退避(5 s 起、60 s 封顶)+ 首轮 1~5 分钟随机错峰;
成功恢复 poll_min 周期(1~1440 分,出厂默认 60,默认不启用不发包)
- 钟面 = 本地时间:UTC+8 固定偏移落 sys_clock_set_unix(§1.1 时基裁定,
第三个写入口,装置仍不存时区);|offset|<2 s 只记日志不步进,冷启动或
更大偏差步进并回写 SD2506,留痕 [SNTP] step 与 syslog OPER
- 首个校验通过的同步置 SYS_EVT_TIMESYNC_READY(就绪位,消费方按需 NoClear)
- [sntp] 配置段(enable/server1/server2/poll_min)属主 sntp_cfg.c,
注册在 net_cfg_load();UI 页 31「SNTP 设置」(密码叶):启用开关 +
主/备服务器 octet 编辑 + 周期(分) + 保存,复用 net_cfg_save_request 链
- 测试与门禁:test/host/sntp 新套件(报文/防伪/KoD/退避周期/阶跃域/配置
注册表)、net_cfg 与 time_sync 套件补 fake、黄金参考 66→74 张零漂移、
字符集 228 字、Keil 0 错 0 警(RO +5,848 B 含字体)、覆盖率基线回填
- 文档:墙钟维护说明 §16、网络配置说明 [sntp] 节、配置文件设计说明变更记录、
产品需求 FR-TIME-3 与 8.3/9.1.2 台账、UI 补齐规划/UI补齐 31 叶口径、
登记簿销项并登记「SNTP 校时真机判据」等台架(PC 时间源 192.168.31.161/.13)
2026-11-04 16:20:22 +08:00
wandering1
c1beec50e7
Merge pull request 'fix(serial-assistant): daemon 重启自动重开口 + 自动重连 + 日志缺口标记(#75)' ( #76 ) from improve-serial-assistant-8e959e85113d into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 45s
CI / 主机侧单测 (MSVC) (push) Failing after 43s
Reviewed-on: #76
2026-11-04 11:39:09 +08:00
super_agent_bot
dfd1528409
fix(serial-assistant): daemon 重启自动重开口 + 自动重连 + 日志缺口标记(#75)
...
CI / 静态门禁 (pre-commit) (pull_request) Failing after 4m19s
CI / 主机侧单测 (MSVC) (pull_request) Successful in 44s
CI / 静态门禁 (pre-commit) (push) Failing after 4m51s
CI / 主机侧单测 (MSVC) (push) Failing after 43s
按 Gitea issue #75 R1–R5 修采集层「daemon 死了采集静默停摆」族问题:
旧行为下 daemon 崩溃/被杀/读错丢口后,新实例起得来但口不开
(run() 先 _save_meta 把现场覆成 null,且无任何重开路径),
serial.log 缺口无边界,wait-idle 计满还良性返回 no_data,
把「采集器死」伪装成「板子静默」。
- R1 启动自动重开:meta.json 的 port 字段升格为「开口意图」现场
(缺口期不清空,显式 close/stop 清除);run() 先读旧 meta 再覆写;
重开在串口线程内执行(串口对象唯一持有者不变量),首次 = 出生 +1.5s。
restart 特判:cmd_start(force) 在 stop 前抓 /status 现场、新 daemon
就绪后 POST /open 开回来(stop 语义不变,结果进返回 JSON 的 reopen 键)。
- R2 失败自动重连:_port_error 后退避重试(REOPEN_SETTLE_S=1.5 起步、
倍增、REOPEN_BACKOFF_MAX_S=30 封顶)直到成功或显式 close;
逐次失败原文进 daemon.log(dlog=stderr),不刷 serial.log。
- R3 缺口标记:serial.log 落 [SYS] 行——daemon started(新旧 pid +
重开现场)/ GAP-START(丢口与崩溃恢复两种,窗口起点下限声明)/
GAP-END(窗口秒数 + 尝试次数 + 字节不可找回)/ GAP-RETRY(退避期
仅首次 + 之后每分钟 ≤1 条,口径定死并写入设计说明 §6.1)。
- R4 状态可见:status 新增 auto_reopen{enabled,pending,attempts,
last_error,next_retry_in_ms};port 新增 desired(意图)与 ready
(实际)并列,缺口期 name/baud 显示待重开参数;wait-idle 入口加
无口门:口未开秒回 ok:false + 现场,不再计满返回良性 no_data。
- R5:VERSION=1.2.0-skill;selftest 新增 T10–T15 共 22 项无头用例
(重开意图判定 / 退避倍增封顶 / 缺口行格式 / 无口门 / auto_reopen
三态 / restart 捕获),合计 45 项全绿;SKILL.md 与使用指南、
设计说明 §6.1+§13 同步(机理只在设计说明详述一处)。
兼容性:JSON 只增字段、退出码形状不变;run_boot_test.py 正常路径
不受影响,其 wait-idle 撞无口时按采集错误 exit 2 归因(正是工单
要的区分)。
验证:selftest 45/45 PASS;COM3 台架三场景全过(崩溃恢复自动重开
+ GAP 标记、显式 close 后 restart 不重开、wait-idle 快速失败),
transcript 见工单汇报。
2026-11-04 11:10:04 +08:00
wandering1
f8c9296392
Merge pull request 'feat(net/udp): UDP 数据面并入 netMsgQueue 串行执行(#73)' ( #74 ) from udp-queue-impl-ddb7c192c16e into master
...
CI / 静态门禁 (pre-commit) (push) Failing after 5m10s
CI / 主机侧单测 (MSVC) (push) Failing after 43s
Reviewed-on: #74
2026-11-04 10:11:24 +08:00
super_agent_bot
c9c9dc8b0d
docs(测试): 阶段 16 按两轮镜像分别登记尺寸,产品 Code 对齐 249,120(#73)
...
CI / 静态门禁 (pre-commit) (pull_request) Failing after 5m3s
CI / 主机侧单测 (MSVC) (pull_request) Failing after 43s
恒剥改造让产品构建 `Code` 从 249,124 变成 249,120,`docs/测试说明/板级测试/CH395F_Test_Guide.md`
§12.6 里两处跟着真机重算:
- 构建实测段不再只写一个镜像——第一轮的 `phase16c.hex`(836,489 B,Code 259,768 / RO 37,244)与
全绿那轮的 `phase16d.hex`(836,608 B,Code 259,764 / RO 37,288 / RW 2,060 / ZI 151,596)分开登记,
并写明第二轮与前一轮的差异来源:生产代码少一次形态比较(−4 B)+ 断言文案改写(RO +44);
产品态那行改成 `Code 249,120`,并说明与 249,124 的 −4 B 属生产代码变化、与阶段 16 无关。
- 「实测结果」那行补上板端串口原文里的构建戳 `Nov 4 2026 08:40:28`。
- 2026-11-03 夜那条进度里的「1603 之后仍未测」改成「当时未测(次日已补全)」,避免读起来像现状。
- `docs/测试说明/单元测试/主机单测覆盖率口径.md` 第 4 轮的真机回归条目,把「head `1b5e5d4` + 剥头修正」
改成剥头修正实际所在的提交 `b5671e8`。
2026-11-04 09:45:34 +08:00