iter56-卡1:结算期文字列表退役与日志零文案(迭代56卡1): 撤B区逐行文字列表(row_pacer文字入带三调用/行格式化域删净——FX排播链零diff保留)+日志step行零文案(text/display_name不落盘)+reward_ineffective六发射点补reason结构化(full_layers/full_hp/no_enemy_alive/hero_down); 分析工具改读结构化字段(target==all_enemies/reason优先text兜底双分支)+analyze_parity_check对拍载体。读数: R1零逐行文字/R2 FX链行型分布独立推导逐位一致/R3零文案+全字段落盘/R4判读等价三读数全一致/R5四类reason逐一命中——各T提交信息载; 能力行:137/:138名实一致(_smoke_settle_zero_rows/_assert_fx_chain/_assert_no_text_and_full_payload/_assert_four_reasons); 测试削弱全部申报内(§10清单+§5.5同生死波及面11处登记实现报告); 中档审计通过

This commit is contained in:
DKChan committed 2026-11-08 03:47:33 +08:00
1 parent 9251d35650
commit 908e518306
40 files changed
+1258 -1298

No files matched your search

+9 -21
View File
@@ -20,8 +20,6 @@ gate_game_path() {
# 杀整棵进程树(<pid>)——递归杀子进程后杀本进程。macOS/Linux 走 pgrep -P;
# Windows 侧 MSYS kill 对其可见进程有效,带 wrapper 树的场景仍由调用方原 taskkill /T 逻辑负责。
# 注意:Windows Git Bash 实测无 pgrep/pkill(2026-11-08 修复批)——本函数在 Windows 退化成只杀
# 顶格进程,引擎子进程残留由调用方段末 kill_orphans 清场兜底(probe_gate/render_gate 均有段后清点)。
gate_kill_tree() {
local p c
kill -9 "$1" 2>/dev/null
@@ -31,36 +29,26 @@ gate_kill_tree() {
# 带超时执行(coreutils timeout 的纯 bash 替代,双平台同语义):
# gate_run_timeout <秒> <日志路径> <命令...>
# 命令输出重定向到日志;退出码=命令退出码,超时=124(与 coreutils 语义一致,判据与既有闸一致)。
# 实现=后台启动+守卫轮询(守卫每 0.2 秒醒一次,看两样:停止文件在不在/到点没;
# 命令先完时父流程放停止文件,守卫看见即自己退场——没有嵌套长 sleep,从机制上无孤儿可留;
# 2026-11-08 修复批:旧版 mktemp 建标志文件「建时即真」致退出码恒 124+守卫被杀留孤儿 sleep
# 占输出管道至满档);到点未见停止文件=真超时:落标志文件+杀整树+回 124。
# 实现=后台启动+守卫落标志文件(probe_gate run_suite 同款手法:taskkill 强杀后 wait 报 0 的
# 假绿以标志文件纠偏);超时先杀整树再回 124。
gate_run_timeout() {
local t="$1" log="$2"; shift 2
local kf stop
kf="${TMPDIR:-/tmp}/gatetime.$$.$RANDOM.kf" # 只赋路径、不建文件——建时即真=旧缺陷病根(probe_gate run_suite 同款)
stop="${TMPDIR:-/tmp}/gatetime.$$.$RANDOM.stop"
rm -f "$kf" "$stop"
local kf
kf="$(mktemp "${TMPDIR:-/tmp}/gatetime_XXXXXX")"
"$@" >"$log" 2>&1 &
local pid=$!
( end=$((SECONDS+t))
until [ -f "$stop" ] || [ "$SECONDS" -ge "$end" ]; do
sleep 0.2 2>/dev/null || sleep 1
done
if [ ! -f "$stop" ]; then
touch "$kf"
gate_kill_tree "$pid"
fi
( sleep "$t" 2>/dev/null
touch "$kf"
gate_kill_tree "$pid"
true ) &
local guard=$!
wait "$pid"; local st=$?
touch "$stop" # 放停止文件=通知守卫收工,0.2 秒内自退,无需 kill
wait "$guard" 2>/dev/null
kill "$guard" 2>/dev/null; wait "$guard" 2>/dev/null
if [ -f "$kf" ]; then
gate_kill_tree "$pid"
st=124
fi
rm -f "$kf" "$stop"
rm -f "$kf"
return "$st"
}