# STEP-112 V23 粒子 Full Render 与 Symbol 缓存调查 v1 日期:2026-10-11(JST)。状态:**完成(本轮只读调查交付);综合判定 PARTIAL(生产逐帧归因、安全修复与性能未验证)**。 ## 目标与基线 只读完成任务A—E、全Gate矩阵、R2状态机、Placement/Fade两种配置、S1—S5及A—D提案;不实施Native修复。 - Mac.lan / Darwin 24.6.0 / x86_64;仓库 `/Users/tei/dev/MapLibreParticleLab`。 - 起点及结束基线:`particle/main@41b416c261fa72bd21171328045036a124694f47`。 - 模型已从本会话rollout确认 `gpt-6-astra/high`;无切换、无子代理。 - Integration HEAD `80667d6c` 采用用户提供的RDC核实事实,只读相关契约/决议。 - V23 Android/RN `13.6.1-particle.23`、iOS `6.29.0-particle.23`。对V23构建源码 `87f3d1c…` 的相关路径diff只有STEP-109两Layer快比较;本调查核心Gate保持一致。 ## 必做项与结果 - [x] 按序阅读AGENTS、基线、8份规范、总则README和四份有效总则、当前任务与STEP-102/106/109/110/111。 - [x] A:Core/Android/iOS请求→Fast/Full→GPU→Observer/Idle调用图,区分forecast与粒子cadence。 - [x] B:24项Fast Gate,逐项来源、通过条件、首错、Tick影响、Full恢复与现场证据强度。 - [x] C:R2结构能力、Source/local/global revision、evaluate/BuildPending/资源/成功/失败/合成状态机。 - [x] D:transitions开关、300ms/30ms/zoom、fade公式、8组合真值表、GL/Metal opacity链。 - [x] E:S1—S5逐帧/事件推演和布局对照;原RCRR完整边界缺失明确标未知。 - [x] A—D提案:优先级、首建/scene/C覆盖、正确性、资源代价、候选文件、1—5复杂度、双平台最小验证;D列Interface Blocker。 - [x] 先创建框架、分阶段追加证据,最终三份交付文档和开发记录追加已落盘。 - [ ] FZG1同帧全Gate/配置/CPU归因、生产Symbol结果等价、GL/Metal运行验证:本轮禁止执行,留给另行授权阶段。 - [ ] Native修复、插桩、性能改善:本轮明确未授权,未执行。 - [x] 指定四文件scoped commit/push及远端HEAD:由RDC在Codex调查后执行,首次提交与Push已核验;实际记录见下文Git收尾补记。 ## 主要源码结论 正常Continuous Full中,含结构性Symbol的R要求 `!changed && fade==0 && !transition`;重算分支changed=true,不重算分支setPlacementStale令transition=true,因此首次Build没有准入窗口。即使全体Source静态也成立。`fade==0`不是Fade终态;关闭transitions的正常Full为true/1/false,现场true/0/false与开启配置的稳定重算相容。 R2 invalid令下一次Fast在cache-invalid返回;另有全局prepared scene及PREFIX中普通Symbol/Line C的独立阻塞。Full可以复用R0/R3,不等于全图全部重画。上述不证明安全放宽Gate,也不证明现场每次Placement都改变R2像素。 ## 允许范围与必做输出 仅四文件: 1. `docs/20_调查/STEP-112_V23粒子FullRender循环与Symbol缓存准入全面源码调查_v1.md` 2. 本阶段记录。 3. `docs/报告/STEP-112_V23粒子FullRender与Symbol缓存调查_Codex完成报告_v1.md` 4. `粒子开发记录.md` 仅追加。 两份未跟踪STEP-110/111任务书保持原样。未改源码、测试、Style、脚本、跨项目文件、版本或发行产物,未清理dirty或改变branch/worktree。 ## 检查、阻塞与下一步 只执行只读源码/Git比较和文档范围、完整性、空白检查;实际结果详见完成报告。编译/链接/codegen/测试/Jest/Gradle/APK/ADB/设备操作全部未运行,无新制品。 剩余证据:FZG1实际Placement options和24项Gate逐帧序列、原始完整plan、Source/forecast/Annotation来源分摊、Symbol最终GPU输出安全等价。下一步仅建议授权A低开销同帧诊断与B生命周期安全证据设计;不得先删Gate。公共明确Full命令语义由Integration决定。Codex不负责Git收尾;STEP-112任务书要求RDC独立完成仅文档scoped提交、推送和远端验收,结果以Git收尾补记为准。 ## RDC Git 收尾补记(2026-10-11) - RDC独立检查 branch=`particle/main`、起点 HEAD=`41b416c261fa72bd21171328045036a124694f47`;仅stage任务规定的三份STEP-112文档及`粒子开发记录.md`,`git diff --cached --check`通过,恰好四文件,原两份未跟踪STEP-110/111任务书不触碰。 - 首次文档提交:`abc137ca9637abc18be8c64cd98f2c7f1ed68704`,message=`docs: investigate STEP-112 particle full render and symbol cache`;普通`git push origin particle/main`退出码0;`git ls-remote origin refs/heads/particle/main`返回相同SHA,首次远端验收PASS。 - 本段是RDC在Codex完成后补写的Git事实;补记自身形成单独文档提交,最终HEAD与远端一致性以RDC最终回读为准,不影响源码调查PARTIAL或禁止运行的设备/构建项目。