# 关键会话存档：工作台修复 + Tunnel 稳定化 + 架构评审

> 日期：2026-07-26 晚 | 参与：刘新元 + Hermes Agent
> 性质：架构级关键决策与修复记录，供后续会话回溯

---

## 一、《工具/index.html》审计与修复（10 项，全部已验证上线）

**P0（功能全灭级）**
1. 登录字段名错误：代码校验 `user.password`，CloudBase user_roles 实际字段是 `pwd` → 全员无法登录。已改 `(user.pwd || user.password)`，实测刘新元登录成功。
2. 待办 key 对象拼接：`TODO_PREFIX + state.user` → `[object Object]`，全员共享一份待办。已改 `state.user.name`。
3. TODO_API='/api/todos' 相对路径在 CloudBase 404 → 团队同步全灭。已改降级链：固定域名 → localhost → 本地模式。

**P1**
4. loadUserList 在匿名登录完成前调用 → 永远走 fallback 硬编码名单。已移入 signIn().then()。
5. 飞书免登指向死 Tunnel + 缺匿名登录态（用户确认免登从未成功过，本次先搁置）。
6. USER_DEPTS 按旧角色 ID 索引永远失效 → 改按姓名（赵云浩/张立娅）；`state.user!=='gm'` 死判断改 role。
7. 订单搜索框输入即失焦 → 防抖 300ms + render 后恢复焦点（铁律第1条同款）。
8. admin H2 目标取成"各部门7月"而非"按月合计" → 已修。
9. tabs 权限只过滤 dashboard → 非 admin 按 tabs[id]===0 显式隐藏。

**P2**：删除残留 AUTH 对象。

**产物**：本地源 `工具/index.html`（此前只有线上无本地源）、备份 `index_backup_20260726.html`。

## 二、Tunnel 稳定化（方案B：Tailscale Funnel）

- 用户无 Cloudflare 域名；腾讯云 CloudBase 无法代理到本机（静态托管+云函数都在云端）。
- Cloudflare login 回调 TLS 超时（国内网络），方案A 不可行。
- **最终架构**：`https://macbook-air-2.tail6864e8.ts.net`（固定域名，永不变）→ Tailscale Funnel → 本机 8765。
- 三端点公网实测通过（todos/login/feishu-auth），CORS `ACAO:*` 正常。
- 两个页面共 5 处旧 Tunnel URL 全部替换并部署（销售工作台.html 3处 + 工具/index.html 2处）。
- Tailscale 已加 macOS 登录项自启；旧 cloudflared 重试循环会话已关闭。
- **明天 2026-07-27 14:00 有定时提醒**：决策是否切换"买域名+Cloudflare Named Tunnel"。

## 三、飞书应用配置核查

- ② 重定向 URL 白名单：✅ 已配置（构造授权链接实测，进入登录页而非报错页）。
- ① 应用首页地址：API 无权限读取（缺 admin:app.info:readonly），需用户在飞书客户端点开应用肉眼确认。
- ③ 正式发布：仍待办（用户 7/27 清单第2项）。
- 后端 `/api/feishu/auth` 凭证完整（app_id cli_aaee6a2f90b89bc1）。

## 四、架构设计文档评审结论（文档 v1.0 → 建议 v1.1）

**过时项**：Cloudflare Tunnel 架构图、待办=localStorage、商机339个（实际337）、认证体系描述、IMA 知识库ID待核实（fwEO41E0... vs lofJ7cHGhLIvU_...）。
**未记录的最大负债**：双工作台入口（/index.html vs /工具/index.html 两套架构）。
**数据口径不一致**：客户数 1678（看板）vs 1700（客户Tab）。

**设计建议（已获讨论）**：
1. 飞书消息触达不必新造轮子 → 用 Hermes Gateway + cron 实现，顺丰推送估 1 天而非 2-3 天。
2. 销售员个人看板不必等免登 → 姓名+密码登录已可用。
3. 知识飞轮先单向转（先读后写），沉淀卡 2-3 人试点。
4. 转化漏斗前置任务：客户名标准化（活动↔ERP 简称/全称混用）。

**下一步优先级共识**：
1. P0 顺丰→飞书弹窗（Hermes cron 通道）
2. P0 统一双工作台入口
3. P1 客户360°档案卡（纯前端聚合，不依赖 IMA）

## 五、环境备忘

- session_search 数据库损坏（database disk image is malformed），历史会话检索不可用。
- remindctl 两次超时，Apple Reminders 通道暂不可用（可能卡授权弹窗）。
- 后端 8765 在 tmux `workbench` 会话（`python3 脚本/销售工作台服务.py 8765`）。
