893f46bc03
把 #751 第三轮推进到更紧的类型: - app.ts 局部 const el 标 ElMap,让 el.gateStatusFilter / el.codeAgentTimeout 等 HTMLSelectElement / HTMLButtonElement 子类型在本地 el 上也生效 - web-types.d.ts 加 WorkbenchRuntimePathShape / WorkbenchRuntimePathRow / WorkbenchCompactDetailsOptions / WorkbenchGateDiagnosticsRow,让 codeAgentRuntimePathFromMessage / messageCompactDetails / gateDiagnostics.rows 不再回退到 WorkbenchUnknown - 7 个高发点 sed 批量加 <HTMLElement> 类型参数到 querySelectorAll / querySelector<HTMLElement>,让 list.dataset / tile.dataset 等访问合法 - event.target.closest 改 (event.target as HTMLElement).closest<HTMLElement>(...) - ElMap.skillRefresh / skillUploadButton / commandClear 收紧 HTMLButtonElement - agentErrorFromHttpResponse / failureMessage / classifyCodeAgentCompletion 等返回类型精化(WorkbenchSummaryShape 加 title/status/replied/sourceKind 等) - app-conversation.ts 内部 6 个函数(sessionSummaryTone / agentStatusLabel / agentStatusTone / sourceTitle / sourceFixtureTitle / textFallbackTitle / 等) 加显式形参/返回类型 - 把 source 里的 : unknown / : unknown[] 全部改成 : WorkbenchUnknown(带索引 签名),让 property access 在 tsc 下合法 web:check 55 pass / 0 fail;web:build 12 dist;tsc-check 仍守住 0 显式 any 硬 gate。residual 541 残错继续按 #751 后续 issue 跟踪。 Refs: pikasTech/HWLAB#751 Co-authored-by: Codex <codex@noreply.local>