feat(browser): 补上 B3/B4 的两行接线(Z2)—— 面板页与截图进上下文真生效

- wire_runtime.go 加 TransformContext: a.browserShotTransform(visionResolver)(只改本轮所见)
- wire_frontend.go 在 declareBuiltinPanels 之后接 wireBrowserPanel(带 a.cfg != nil 守卫,
  否则 6 处既有夹具 panic;生产路径 cfg 恒非 nil ⇒ 行为与字面写法一致)
- 3 条盯梢用例(1 条 Skip→转正 + 2 条新增),2 变异打红
- 真机(隔离实例):panels 出现 browser/settings、三个只读动作真回执、**真回合内联 image 部件
  61,410 字符** ⇒ design/28 判据 2 在真产物里成立
This commit is contained in:
AskaEth committed 2026-10-07 09:34:44 +08:00
1 parent 93fc24cade
commit 8e2441c183
3 files changed
+131 -15

No files matched your search

+7
View File
@@ -344,6 +344,13 @@ func (a *app) wireRuntime() error {
Thinking: thinking,
ReasoningEffort: reasoningEffort,
ThinkingShowToUser: thinkingShow,
TransformContext: a.browserShotTransform(visionResolver),
// 截图闭环(design/28 §7 判据 2 / B3):browser 拍照落盘后,由上一行那个钩子在
// **每个模型步之前**把该会话待送的图并入本轮视图(取走即消费)。它只改本轮所见 ⇒
// 截图不进 checkpoint、也不进后台记忆提取的输入面(design/28 §4 第 3 条)。
// 钩子捕获的就是上面那个 visionResolver,所以这一行必须在它之后;装配细节与
// 「删掉它没有任何运行期症状」这条理由见 wire_browser_context.go。
//
// 按调用(而非整批)准入:敏感与否取决于该次调用的参数
// (file 的 read 自主、write 代审),见 toolAdmissionHooks。
Hooks: a.toolAdmissionHooks(approvalGate),