🛠️ 技术开发

每个大版本的开发日志:功能需求 · 实现 · 注意事项 — 技术发展的长期积累(最新在上)
P3+P4 · 公司经营/团队管理驾驶舱 2026-06-13
销售中台管理公司目标
运营后台公司经营总览:公司目标进度+月底预测 + 团队记分牌 + 落后预警
🎯 功能需求开发
  • P1 让每个销售自驱后,公司/主管仍看不到全队、无法朝目标统筹
  • 宗旨后两条:提升整个团队水平 + 达成公司更高销售目标
🔧 实现
  • DB:getCompanyRevenueByPeriod(公司本月/本年成交)+ getRevenueByPeriodAllSales(各销售按期,一次查询);公司目标存 app_settings(company.annual_goal/monthly_goal)
  • /api/admin/company-overview:公司目标进度 + 按当月进度的月底预测(线性) + 团队记分牌(本月成交/月目标%/累计/线索/演练均分/紧急作战数) + 落后预警(紧急多/演练分低/无成交/月进度落后)
  • 运营后台顶部「🏢 公司经营总览」卡:公司目标进度条+预测 + 团队记分牌表 + 红色提示标签;设公司目标 /api/admin/company-goals
⚠️ 注意事项
  • 落后预警是简单规则信号,供主管识别该帮谁;真正 AI 教练(诊断+建议)可后续叠加
  • 管理仍是 admin 平视全队;按主管分团队的细粒度权限留待后续
P1 · AI 今日作战指令(侧边栏 × 销售中心联动) 2026-06-13
销售中台AI扩展核心
AI 按优先级给出'今天该联系谁+下一步',在销售中心首页和 WhatsApp 侧边栏同时驱动销售
🎯 功能需求开发
  • 让 AI 从'被动等点'变成'主动驱动':每天给销售排好最该处理的客户
  • 要在 WhatsApp 侧边栏和销售中心都成为核心工具,二者联动
🔧 实现
  • 复用 scheduler.generateDailyTaskList 规则引擎(urgent/follow_up/nurture/maintain)
  • 销售中心:作战清单折进 /api/my/overview,首页顶部「🎯 今日作战」卡(优先级标签+原因+下一步+打开客户深链);另有 token 作用域 /api/my/actions
  • 侧边栏联动:扩展已有提醒栏(/api/my-tasks)显示全量清单;新增'当前客户作战提示'——打开某客户聊天时按姓名/号码匹配清单,命中则在客户头部高亮 reason+actionHint(renderCurrentCustomerAction)
  • 扩展 bump 0.1.5
⚠️ 注意事项
  • 这是'工具→Copilot'的关键一步:销售一眼知道今天打给谁、为什么、说什么
  • 下一步可叠加 AI 话术增强(给每个作战项生成开场白)、P2 归因闭环让作战项按赢单结果排序
v2.8.1 · 知识库排版 + WhatsApp 助手入口 2026-06-13
销售中台体验
基础知识库改多列网格(缩短页面) + 工作台加 WhatsApp 助手安装入口(跳商店)
🎯 功能需求开发
  • 基础知识库 15 个分类单列堆叠导致页面过长,体验差
  • WhatsApp 小助手要在工作台有入口,点击跳 Chrome 商店下载
🔧 实现
  • kbList 容器从单列改 grid(auto-fill minmax 240-260px),分类折叠卡多列排布,高度大幅缩短(/knowledge 与 /portal 知识库 tab 同改)
  • 工作台顶栏加「📥 WhatsApp 助手」常驻入口 + 首页 hero 下加引导横幅,均跳 chromewebstore.google.com/detail/gakppbdcpfolignkbhpfeggeghpaikpj
⚠️ 注意事项
  • 商店链接用已确认的 item ID;若 URL 有变在此处改
v2.8 · 基础知识库展示 2026-06-13
销售中台知识库
把公司标准知识(基础知识库,非话术)列入知识库 UI,销售与运营可查阅
🎯 功能需求开发
  • 公司标准知识(产品/价格/MOQ/物流/政策/FAQ 等事实)要列入知识库,与销售话术区分开——属基础知识库
🔧 实现
  • 复用数据中心 business_knowledge(已有 66 条,唯一真相源),不重复录入:getFoundationKnowledge 解析缓存,按分类返回
  • 新增 GET /api/knowledge-base(按分类分组,中文标签,数据中心未配置时 configured:false)
  • 运营后台 /knowledge 加「📒 基础知识库」区(按分类折叠);销售门户「销售知识库」tab 顶部加基础知识库,置于 Q→A/团队知识之上
⚠️ 注意事项
  • 基础知识=事实(business_knowledge),话术=sales_scripts,Q→A=本地自进化单元,三者分层不混
  • 本地拉不到数据中心则 groups 空;生产已配 DATA_API_KEY 可正常拉取
v2.7 · 目标激励(销售自设年/月目标) 2026-06-13
销售中台激励工作台
销售自设年度/月度成交目标,驾驶舱进度条显示完成度,达成有 🎉
🎯 功能需求开发
  • 做激励,但目标由销售自己设(年度/月度),在驾驶舱显示进度
🔧 实现
  • DB:sales_accounts 加 annual_goal/monthly_goal;getSalesRevenueByPeriod 按 date_trunc 算本月/本年成交额
  • /api/my/overview 增 goals(年/月目标 + 本年/本月成交 + 完成百分比);新增自助 POST /api/my/goals
  • 驾驶舱「🎯 我的目标」卡:年度/月度进度条 + 「设置目标」内联表单;达成(≥100%)进度条变金绿+🎉
⚠️ 注意事项
  • 目标按成交额(revenue)计、按 created_at 落月/年;销售随时改
  • SQL 验证:本月30000/月目标50000=60%,本年50000/年目标500000=10%
v2.6 · 销售工作台驾驶舱 2026-06-13
销售中台工作台体验
工作台首页重做为驾驶舱:客户/业绩/线索/待办/能力等级一屏俯瞰
🎯 功能需求开发
  • 原首页太薄(仅 5 数字+待办),缺少'一眼掌控全局'的感觉
  • 要体现:客户情况、业绩情况、待办、线索、专业等级
🔧 实现
  • 聚合接口 /api/my/overview:一次并行返回 客户/业绩(含提成)/线索/待办(今日逾期)/能力等级/社媒,避免首页发 6 个请求
  • 首页重做:Hero(问候+等级徽章) + 5 个头部 KPI(提成/成交额/客户/待跟进/今日待办) + 4 张卡(业绩/客户/线索+社媒/能力等级) + 今日待办清单(可勾选完成)
  • 每张卡带「详情›」跳转对应模块;响应式(窄屏 2 列)
⚠️ 注意事项
  • 提成预估直接上首页头条——销售最关心的数字一眼可见
  • 待办可在首页直接勾选完成(复用 bindTodo)
v2.5 · 订单凭证文件(图片/PDF) 2026-06-13
销售中台订单文件
打款凭证支持上传图片/PDF(客户常发凭证图),销售上传、财务后台查看
🎯 功能需求开发
  • 客户发来的打款凭证多为图片/PDF,订单凭证不能只支持文字
🔧 实现
  • 存储决策:容器每次部署重建会丢文件,故凭证文件存 Postgres(order_files.content bytea),随库持久、不需新基建/密钥;上限 6MB,仅图片/PDF
  • 上传:前端 FileReader 转 base64 → POST /api/my/orders/:id/files(校验归属、线下待打款自动转已打款待确认)
  • 查看:GET /api/order-files/:id(销售本人或管理员),前端带 token fetch→blob→新窗口打开(解决 <img> 无法带鉴权头)
  • 订单列表一次查询带出文件元信息(jsonb_agg,避免 N+1);销售端订单可上传/查看,运营后台订单核对可「📎查看」凭证
⚠️ 注意事项
  • 文件鉴权:先查文件存在再校验 admin/owner,存在文件未授权返回 401 不泄露内容
  • 文本凭证(流水号/链接)与文件凭证并存;后续若量大可迁 Supabase Storage
v2.4 · AI 配置入运营后台 2026-06-13
销售中台AI配置
全平台 AI 模型/API 配置从环境变量挪到运营后台,可随时调,改完即时生效
🎯 功能需求开发
  • 全平台 AI(分析/回复/翻译/社媒文案/知识提取/能力考核)共用一套配置
  • 把模型/API 配置放进运营后台,后续可调,不必改环境变量重部署
🔧 实现
  • DB:通用 app_settings 表(project_id,key,value),存 ai.model_heavy/model_light/base_url/api_key
  • ai.js:aiConfig 缓存 + refreshAiConfig(优先级 DB > 环境变量 > 默认 deepseek-v4-pro/api.deepseek.com);pickModel/callOpenAI 改从缓存读;启动时与保存后刷新
  • 运营后台「AI 配置」卡:主模型/轻量模型/Base URL/API Key(脱敏显示 ••••后4位,留空=不改);接口 /api/admin/ai-config(GET/POST)
⚠️ 注意事项
  • API Key 不回传前端(只给 configured + 后4位提示);写库存 whatsapp schema(最小权限角色)
  • 读不到 DB 配置时自动回退环境变量,向后兼容;改一处全平台 AI 生效
  • 工程:新增 scripts/check-inline-scripts.mjs 已并入 npm run check(防内联脚本语法坑)
修复 · 销售工作台登录无反应 2026-06-13
修复销售中台
/portal 内联脚本因模板字符串转义 \n 产生真换行 → 整段 JS 语法错误 → 登录等按钮全失效
🎯 功能需求开发
  • 现象:销售在 /portal 点登录完全没反应(账号、登录接口均正常)
🔧 实现
  • 真因:renderPortalPage 社媒文案 handler 写了 "\n\n",外层模板字符串把 \n 转义成真换行,浏览器端字符串未闭合 → 整段内联脚本语法错误 → 所有 onclick(含登录)都未绑定
  • 修复:改为 "\\n\\n"(让浏览器收到 \n)
  • 防回归:node --check 查不到内联 <script> JS;新增 scripts/check-inline-scripts.mjs 抽取各页 <script> 逐个 node --check,并接入 npm run check(同时补齐所有 server 模块)
⚠️ 注意事项
  • 教训:模板字符串内嵌浏览器 JS 时,字符串里的 \n/\t 等必须双重转义;改完页面务必跑 npm run check(含内联脚本校验)再部署
v2.3 · 销售能力等级与演练考核 2026-06-13
销售中台能力成长AI
AI 实战演练考核(出题→作答→评分)+ 能力等级;运营后台能力考核统计。v2 七大模块收官
🎯 功能需求开发
  • 公司对销售专业能力的考核通过演练进行;游戏化分级;等级与提成相关(决策7)
  • 用知识引擎 Q→A 当题源,AI 出客户场景题、销售作答、AI 评分点评
🔧 实现
  • DB:assessments 表(question/reference/sales_answer/score/feedback/level_at_time)
  • AI:generateAssessmentQuestion(优先用 active 知识单元当题源,否则按业务背景自拟)+ gradeAssessmentAnswer(0-100 分+点评+示范)
  • 销售端「能力等级」模块:等级/演练次数/平均分/最高分 + 实战演练(出题→作答→AI评分) + 演练历史;接口 /api/my/assessment(+/question +/grade)
  • 运营后台「销售能力考核」卡:各销售演练次数+平均分,供能力评估与等级调整参考
⚠️ 注意事项
  • 等级仍由运营后台手动设(驱动提成),演练平均分作为调级依据;未做自动升级
  • 题源依赖知识引擎 Q→A——知识库越丰富,考题越贴合实战(冷启动时 AI 按业务背景自拟)
  • v2 七大模块(线索/待办/订单/业绩提成/社媒/发票/能力等级)全部上线,销售中台主体完成
v2.2 · 社媒获客 + 形式发票 2026-06-13
销售中台社媒AI
社媒获客工作台(TK/INS/YT/FB 发布打卡 + AI 文案助手)+ 形式发票入口
🎯 功能需求开发
  • 销售核心获客方式是发社媒(TikTok/Instagram/YouTube/Facebook)引流到 WhatsApp
  • 把这段数字化:可量化的发布动作 + AI 帮写社媒文案
  • 形式发票:初期跳转 invoice.365nails.com(决策5)
🔧 实现
  • DB:social_posts 表(platform/topic/content_ref/posted_at,带 project_id)
  • AI 文案:callOpenAI 新增 social_content 模式 + generateSocialContent(按平台风格 + projects.business_context 生成 钩子/正文/标签/CTA)
  • 销售端「社媒获客」模块:AI 文案助手 + 发布打卡 + 近7天各平台发布统计;接口 /api/my/social(GET/POST)、/api/my/social/generate
  • 销售端「形式发票」模块:跳转 invoice.365nails.com(后续可嵌入)
⚠️ 注意事项
  • AI 文案用 projects.business_context 喂业务背景(多项目时自动切换,不写死)
  • 社媒→线索→客户的自动归因留待后续;现先量化发布动作
  • 至此 v2 七大模块除 M7 能力等级外全部上线;下一步 2.3 销售等级+考核
v2.1b · 提成规则与业绩统计 2026-06-13
销售中台业绩提成
提成按 团队类型(销售额/毛利) × 等级(L1-L3) 配置;个人业绩 + 运营后台业绩汇总
🎯 功能需求开发
  • 提成按员工类型不同:销售额团队按成交额、毛利团队按毛利(决策3);与销售等级相关(决策7)
  • 销售看自己的业绩与提成预估;公司在运营后台汇总核对各销售业务情况
  • 起步:销售额/毛利两类团队 + L1-L3 三级
🔧 实现
  • DB:sales_accounts 补 team_type(revenue|gross_profit)+level(L1-L3);commission_rules 表(项目×团队×等级→基数+比例),初始化 2×3 规则
  • 计入业绩 = 线下已确认收款 + 线上已登记;提成 = 基数(销售额或毛利) × 比例
  • 运营后台:开号设团队/等级、提成规则比例可编辑、销售业绩汇总(订单/成交额/毛利/提成)
  • 销售端「我的业绩」模块:订单数/成交额/毛利/提成基数/提成预估;接口 /api/my/performance、/api/admin/performance、/api/admin/commission-rules
⚠️ 注意事项
  • 提成比例运营后台可随时改,业绩实时按最新规则算;规则初始为 0,需公司填
  • SQL 已验证:销售额团队按成交额(15000×5%=750)、毛利团队按毛利(3000×10%=300)
  • 至此 2.1 闭环:线索→订单→核销→业绩→提成;下一步 2.2 社媒获客+形式发票
v2.1a · 销售订单与打款核销 2026-06-13
销售中台订单
订单录入:线下打款核销流程 + 线上网站成交只登记;对公账户管理 + 财务确认
🎯 功能需求开发
  • 线下订单:客户打款→销售录凭证→财务确认收款(决策2:本平台只记录,财务外部审核)
  • 线上网站成交:销售服务的客户在 Shopify 自助成交,只需登记,不走核销
  • 对公账户由公司在运营后台维护;订单要带成本以支持毛利团队提成
🔧 实现
  • DB:sales_orders(统一 order_type=offline|online,amount/cost/币种,线下 corporate_account_id+voucher_ref,线上 website_order_no)+ corporate_accounts
  • 状态机:线下 pending_payment→paid_unconfirmed(录凭证)→confirmed(财务确认);线上 registered
  • 销售端「我的订单」模块:录入线下/线上、补打款凭证(流水号/链接 文本)、看状态;接口 /api/my/orders
  • 运营后台:对公账户增删停用 + 订单核对(财务点确认收款);接口 /api/admin/corporate-accounts、/api/admin/orders
⚠️ 注意事项
  • 打款凭证 MVP 用文本(流水号/截图链接/说明),真文件上传留待后续
  • 毛利=成交额−成本(录了成本才算);为 2.1b 提成(销售额/毛利团队)铺好数据
  • SQL 已用回滚夹具验证:线下确认→毛利400、线上→registered
v2.0b · 线索池与分配 2026-06-13
销售中台线索
线索池:公司线索运营后台手动分配 + 销售端我的线索(公司指派/自行开发)
🎯 功能需求开发
  • 线索分类:公司指派线索 vs 自行开发,来源决定归属与提成(决策 4)
  • 公司线索(网站邮件、公共客服 WhatsApp 询盘等)进池,运营后台手动指派给销售
  • 销售在工作台看自己的线索,能录入自行开发的,标记转客户/丢弃
🔧 实现
  • DB:leads 表(project_id, source, lead_type=company_assigned|self_developed, status=new|assigned|converted|dropped, assigned_to…)
  • 运营后台 /admin 加「线索池/分配」卡片:录入公司线索 + 列表内下拉直接分配给销售
  • 管理接口 /api/admin/leads(GET/POST)、PATCH /api/admin/leads/:id(分配/状态)
  • 销售端激活「我的线索」模块:/api/my/leads(GET/POST)、PATCH /api/my/leads/:id(限本人名下,转客户/丢弃)
⚠️ 注意事项
  • lead_type=归属(公司/自开发),source=渠道(网站/公共客服/社媒/转介绍),两者分离更清晰
  • 线索→客户的真实 customer_id 关联留待后续(现先用 status=converted 手动标记)
  • getLeadStatsBySales 已备好(各销售线索数/转化),供 2.1 业绩用
v2.0a · 销售中台地基 2026-06-13
销售中台多项目
/portal 升级为桌面工作台外壳(左侧模块导航)+ 待办/日程模块(M3)+ 多项目 project_id 地基
🎯 功能需求开发
  • 从 WhatsApp AI 助手升级为'销售工作中台':/portal 要成为桌面工作台外壳,承载全模块
  • M3 待办/日程:约客户视频选款/通话要有待办+到点提醒
  • 提前埋多项目/SaaS 地基:AwwwStore 将作为第二个项目接入,未来或开放 SaaS
🔧 实现
  • DB:projects 表(含 org_id 预留,seed 365nails 业务背景) + sales_accounts.project_id + todos 表,均带 project_id
  • /portal 重写为左侧模块导航工作台:工作台首页(统计+今日待办)/我的客户/待办日程/知识库/指引 + 5 个'敬请期待'占位(线索/订单/业绩/社媒/等级)
  • 待办接口 /api/my/todos(GET/POST/PATCH),按销售作用域,project 从账号解析(getAccountProjectId 默认 365nails)
  • 工作台首页聚合 /api/my/summary + 今日/逾期待办,逾期红色高亮
⚠️ 注意事项
  • 多项目地基铁律:所有 v2 新表带 project_id,与数据中心 365nails-ai-ops 约定一致;已有表 project_id 回填放到 AwwwStore 接入期
  • 到点提醒目前是工作台首页视觉高亮(今日/逾期),浏览器/飞书推送留待后续
  • 下一步 2.0b 线索池+手动分配;2.1 线下订单+提成+业绩
v0.1.4 · 销售门户雏形 2026-06-13
销售门户权限
为销售开 Web 入口 /portal(看自己客户+知识库+指引)+ 侧边栏技巧短句条
🎯 功能需求开发
  • 销售此前无法登录运营后台,只能用扩展;需要一个销售本人能登录的 Web 入口
  • 每个销售只看自己的客户、做客情分析;知识库在权限内只读
  • 侧边栏底部空位放销售技巧短句,点击跳转销售知识库
🔧 实现
  • /portal 页(首版三 Tab:我的客户/知识库/指引),销售登录复用 /api/auth/login
  • 作用域接口 /api/my/customers、/api/my/summary:用 customerOwnedBy(按账号 id 优先、回退姓名) 过滤
  • 扩展 content.js:SALES_TIPS(zh/en/es 各 7 句)+轮播,openSalesKnowledge 跳转 /portal#knowledge
⚠️ 注意事项
  • 依赖 AUTH_ENABLED;销售账号须先在 /admin 设密码才能登录
  • v2.0a 已把此三 Tab 升级为带左侧模块导航的工作台外壳
知识引擎 v1.0 · R1/R2/R3 2026-06-13
知识引擎AI
知识库自进化算法:从'仅靠销售修改'重构为'需求→标准答案→个性→结果'四层引擎
🎯 功能需求开发
  • 旧逻辑只在销售修改 AI 草稿时学习,信号稀疏、幸存者偏差、不看需求侧
  • 知识的源头应是'客户问题(需求)',标准答案由'转化结果'检验,销售个性是渲染层
  • 把算法模型内置进知识库页面并建版本日志,便于长期查阅
🔧 实现
  • R1 需求侧:customer_questions 表(analyze 时非阻塞落库) + clusterCustomerQuestions AI 聚类成问题图谱、标盲区
  • R2 Q→A 单元:knowledge_units 表;盲区一键'采纳为标准答案';active 单元注入 AI 回复上下文(buildKnowledgeContext)
  • R3 结果加权:聚类回填 cluster_id;computeClusterConversion 算'问该类问题的客户转化率',回填 win_rate、按转化排序
  • 算法模型 v1.0 内置 /knowledge 页(四层模型/RAG 管线/多信号/版本日志),规范见 docs/knowledge-engine-v1.0.md
⚠️ 注意事项
  • R3 当前是'问题类型 × 客户结果'关联,非逐答案 A/B 归因(R3.1 未来:回复→单元→结果链路追踪)
  • 客户问题落库涉及 PII,需脱敏/最小化,与数据中心 S2 治理对齐
  • 冷启动依赖数据积累——先让销售多用,再聚类/采纳标准答案
v0.1.1–v0.1.3 · 销售体验 + 翻译闭环 2026-06-12
扩展体验i18n翻译
语言绑账号、分析报错根治、按钮合并、翻译闭环两道防线
🎯 功能需求开发
  • 西语同事界面大量中文;点击分析报错;顶部按钮太多增加心智负担
  • 销售用浏览器翻译插件读客户消息,导致侧边栏抓到译文而非源语言、污染数据
🔧 实现
  • 语言绑 sales_accounts.preferred_language,登录自动应用、跨设备生效;首次登录选语言;选择器移入设置;/admin 账号加'编辑'
  • 分析报错双层根治:服务端 normalizeAnalysisResult(tags→数组等)+扩展防御渲染;错误文案按 401/超时/5xx/网络分类
  • 顶部「刷新保存」+「分析」合并为「💾 保存并分析」(抓取→分析→存并写AI备注),删除独立分析按钮
  • 翻译闭环:侧边栏内置来客消息翻译(复用 /api/translate) + extractMessageText 剔除翻译插件节点 + 检测插件告警
⚠️ 注意事项
  • 教训①:分析报错真因是 AI 把 tags 返回成字符串、前端 .join 崩溃,不是 401——排查务必拿真实报错截图
  • 教训②:销售档案页因 els.openCustomers 空引用 init 抛错整页卡死——服务端渲染页事件绑定要对缺失元素用可选链
  • 三语字典须保持等量对齐(每次加 key 三处同步)
S1 · 知识回传数据中心 2026-06-12
数据中心集成
Copilot 已审核知识每小时回传数据中心 365nails-ai-ops(唯一真相源)
🎯 功能需求开发
  • 销售实战沉淀的知识困在 Copilot 本地,需回流总知识库
  • 数据中心 = 唯一真相源,各应用通过 API 读写;两系统共享同一 Supabase(不同 schema)
🔧 实现
  • 数据中心新增 POST /api/v1/ingest/knowledge + checkIngestKey + public.knowledge_pool 缓冲表(pending_review)
  • Copilot scheduler 每小时推送 knowledge_insights 中 approved 且 synced_to_hub=false 的条目,推成功标记同步
  • 手动触发 POST /api/knowledge/sync-to-hub
⚠️ 注意事项
  • 数据中心三条底线:独立 INGEST_API_KEY、(source,source_id) 幂等、缓冲表人工复核后才并入对外库
  • 启用需两端 .env 配同一 INGEST_API_KEY(数据中心 Vercel、Copilot VPS)
  • S2 客户同步待数据中心建 PII 锁死表;S3 画像增强待数据中心补客户级 Shopify/广告数据
Phase A · 客户来源渠道标签 2026-06-09
客户画像
客户来源渠道(WhatsApp/Shopify/广告/转介绍等)标记与分布
🎯 功能需求开发
  • 多渠道获客但无法区分来源,需轻量级来源标记,为后续跨渠道归一打基础
🔧 实现
  • customer.sourceChannel 字段;AI 分析推断 + inferSourceChannel 规则 fallback;批量导入默认值
  • 仪表盘总览加来源分布图;客户池详情可手动改;PATCH 端点放行 sourceChannel
⚠️ 注意事项
  • 8 个枚举值;存量客户默认'未标记',随 AI 分析/手动逐步填充
P0 + 重构 · 鉴权与模块化 2026-06-08
鉴权重构
登录鉴权+运营后台开号;服务端从单体拆为 6 模块;仪表盘 3-Tab 重构 + 独立知识页
🎯 功能需求开发
  • 多销售协作与数据安全需要登录鉴权与按身份归属
  • index.js 单文件 7000+ 行难维护;仪表盘信息过载
🔧 实现
  • sales_accounts 表 + node:crypto 自建密码哈希/HMAC 令牌(无新依赖);/api/auth/* + /admin 运营后台
  • 拆分为 db/ai/scheduler/auth/utils/pages 六模块(依赖注入避免循环依赖),index.js 降至 ~3500 行
  • 仪表盘拆 总览/AI效果/团队监控 三 Tab;知识库独立成页
⚠️ 注意事项
  • AUTH_ENABLED 开启后旧版扩展被挡,须同步发新扩展
  • 重构期间多 Agent 并发改同一文件曾互相覆盖——大改用串行或明确分区
阶段一~三 · 基建 2026-06-07
基建部署
脱离旧 monorepo 独立复现 → GitHub 私有仓库 + Supabase 迁移 → Chrome 商店就绪 + 生产部署
🎯 功能需求开发
  • 从旧机器/旧 monorepo 迁出,形成可独立运行、可上线的产品
🔧 实现
  • FEISHU_ENABLED 开关解耦飞书依赖;私有仓库 laojin1900/whatsapp-sales-copilot
  • Supabase 项目 365nails-ai-ops 的 whatsapp schema(专用最小权限角色 whatsapp_app)
  • 生产 copilot.365nails.com(VPS Docker + Caddy);扩展打包(load-unpacked + store zip);隐私政策 /privacy
⚠️ 注意事项
  • DeepSeek(OpenAI 兼容, base=api.deepseek.com);商店可见性 Unlisted 方向