---
# 支柱④ 上游理解-分析 gate 产出物 —— ⚠️ 本份是**非追溯**（与同目录 v4-2333 那份相反）：
#   ① 本 artifact 于 2026-09-09 在**动手产出任何 mockup / code 之前**填写，流程按 skills/upstream-gate 步骤 1–7 真跑；
#   ② 步骤 1–6 由只读 subagent `upstream-research` 执行（无 Write/Edit/Bash），步骤 7（写盘 + validator）由主线执行；
#   ③ 确定层由主线跑过 `validate-upstream-gate.mjs` 后才敢说 PASS；理解 / persona / MVP 三层留 owner review，⛔ 未自 ack。
#   ⚠️ §6 第 ① 条原是**立场冲突**（不定则本单整体悬空）—— **2026-09-10 已回填 owner 2026-09-09 的裁定 = 做**，
#      连同「设计执行归 TVU Pack、ai-ds-lab 只做 DS 审查与优化」的执行归属一并记在 §6-①，⛔ 下一轮别再问一次；
#      §6 其余 11 条**仍未 ack**，⛔ 别把本文件读成「已获批的设计范围」。
feature: v4-1646-lcd-wifi-other-hidden-ssid
understanding: V4 pack 的机身 LCD 触摸屏 WiFi 页缺 `Other` 入口，客户无法在机身屏上连接隐藏 SSID（WebR / ConfigT 网页端早已有该入口）；权威 scope 不在 Jira 单而在 Slack 线 —— Susumu Sato 代客户逐字要求「Please consider to add LCD/Other(Hidden SSID) feature.」，winniyang 逐字答「Yes, we will add this function on 8.4.」；功能受三条硬约束：只支持 WPA/WPA2（后端视为同一种、无 no-password 模式）、隐藏热点凭据不持久化（重启需手动重连、长期现状）、当前无 forget / disconnect 入口
sources_read: ["docs/specs/2026-05-29-v4-1865-wifi-hotspot-mode-design-record.md#2-scope--non-goals", "docs/handoffs/2026-05-29-v4-1865-mockup-handoff.md#34-f2f3-内部-ssid-list-故意不深改", "docs/handoffs/2026-06-02-v4-1865-lcd-pickup.md#输入交互", "docs/handoffs/2026-06-02-v4-1865-lcd-pickup.md#屏幕尺寸约束", "docs/handoffs/2026-06-04-v4-2318-lcd-mockup-handoff.md#4-key-decisions", "docs/specs/lcd-canonical-spec.md#1-lcd-设置页-canonical-规格", "docs/specs/lcd-canonical-spec.md#2-lcd-选项列表-canonical-规格", "docs/specs/lcd-message-strings.md#2-全局规则对本页所有提示成立", "docs/PRODUCT_INTRODUCTION.md#34-提交动作措辞--按端统一config-t--apply--lcd--ok", "docs/PRODUCT_INTRODUCTION.md#341-提交后必须反馈结果两端", "docs/reference/2026-08-04-tm1000-v3-vs-v4-feature-comparison.md#对比表", "docs/specs/2026-06-15-fb-10014-connection-priority-design-record.md#6-priority-semantics"]
competitive: [{"vendor": "Teradek Prism（行业竞品）", "url": "https://guide.teradek.com/a/1871353-network", "finding": "Network 页有独立入口，逐字「Add Network - Allows manually adding a network without scan」，并列「Saved Networks - Lists previously connected networks」；安全模式枚举 None / WPA / WPA2 / WPA-WPA2（把 WPA/WPA2 做成一个合并选项「Compatible Security」），默认 None，全页未提 WPA3；该页未见 Forget / Disconnect 动作按钮"}, {"vendor": "LiveU Solo（行业竞品，可比性弱）", "url": "https://solohelp.liveu.tv/hc/en-us/articles/13978553950619-Solo-Connectivity", "finding": "只有扫描-选网范式，逐字「The unit scans and displays the available networks.」；未在该页找到隐藏网络 / 手输 SSID 入口。断开手段逐字「To disconnect a WiFi network, either disable WiFi or select a different network.」，无 forget 概念。⚠️ Solo 是入门编码器不是聚合背包，可比性弱于 Prism"}, {"vendor": "Dejero EnGo（行业竞品）", "url": "https://www.dejero.com/faq/how-to-connect-to-a-wifi-ethernet-connection-that-require-browser-based-authentication/", "finding": "官方 FAQ 逐字「Tap Wi-Fi and the network name」+「Tap Actions and Connect」⇒ 每个网络挂一个 Actions 菜单、Connect 是其中一项（与 TVU 的「点一下即连」不同形态）；该页未提隐藏 SSID / 手输网络名、未提 Disconnect / Forget、未列加密协议。⚠️ 另一条「Connect/Disconnect/Forget 三动作齐全」原出自 manualslib 的 EnGo 260 用户手册页，对程序化抓取恒 403（本机与 validator 各实测一次）⇒ 标 UNVERIFIED、⛔ 已从判据里撤下，见正文 §2"}, {"vendor": "Apple macOS（通用 OS 交互范式 · ⛔ 不是行业竞品，仅作 IA 参照）", "url": "https://support.apple.com/guide/mac-help/join-a-hidden-wi-fi-network-on-mac-mchlp2730/11.0/mac/11.0", "finding": "IA 参照：菜单「Other Networks」下沉到底部的「Other」；表单顺序 = 网络名 → Security 弹出菜单选加密类型 → 密码，另有 Show password 与 Remember this network 两个勾选，提交键为 Join；文档明写用户须事先知道「the name of the network, the type of wireless security」；安全协议列 WEP / WPA / WPA2 / WPA3 ⛔ 不可照抄（V3/V4 硬件做不到 WPA3）"}]
persona_ia: 三个 persona —— P1 客户现场操作员（场馆 / OB 车只给隐藏 SSID，手边只有机身屏、没有笔记本开 WebR；摩擦 = LCD 上根本没入口，且他是照 OS 范式去列表底部找的）· P2 TVU support（远程指导客户，需 LCD / Hotspot phone / WebR ConfigT / CC ConfigT 四面一致，否则每次先问「你在哪个界面」）· P3 现场工程师（重启后隐藏连接静默消失，若 UI 不告知会误判设备故障、且聚合带宽默默变小）。IA = `Settings/WiFi` 扫描列表**末尾**追加 `Other` 枚举下钻行 → `Settings/WiFi/Other` 表单页（Network name / Security / Password，行高 42）→ 虚拟键盘录入 → 底栏 `OK` → 成功/失败 Message → 回 WiFi 页该 SSID 行显示已连接
data_feasibility: {"fields": ["ssid", "security_type", "passphrase", "wifi_connection_state", "connected_ssid", "wifi_module_mode", "ip_address"]}
mvp_scope: 做 —— LCD WiFi 页新增与网页端同名的 `Other` 入口 + 手输 SSID/Security/Password 的表单 + 提交键 `OK` + 成功/失败 Message + 连接后列表回显该 SSID + 新文案串入 `lcd-message-strings.md`；不做 —— WPA3（V3/V4 硬件封死）· 开放/无密码模式（后端不支持）· 凭据持久化本身（后端长期逻辑，非 UI 可修）· 网页端 Other 弹窗显示错（已有 bonniezhou 基于 83503 的 WebUI patch，属另一单）· Hotspot phone 与 CC ConfigT 两面；⚠️ 悬置未拍两项：forget/disconnect 入口是否入本期、「不持久化」要不要在 UI 如实告知 —— ⛔ 未自行划入或划出
---

# Upstream Gate — LCD WiFi `Other`（Hidden SSID）· V4-1646 · **非追溯**

> 每条结论标 **【查证】**（有原文 / 读数支撑）或 **【推断】**（判断，需 owner 核）。
> 竞品四条 URL 由只读 agent 逐条 WebFetch 取回正文；确定层（锚点 / URL / schema）见文末机检读数。

## 1. 需求复述（owner review：复述是否抓住真实意图）

**一句话**：V4 pack 的**机身 LCD 触摸屏**的 WiFi 页没有 `Other` 入口 ⇒ 无法在机身屏上连接隐藏 SSID；同一能力在 **WebR / ConfigT 网页端早已存在**。本期把这个入口补到 LCD 上。

### 1.1 三个来源的权威度递增（⚠️ Jira 单本身最弱）

【查证】

| 来源 | 内容 | 权威度 |
|---|---|---|
| **A · Jira V4-1646** | 只有现象一句：`The Wi-Fi function is missing the 'Other' option.`（Bug / Medium / Backlog / labels=`[GUI]` / **无 fixVersions** / **无 issuelinks** / 100% 复现） | 最弱 —— 给现象不给 scope |
| **B · Jira 5 条评论** | 2025-12-26 winni 问要不要进 8.4 → 2026-06-09 **owner：「触摸屏暂时不考虑 Others 类型，我记得在 8.3 里面说过」（主动 defer）** → 2026-07-10 winni「提出需要Other功能」并贴 Slack 线（**defer 被推翻**） | 中 —— 记录了立场翻转 |
| **C · Slack 线** | 给出真实 scope、三条硬约束、以及对客户的版本承诺 | **最强** |

### 1.2 Slack 线里的权威 scope（逐字，⛔ 别改写）

【查证】

- **网页端已有、LCD 没有** —— Steve Li：`it's already supported, no special patch needed. just click on Other under Wifi tab.`（指 WebR/ConfigT）
- **LCD 缺口 → 承诺** —— Susumu：`The customer tried Touch panel direct setting, but WiFi doesn't show "Other" at the bottom.` → winniyang：`LCD no Other function.` → Susumu：`Please consider to add LCD/Other(Hidden SSID) feature.` → **winniyang：`Yes, we will add this function on 8.4.`**
- **四面一致的验收要求** —— Susumu：`Please test 4 way about the WiFi Other feature. • LCD • Hotspot phone • WebR ConfigT • CC ConfigT`

### 1.3 三条硬约束 —— 它们是判据，不是背景

**(a) 加密类型：只有 WPA/WPA2（后端同一种），无开放模式，WPA3 硬件做不到**

- 【查证】youngzhang：`Yes, we only have WPA and no password mode for hidden SSID`；`WPA or WPA2 are regarded as the same encryption in the backend`
- 【查证】WPA3：`WPA3 needs new WIFI chips whereas V3 and V4 cannot support. Only few chips in MLinkV7 could support it.`
- 【查证】客户侧现实：Susumu：`WiFi router uses WPA2-PSK/WPA3-SAE (AES)` / `Still connection failed.` ⇒ 客户路由是 WPA2/WPA3 混合，连接仍失败
- 【推断】一个只有单一有效值的 Security 选择器是**假选择器** —— 照抄 macOS / Teradek 的完整下拉会让用户以为能选 WPA3，选完连不上，正是客户已踩过的坑；但做成只读标签又与「四面一致」冲突（网页端有选择器）。⇒ §6-③
- ⚠️ 【推断边界】`WPA or WPA2 是同一种` 的原话主语是 **backend**；「所以 UI 上只该出现一个选项」是**推断**，不是 youngzhang 说的。
- 【查证 · 品类先例】Teradek 把 `WPA/WPA2` 做成**一个合并选项**（`Compatible Security`）且**同样没有 WPA3** ⇒ 「一个合并选项」在品类里有先例，不是 TVU 独有的简化。

**(b) 隐藏网络凭据不持久化、重启后必须手动重连（长期现状，8.4 不变）**

- 【查证】youngzhang **两次强调**：`we do not save the hidden SSID hotspot info after connection. So it won't be connected after reboot.`；`under the current logic, hidden hotspot information will not be persisted. Therefore, users need to manually reconnect after device reboot.`
- 【查证】问 8.4 是否同样受限 → `No, this has always been the case but few people know and use.` ⇒ 不是回归，是一直如此、且「很少人知道」
- 【推断】「很少人知道」本身就是 UX 缺陷的定义。直播背包重启后**静默掉一条 bonding 链路**：`#6-priority-semantics` 逐字 `Equal values mean equal load balancing among available connections` ⇒ 那条链路消失不会报错，只让聚合带宽默默变小。**如实告知的价值高于「少一句话更干净」**，但告知形态是 owner 取舍 ⇒ §6-⑤
- 【查证】Teradek 有 `Saved Networks - Lists previously connected networks` ⇒ 「记住网络」在品类里是常规能力，TVU 这条限制是**相对品类的减配**

**(c) 无 forget / disconnect 入口（youngzhang 自判为 bug）**

- 【查证】Susumu：`Oh there is no delete for forget button.`；youngzhang：`I think no disconnection button is also a bug for this case`
- 🔴 **撤回一条「品类基线」论证（本轮机检抓出来的）**：草稿原写「Dejero EnGo 260 手册直接给 Connect / `Tap Disconnect.` / `Tap Forget.` 三动作 ⇒ 品类基线缺失」。**该引用出自 manualslib 手册页，对程序化抓取恒 403**（validator 判 FAIL、主线独立复测同为 403）⇒ **不可复核，已撤下**。改用可抓的官方 FAQ 后能查证的只有：Dejero 每个网络挂一个 `Actions` 菜单（`Tap Actions and Connect`），**该页未提 Disconnect / Forget**。
- 【查证 · 三家可复核面汇总】Teradek 有 `Saved Networks` 但**该页未见** Forget / Disconnect 按钮 · LiveU 逐字只能靠 `either disable WiFi or select a different network` 断开、**无 forget 概念** · Dejero 有 per-network `Actions` 菜单但公开可抓页未列这两项 ⇒ **「forget / disconnect 是不是品类基线」目前没有可复核证据**。
- 【推断】⇒ §6-⑥ 因此**不能靠竞品论证来定**，更需要 owner 判 + 后端接口读数。另：(b) 与 (c) 有交互 —— 凭据既然不持久化，`Forget` 的语义就被削弱（重启即等效遗忘），真正缺的更可能是 `Disconnect`。

### 1.4 一个必须点出来的仓内伏笔

【查证】本需求正落在一块**当初被主动跳过**的区域：`#34-f2f3-内部-ssid-list-故意不深改` 逐字「理由：内部 SSID list 是 high-effort / low-deliverable-差异化 工作」，且同文件 pickup 表里还留着未关闭的一行「F2/F3 内部 SSID list 是否深改 | TBD」。

【推断】当时那个取舍在**有了客户 ticket + 版本承诺之后不再成立** —— 它现在是 high-effort / **high**-deliverable。⇒ §6-⑨

### 1.5 成功标准（我理解的）

【推断】① 客户只用机身屏就能连上隐藏 SSID；② 连不上时用户知道下一步做什么（而不是像客户那样只拿到 `Still connection failed.`）；③ 重启后要手动重连这件事**用户事先知道**；④ LCD 入口名与网页端一致（都叫 `Other`），support 远程指导不需要区分界面。

## 2. 竞品分析（2026-09-09 实时检索；owner review：相关性）

⚠️ **两栏刻意分开**：前三条是行业竞品（便携聚合 / 现场编码设备），第四条是通用 OS 范式，只作 IA 参照，⛔ 不能当「行业都这么做」的证据。

| vendor | 有没有「加入隐藏网络」入口 | 加密类型 | 持久化 / forget |
|---|---|---|---|
| **Teradek Prism** | **有** —— `Add Network … without scan` | None / WPA / WPA2 / **WPA-WPA2 合并项**；默认 None；**无 WPA3** | 有 `Saved Networks`；**未见** Forget / Disconnect |
| **LiveU Solo** | **未在公开资料中找到** | 只区分加密/非加密 | 靠「切到另一个网络」断开，无 forget |
| **Dejero EnGo** | **未在公开资料中找到** | 该页未列举 | 有 per-network `Actions` 菜单；**该页未提** Disconnect / Forget |

🔴 **本表有一行是被机检改掉的，纪律记在这里**：草稿的 Dejero 那格原写「三动作齐全 Connect / Disconnect / Forget」，出处是 manualslib 手册页。**validator 判它 403 ⇒ 确定层 FAIL**，主线独立复测同为 403（`HEAD`→`GET` 两法）⇒ 换成 dejero.com 官方 FAQ（200），而那一页**只**能查证 `Tap Actions and Connect`。⇒ **「forget/disconnect 是品类基线」这条论证已撤销**（详见 §1.3c）。**这正是本 gate 第一次真跑就产生的价值**：只读 agent 自陈 `http: 200`，而它不可复核 —— 文字总结不等于证据。

**要借鉴**：① 【查证→推断】Teradek 入口叫 `Add Network` 并明写 `without scan` —— **入口文案自己解释了它为什么存在**；TVU 必须叫 `Other`（与网页端一致、客户原话也是 `Other`）⇒ 建议靠**副行说明**补信息量，不改主标签。② WPA/WPA2 合并项有品类先例（见 §1.3a）。③ Dejero 的 per-network `Actions` 菜单是**另一种交互形态**（先选网络再选动作），可作 §6-⑥ 若要加 Disconnect 时的落点参考 —— ⛔ 但不作「品类都有 Forget」的证据。

**要规避**：① 【推断】Teradek 默认安全模式是 `None`，而 TVU 后端**没有 no-password 模式** ⇒ ⛔ 别照抄默认值。② 【推断】LiveU 用「切到另一个网络」当断开手段，在只有一条隐藏连接的场景下**根本不可达** ⇒ ⛔ 不采纳。③ 【查证】macOS 提交键是 `Join`，而本项目 LCD 提交键**必须**是 `OK`（见 §3 表）⇒ ⛔ 照抄会直接违规。

**⛔ 边界**：LiveU / Dejero 两格是「**未在公开资料中找到**」，**不等于该竞品没有这个功能**。已知未核的面：LiveU `support.liveu.tv` 知识库（同类检索此前 403）· **Dejero EnGo 260 用户手册（manualslib，实测恒 403 ⇒ 不可复核，本轮已撤下）** · Dejero 官方 QSG 三份（EnGo 3 / 260 已抓，均**不含** WiFi 管理章节）· Teradek Prism Backpack 手册 · Quicklink 手册 PDF（只取到下载入口页）；Grabyo 是云端制作平台、无设备端 WiFi 界面 ⇒ 不可比；Cingularity **本轮未检索**。

**通用 OS 范式（IA 参照）**：【查证】macOS 把 `Other` 放在网络列表**底部**，表单顺序 = 名字 → 安全类型 → 密码（安全类型在前，因为它决定密码字段是否存在），`Remember this network` 是**可选勾选**。
【推断】三条有用：① 入口在列表底部**与客户原话 `at the bottom` 完全吻合** ⇒ `Other` 放末尾不是审美选择，是用户已有心智；② 沿用「安全类型在密码之前」的字段序；③ macOS 的「记住网络」是用户可选，而 TVU 是**恒不记住且不可选** ⇒ 更需如实告知（约束 b）。

## 3. Persona / IA（owner review）

Persona 三个见 front-matter `persona_ia`。【推断】P1 是需求主体，**P3（现场工程师）是最容易被漏掉的那个** —— 他的痛点不在「连不上」，而在「连上之后不知道它会掉」。

IA 走向：`Settings/WiFi`（既有页）→ 列表末尾 `Other` 枚举下钻行【本期新增】→ `Settings/WiFi/Other` 表单页【本期新增】（Network name / Security / Password，tap 唤起虚拟键盘）→ 底栏 `←` + `OK` → 成功则 Message(success) 并回 WiFi 页回显该 SSID；失败则 Message(error)、停留表单、字段保留、`OK` 保持可点以便重试。

**IA 取值必须遵守的既有真源**（【查证】逐条来自本仓，⛔ 不自造）：

| 项 | 取值 | 真源 |
|---|---|---|
| 屏幕 | 480×320 | `2026-06-04-v4-2318-lcd-mockup-handoff.md` |
| 页/内容双背景 | 导航+底栏 `#252525` / 内容区 `#313131`，内容内缩 12px | 同上 `#4-key-decisions`（项目级 L1） |
| 导航标题 | **路径式** `Settings/<页名>`，20px `#7ed321` | `lcd-canonical-spec.md#1-…` |
| 行高 / 分隔线 | 行高 **42**（`lcd-canonical-spec.md:22` 逐字），pad `6/0/6/0`，底部 1px `#252525` | 同上 |
| 枚举下钻行 | 值 `#ffffff` + **下向三角 vector**（⛔ 不是 `›`、不是圆圈、不是 Unicode 字符） | 同上 |
| 选项面板（若 Security 走面板） | 宽 240、`#313131` + 3px `#7ed321` INSIDE；高度按内容行数算，**⛔ 不照抄 canonical 的 176** | `lcd-canonical-spec.md#2-…` |
| **提交键文案** | LCD = **`OK`**；禁用词逐字为 `Apply` / `Save` / `Submit` | `PRODUCT_INTRODUCTION.md#34-…` |
| 提交后反馈 | 成功/失败**必须**给 `Message`（success / error, size=L）；LCD 落位 = 水平居中 + 距帧顶 8px；失败时设备侧无变化、字段保留、提交键保持可点 | `#341-提交后必须反馈结果两端` |
| 失败文案纪律 | ⛔ **不许编失败原因**；范式 = 句子 + em dash + 句点，只说「失败 + 下一步」 | 同上 |
| 文案入库 | 新串必须落 `lcd-message-strings.md` + Figma 常驻页孪生，并标 `Trigger:` | `lcd-message-strings.md#2-…` |
| 模块命名 | 涉及第二 WLAN 模块统一叫 `WiFi / Hotspot Module` | `#4-key-decisions` 决策 3 |

### 3.1 ⚠️ 主线亲核补上的两条（只读 agent 未报，但会咬人）

【查证】① **提交键有一条已登记的跨页不一致**：`PRODUCT_INTRODUCTION.md:96` 逐字记着 —— Figma 真源里 LCD 端**同类表单配置页的既有先例其实是 `Apply`**（`V4-1542`「configure LAN IP on the touch screen」实测 `Apply` ×7），owner 重申以实机为准 ⇒ **以 `OK` 为准，并接受与 V4-1542 的跨页不一致**。⚠️ V4-1542 正是本单最近邻的先例页（LCD 上的网络配置表单），建卡时**必然会看到它写着 `Apply`** —— ⛔ 别据此改文案，也别据此改 V4-1542。

【查证】② **AI 改不了 LCD 按钮文案**：`PRODUCT_INTRODUCTION.md:99` 逐字 —— file-local `LCD Button` 的轴是 `Type × Status`，**没有 `OK` 也没有 `Apply` 变体**，现有 `OK` 全靠**文本覆盖**，而其字体 Verdana 在 MCP 环境不可写 ⇒ **AI 只能出待改清单交 owner**。⇒ 本单 Stage 3/4 排期时必须把「底栏 `OK` 文案」当成 **owner 手动项**，⛔ 别排成 AI 可完成。

### 3.2 文本录入可行性 —— 本需求最大的新增交互

【查证】① `#对比表` 逐字两行：`交互 / 网络 | 虚拟键盘 | — | 支持`；`LCD 网络设置 | — | 支持 WiFi / Ethernet 设置` ⇒ **V4 有虚拟键盘、LCD 有网络设置**。② 本仓已登记既有帧 `5315:9602`「V4-1535 · WiFi 密码键盘」⇒ **LCD 上输 WiFi 密码的先例已存在**。③ `#输入交互` 逐字「LCD 触屏 → 手指 tap，**最小点击区 ≥ 44px**」。④ `#屏幕尺寸约束` 逐字「垂直空间紧张」。

【推断】三个张力：① **≥44px 点击区 vs canonical 行高 42** —— 两条都在本仓、互相矛盾（`lcd-pickup.md:147` vs `lcd-canonical-spec.md:22`），差 2px。**不是本单引入的债，但本单是第一次让它落到「可点输入字段」上。** 倾向照 canonical 的 42（sibling 一致优先），⛔ 不自行改 canonical，在 handoff 点明。② **SSID 录入 ≠ 密码录入** —— `5315:9602` 是**密码**键盘，SSID 需要大小写 + 数字 + 符号且**明文回显**；我只从本仓 audit 表读到该节点名，**未打开 Figma 核过键位 / 大小写切换** ⇒ §6-⑧。③ 三字段 + 底栏在 320 高里按行高 42 算 ≈ 126 + 导航 46 + 底栏 36 ≈ 208 ⇒ 塞得下（**纸面算术，未在 Figma 实测**）。

## 4. 数据可行性

⚠️ **TVU Pack 仓不存在 `docs/product-context.md`**（按确切文件名全仓核过，零命中；validator 靠该文件名发现它）⇒ 本段 **SKIP + degradation_note**，不阻断。**⛔ 别把本段读成「字段已核」—— 这是未对照的自评。**

| 字段 | 用途 | 来源判断 |
|---|---|---|
| `ssid` | 用户手输网络名（隐藏网络无扫描结果可选） | 【推断】写入型入参；网页端 Other 已在收该值 ⇒ 后端接口应已存在 |
| `security_type` | WPA/WPA2 | 【查证】后端只认 WPA、WPA/WPA2 等价 |
| `passphrase` | 手输密码；**必填** | 【查证】`no password mode` 不支持 ⇒ 不可为空 |
| `wifi_connection_state` | 驱动 connecting / connected / failed 与结果 Message | 【推断】未核后端字段名 |
| `connected_ssid` | 成功后在列表回显该行 | 【推断】未核 |
| `wifi_module_mode` | Disable / Hotspot / WiFi ⇒ 决定 `Other` 在当前模式下是否可用 | 【查证】3-mode 模型见 `#2-scope--non-goals`；【推断】与本入口的联动未确认 ⇒ §6-⑪ |
| `ip_address` | 成功后的可选校验信息 | 【推断】未核；拿不到就不显示，⛔ 不占位假数据 |

**⛔ 刻意不列 `wifi_error_reason`**：`#341-…` 逐字禁止失败提示编原因 ⇒ 效果图失败文案只说「失败 + 下一步」，不消费原因字段。【推断】但客户实际遇到的是 WPA3 混合模式导致的失败，「只说失败」对他毫无帮助 —— 这正是 §6-④ 的实质。

## 5. MVP 范围（owner review）

**做**：① LCD WiFi 页扫描列表**末尾**新增 `Other` 下钻行（【查证】= ticket 全文 + 客户在 `at the bottom` 找过它）· ② `Settings/WiFi/Other` 表单三字段（【查证】macOS 与 Teradek 一致的最小字段集）· ③ 虚拟键盘录入复用既有先例（⛔ 不造新范式）· ④ 提交键 `OK` + 成功/失败 Message（【查证】项目硬规则，非选项）· ⑤ 连接后列表回显（【推断】否则用户无法确认成功）· ⑥ 新文案串入 `lcd-message-strings.md` + Figma 孪生。

**不做（有明确理由）**：WPA3（硬件封死）· 开放/无密码模式（后端不支持，⛔ 别照抄 Teradek 的 `None` 默认）· 凭据持久化本身（后端长期逻辑，UI 侧只剩「要不要告知」这一题）· 网页端 Other 弹窗显示错（已有 WebUI patch，另一单）· Hotspot phone / CC ConfigT 两面（本单 labels=`[GUI]`、现象只写 LCD；四面是否为验收口径见 §6-⑦）。

**⚠️ 刻意悬置、⛔ 不自行拍板**：forget / disconnect 入口（§6-⑥）· 「不持久化」如实告知（§6-⑤）。

## 6. 待 owner 确认（⛔ 未自行填平；**① 已于 2026-09-09 拍定，2026-09-10 回填**，其余 11 条仍待确认）

| # | 问题 | 为什么不是读源码能定的 |
|---|---|---|
| **①** ✅ **已拍** | ~~⚠️ **立场冲突**：owner 2026-06-09 在 Jira 逐字「**触摸屏暂时不考虑 Others 类型**，我记得在 8.3 里面说过」；而 2026-07-10 Slack 线里 **winniyang 已对客户承诺 `Yes, we will add this function on 8.4.`** ⇒ 请一句话确认现在的立场（做 / 仍 defer / 做但不进 8.4）。~~<br>🔴 **owner 2026-09-09 拍定 = 「做」** —— 2026-07-10 那条对客户的 8.4 承诺**认下来**，2026-06-09 那条缓议**已被推翻**。主线原判断（「defer 已被推翻」）**得到追认**。<br>⚠️ **同轮一并拍定执行归属**：**设计执行归 TVU Pack 项目**；`ai-ds-lab` 只做设计系统的**审查与优化**，⛔ 不在 lab 仓做本单的设计产出。<br>⚠️ **本条的下游 scope 边界未随之扩大** —— 「做」只覆盖 §5「做」那六项，⛔ 不蕴含 ⑤⑥⑦⑪ 的任何一个 | 是立场，不是读数 ⇒ 已由 owner 一句话结掉。**⛔ 下一轮别再问一次**（回填于 2026-09-10） |
| ② | 目标版本是不是 **8.4**？Jira `status=Backlog`、**无 fixVersions**，与 Slack 的 8.4 承诺不一致 | Jira 字段与 Slack 承诺矛盾 |
| ③ | **Security 选择器形态**：(a) 只读标签 `WPA/WPA2` / (b) 单选项下拉（保住与网页端形似）/ (c) 照抄网页端完整选择器。⚠️ 网页端本身被 youngzhang 判「显示不对，应该是 V3 这样的」⇒ 照抄的是一个**已知有问题**的界面。品类先例支持 (a)/(b)（Teradek 合并项） | 「四面一致」vs「不给假选择」的取舍 |
| ④ | **WPA3 要不要显式不支持提示**？客户路由是 WPA2-PSK/WPA3-SAE 混合、已失败过一次。若给，文案到什么程度 —— 「Only WPA/WPA2 is supported.」算不算 §3.4.1 禁止的「编原因」？**主线判断**：它是**事前能力声明**不是失败原因，两者不同层；但这条边界该你认 | 与项目文案纪律的边界判定 |
| **⑤** ✅ **已拍** | ~~**不持久化要不要在 UI 如实告知 + 什么形态**？(a) 成功 Message 追加一句 / (b) 表单上方常驻 hint / (c) 都不说~~<br>🔴 **owner 2026-09-10 拍定 = (a)** —— **如实告知，落点 = 连接成功的 Message 里，一句 em dash**，⛔ 不做表单常驻 hint。<br>判据：项目硬规则本就要求提交后必给成功/失败 Message ⇒ 免费搭载、不吃 320px 高里本就紧张的垂直空间。<br>⚠️ **仍有一条未追认**：这一句同时说了「连上了」和「重启会掉」，与 `lcd-message-strings.md` §2.4「一条提示只说一件事」的边界**未定** —— 提问时已把该风险摆出，owner 仍选 (a)；⇒ 按「em dash 让『临时』成为同一事实的限定」推进，但**该边界判定本身未获逐字追认** | 「诚实 vs 简洁」取舍 ⇒ 已由 owner 结掉。**⛔ 下一轮别再问形态**（回填于 2026-09-10） |
| ⑥ | **forget / disconnect 是否入本期 MVP**？youngzhang 自判 bug（`I think no disconnection button is also a bug`）。⚠️ **原本用来支撑它的「品类基线」论证已撤销**（那条引用不可复核，见 §2）⇒ 三家可复核面里**没有一家**公开文档给出 Forget ⇒ 这条只能靠你 + 后端接口读数定，⛔ 别再拿竞品当理由 | 范围决定 + 依赖未知 + 竞品证据已撤 |
| ⑦ | **「四面一致」是不是本单验收口径**？若是，本单 scope 只 LCD 但验收跨四面 ⇒ 要不要拆单 / 建 issuelink（该单当前**无 issuelinks**） | 验收口径 |
| ⑧ | **SSID 录入键盘**能否复用 `5315:9602`（密码键盘）？**未打开 Figma 核过键位 / 大小写 / 符号 / 明文回显** | 读数不足，需 Figma 实测 |
| ⑨ | 要不要顺手关掉 V4-1865 那条 TBD（`#34-f2f3-内部-ssid-list-故意不深改` + pickup 表里的「是否深改 TBD」）—— 旧取舍的前提已变 | 旧取舍翻案是 owner 的事 |
| ⑩ | **落点**：新开 Figma page 还是并进 V4-2318 已有的 LCD WiFi 页？`WiFi / Hotspot Module` 命名是否要在本页出现 | 交付物组织 |
| ⑪ | `wifi_module_mode` 与本入口的**联动**：Mode = Disable / Hotspot 时 `Other` 是隐藏、置灰、还是照常可点？（V4-2318 决策 = **hide-not-dim**，但那是 Config-T convention，LCD 侧当时标了「⚠️ 需验证」） | 无读数 |
| ⑫ | **非 owner 决策、登记给主线**：本仓无 `docs/product-context.md` ⇒ `data_feasibility` 恒 SKIP。要不要建一份（把该检从降级变成真机校）是独立决定 —— ⛔ 只读 agent 没编、主线也不该编 | 仓级基础设施 |
