# Changelog

## v8.1.0 — 2026-06-17

### 新功能
- 区块链存证：协议签署全生命周期事件（创建/签署/拒签/撤销/完成）自动上链，协议详情页展示存证区块列表（索引、事件类型、操作方、时间戳、区块哈希），独立微服务 `blockchain_server`（端口 9006）以 SHA-256 哈希链方式存储，采用 Outbox 模式解耦，APScheduler 每 10 分钟刷新队列保障可靠性

---

## v8.0.0 — 2026-06-17

### 新功能
- 客户通讯录（`/clients/contacts`）：按拼音首字母分组展示全量客户联系信息，支持右侧 A-Z 字母导航锚点跳转、顶部搜索过滤、手机号一键拨号、手机/微信/邮箱复制按钮；客户管理页右上角新增入口按钮

---

## v7.9.0 — 2026-06-16

### 优化
- 客户来源：抽取 `leadSource.ts` 共享模块，线索来源标签统一管理；仪表盘线索卡片来源字段改为中文显示（原显示英文 key）
- 客户来源选项：「手动录入」更名为「主动开发」（语义更准确），新增「其他」兜底选项
- 客户内部备注：编辑时改为追加模式，历史记录只读展示，新增内容拼接至末尾，防止覆盖原始记录

---

## v7.8.0 — 2026-06-16

### 优化
- 电子签名：引入 `signature_pad` 库，签名笔迹由折线升级为贝塞尔曲线平滑渲染，新增速度感知线宽（慢落笔粗、快划细），修复 Retina 屏模糊问题；抽取 `SignaturePad` 共享组件，消除两处重复代码
- 电子签名页（`/signature`）：界面样式对齐仪表盘紧凑风格（`rounded-2xl`、小号标题、`space-y-3`）

---

## v7.7.0 — 2026-06-16

### 优化
- 样式对齐：回款汇总、数据导出、评价管理页面统一采用仪表盘紧凑风格（圆角、间距、指标卡、标题栏）

---

## v7.6.0 — 2026-06-15

### 优化
- 重构仪表盘：改为左右两列布局（获客与转化 / 协议签署，项目执行 / 沙龙管理），运营配置移至底部全宽横条；精简指标卡样式，去除冗余转化漏斗区块，优先待办为空时自动隐藏

---

## v7.5.0 — 2026-06-15

### 修复
- 分页配置审计：修复金币流水列表每页数量硬编码问题，统一改为读取 `PAGE_SIZE` 全局配置；修正材料向导 service 层默认分页数量与全局不一致（12→20）

---

## v7.4.0 — 2026-06-15

### 新功能
- 个人资料页新增「最近登录记录」：在账号安全卡片中展示登录时间、IP、设备信息及成功/失败状态，支持加载更多

---

## v7.3.0 — 2026-06-15

### 新功能
- 增加登录日志记录：每次登录尝试（成功或失败）均写入日志，记录时间、IP、设备信息及失败原因，用于账号安全审计

---

## v7.2.0 — 2026-06-09

### 优化
- 线索池重构：新增获客来源漏斗，直观展示各渠道（业务主页、在线咨询、材料清单向导、沙龙、测评、其他）带来的线索数量及占比
- 漏斗与状态指标合并为一张卡片，支持按来源渠道或线索状态快速筛选
- 「其他渠道」新增说明提示，解释手动录入及无来源标记的线索归属

---

## v7.1.0 — 2026-06-04

### 优化
- 数据导出界面优化：改为分组列表布局，新增模块图标与分类标题

---

## v7.0.0 — 2026-06-04

### 新增
- 数据导出中心：支持线索池、客户档案、项目列表、材料清单、回款记录、协议记录、沙龙名单、测评记录一键导出 Excel

---

## v6.10.0 — 2026-06-04

### 优化
- 个人业务主页样式优化

---

## v6.9.0 — 2026-06-03

### 新增
- 项目导出报告与协议完整签署文件 PDF 新增平台签章（圆形红章，含平台认证文字与生成日期）

---

## v6.8.0 — 2026-06-03

### 修复
- 修复探索页展示已过期沙龙活动的问题
- 修复沙龙列表页过期活动状态仍显示"进行中"的问题
- 修复过期活动的会务报名、签到、会务签到页面仍可正常操作的问题
- 新增沙龙过期自动结束定时任务，每小时扫描并将已过活动日期的沙龙标记为已结束

---

## v6.7.0 — 2026-06-03

### 修复
- 修复 AI 商业情报公开提交接口直接信任 `X-Forwarded-For`，可绕过 IP 限流的问题
- 修复生产数据库密码允许空字符串且数据库 URI 绕过 `DB_PASSWORD` 类属性的问题
- 修复业务主页公开访问统计直接信任 `X-Forwarded-For`，访问分析数据可被污染的问题
- 修复 Admin 审计日志直接记录可伪造 `X-Forwarded-For` 的问题
- 修复 AI 商业情报管理员认证复制 Admin HMAC Token 机制、缺少统一审计的问题
- 修复公开 HTML 报告 CSP 使用 `script-src 'unsafe-inline'` 放大 XSS 影响的问题
- 修复全局 Flask-Limiter 默认 key 未复用项目统一 `client_ip()` 的问题

---

## v6.6.0 — 2026-06-03

### 修复
- 修复若干已知问题

---

## v6.5.0 — 2026-06-02

新增会议纪要 AI 金币余额门控，余额不足时引导充值。

---

## v6.4.0 — 2026-06-01

### 优化
- explore 产品功能页新增会议纪要 AI 入口及详情介绍
- 删除弹窗统一为站内样式组件，替换原生 confirm 弹框

### 修复
- 修复弹窗与主站风格不一致问题

---

## v6.3.0 — 2026-06-01

### 优化
- **会议纪要 AI 角标**：侧边栏导航"会议纪要"文字右上角新增 AI 上标角标，快速识别 AI 能力入口

### 修复
- **金币扣费时机**：修复调用 AI 解析后不保存仍消耗平台成本但不扣用户金币的问题，现改为 AI 接口调用成功时立即扣减
- **会议纪要提示词**：优化 AI 解析提示词，支持 OCR 噪音处理、发言人识别、动态区块输出，提升待办提取准确率

---

## v6.2.0 — 2026-06-01

### 新功能
- **金币中心**：独立金币中心页面（侧边栏底部用户菜单入口），展示当前余额、累计充值、累计消耗及完整流水记录，数据均来自数据库真实聚合，不再估算
- **金币服务 DDD 化**：抽取 `billing` 领域服务，提供统一的扣减（`/api/coins/deduct`）与充值（`/api/coins/recharge`）API；所有 AI 功能消费金币均通过该服务，会议纪要不再内联扣费逻辑
- **会议纪要简化**：移除列表页金币统计卡片，金币信息统一在金币中心查看

---

## v6.1.0 — 2026-05-29

### 优化
- **会议纪要金币消耗**：列表页新增金币数据统计（余额、每次消耗、已解析次数、累计消耗），一眼掌握用量；AI 结论输出升级为企业标准三区块格式（决策事项 / 重要结论 / 风险提示），优先级按四象限矩阵判定

---

## v6.0.0 — 2026-05-29

### 新功能
- **AI 会议纪要**：上传会议截图或文档，AI 自动提取待办事项、负责人和截止时间，确认后一键保存；支持勾选完成、随时编辑，告别会后手动整理纪要；Pro / Max 专属功能，按次计费

---

## v5.21.0 — 2026-05-29

### 新功能
- **探索页**：新增 `/explore` 公开探索页，展示平台产品功能入口（9 大功能模块）、客户入口（工作台/材料上传/协议签署）、推广员入口及平台公开内容（业务主页/测评工具/沙龙活动），支持分页浏览，全端适配；新增各功能落地介绍页 `/explore/feature/[slug]`，含登录/注册 CTA；导航栏增加「探索」入口

---

## v5.20.0 — 2026-05-28

### 优化
- **OCR 识别服务重构**：按最佳实践全面重写 OCR 独立服务（端口 9009），锁定 PaddleOCR 2.8.1 + PaddlePaddle 2.6.2 稳定版，解决 3.x PIR/oneDNN 兼容性问题；引入 venv 隔离部署，消除系统包冲突；新增一键部署脚本（`deploy.sh`），自动检测 macOS / Linux 环境、安装系统依赖、创建虚拟环境并启动服务；代码精简去除版本兼容分支，服务稳定性大幅提升

---

## v5.19.0 — 2026-05-27

### 新增
- **OCR 识别服务**：新增独立 OCR 微服务（端口 9009），支持图片、PDF、Word、Excel 文件文字识别，与主服务解耦部署

---

## v5.18.0 — 2026-05-27

### Bug 修复
- **协议签署**：修复发起协议时邮件发送失败无感知的问题，改为逐签署方跟踪发送状态，失败时页面提示并支持重发
- **文件上传**：修复极端情况下文件写入与数据库记录不一致的问题，确保操作失败时自动清理临时文件
- **证照管理**：修复删除证照图片时操作顺序不当可能导致记录与文件状态不一致的问题

---

## v5.17.0 — 2026-05-26

### Bug 修复
- **升级付款页**：修复价格计算写死问题，补差价金额现从套餐配置动态读取；修复选方案页无当前方案标识、续费场景标题显示"升级到"等交互错误；修复 AI 情报页描述中技术术语透出的文案问题

---

## v5.16.0 — 2026-05-23

### Bug 修复
- **AI 情报报告手机适配**：修复付费报告与公开报告在手机端布局错乱的问题，新增响应式 CSS 与底部目录抽屉，全部已生成报告（17 份）同步修复；Python 生成脚本模板同步更新，后续新生成报告自动支持手机

---

## v5.15.0 — 2026-05-22

### Bug 修复
- **AI 情报页提交失败**：修复生产环境 API 地址写死为 `localhost:9007` 导致表单提交报"网络异常"的问题，改为从 `lib/api.ts` 统一读取 `BACKEND_BASE`
- **首页情报 banner**：移除价格展示，避免与情报页价格不一致引发歧义

---

## v5.14.0 — 2026-05-22

### 新功能
- **AI 情报订单管理**：后台新增「情报订单」模块，管理员可查看所有用户提交的定制报告请求，一键确认后触发后台生成任务并自动将报告链接发送至用户邮箱
- **付费报告独立存储**：付费定制报告保存至 `script/reports_paid/`，通过专属接口 `/api/ai-intel/paid-report/<filename>` 对外提供，与公开批量报告隔离

### 优化
- **情报订单状态追踪**：订单状态实时更新（待确认 → 已确认 → 生成中 → 已完成 / 失败），生成完成后展示报告链接与邮件发送状态
- **执行日志接入**：情报生成任务写入计划任务执行日志，可在「计划任务」页查看耗时、详情与错误信息
- **情报定价调整**：定制报告价格更新为 ¥9.9

---

## v5.13.0 — 2026-05-22

### 优化
- **AI 商业情报 Agent 全面升级**：输出 token 上限提升至 16000，彻底解决第九节「潜在商业需求预测」及综合总结截断问题
- **分析质量提升**：重写 System Prompt，每维度增加结构化 AI 判断逻辑链，新闻舆情维度新增虎嗅、百度行业动态专项抓取，共 8 路数据源
- **报告页脚**：HTML 报告底部新增品牌页脚（© 多客特 · 材料收齐，不靠催 · Docket.top）
- **固定输出目录**：报告统一保存至 `script/reports/`，不再散落在脚本根目录
- **批量生成脚本**：新增 `batch_intel.sh`，覆盖 20 个行业代表企业，支持自动限速间隔与失败容错

---

## v5.12.0 — 2026-05-21

### 新功能
- **AI 商业情报 Agent**：输入公司名称，自动生成覆盖 9 大维度的结构化商业情报报告，包含企业基础画像、股权融资历史、团队背景、产品分析、媒体舆情、招聘扩张信号、知识产权、竞争格局及潜在商业需求预测，输出带品牌样式的 HTML 报告文件

---

## v5.11.0 — 2026-05-21

### 性能优化
- 修复推广客分页列表全量二次查询，改为 SQL 聚合，避免随用户数线性劣化

---

## v5.10.0 — 2026-05-20

### Bug 修复
- 修复 before_request 全局钩子 Cookie 污染 Portal/推广客/企业管理员 JWT 上下文导致 403 的问题
- 修复 `upload()` SSR 环境 401 处理崩溃
- 修复测评提交端点绕过 TRUST_PROXY 读取客户端 IP
- 修复 quiz 模块用户不存在返回 401 状态码语义错误
- 修复 Portal `send_otp` 双重限流冗余逻辑

---

## v5.9.0 — 2026-05-20

### Bug 修复
- 修复 Portal、推广客、企业管理员登录后立即 401 的问题，优化 JWT 认证链路稳定性

---

## v5.8.0 — 2026-05-20

### 优化
- 优化升级会员权限页面，改善 Free 用户的功能限制提示体验，升级选方案与付款流程更清晰

---

## v5.7.0 — 2026-05-20

### Bug 修复
- 修复若干体验问题

---

## v5.6.0 — 2026-05-19

新用户登录后新增新手引导，帮助快速上手材料收集项目、协议签署、沙龙活动和测评问卷四大核心功能。

---

## v5.5.0 — 2026-05-18

### Bug 修复

**安全加固**

- Admin Token 签名改为以 `ADMIN_PASSWORD` 作为 HMAC 密钥，消除硬编码常量泄露风险
- 公开律师档案 9 个接口补全速率限制，防止线索提交、AI 对话、评价接口被恶意刷量

---

## v5.4.0 — 2026-05-18

### Bug 修复

**安全加固**

- JWT Token 迁移至 `HttpOnly; SameSite=Strict` Cookie，消除 XSS 窃取 Token 风险
- 速率限制生产环境改为强制配置 Redis，禁止回退到内存存储
- X-Forwarded-For 改为受 `TRUST_PROXY` 开关控制，防止伪造 IP 绕过速率限制
- 文件预览 HTML 内容增加 DOMPurify 消毒，防止恶意 Office 文件触发 XSS

---

## v5.3.0 — 2026-05-18

### Bug 修复

**后端**

- 客户端证照图片 URL 构造存在 N+1 数据库查询且可能崩溃
- 管理员文件列表协议标题为 NULL 时 SQL 拼接产生空标签
- 付费用户 `plan_end` 为 NULL 时被静默标记为已到期
- 注册接口 email 未在 API 层统一转小写
- 律师账号删除后客户上传文件绕过大小限制
- 协议 `sign()` 允许对未发送邀请的草稿状态直接签署
- 沙龙列表接受 `page=0` 导致返回空数据
- Portal 层邮箱未在 API 层转小写
- `login()` 邮箱未在 API 层转小写
- 会员降级定时任务缺少事务异常处理

**前端**

- SSR 环境下访问 `localStorage` 和 `window` 导致运行时崩溃
- 财务页面 API 出错时访问 `data.months` / `data.items` 导致白屏
- 客户门户项目详情页 `photos.length` 缺少可选链
- 收集页批次分组 `parseServerDateTime` 返回 Invalid Date 时静默错误
- `AppLayout` 用户刷新失败时缺少错误日志

---

## v5.2.0 — 2026-05-14

### 新增
- **协议签署页批注功能**：签署方可在签署过程中对 PDF 文件拖拽画线添加位置批注（pin），松手后输入批注内容；批注以横线形式叠加在 PDF 对应位置，支持手机触屏拖拽
- **评论功能**：签署方可在签署页添加全局评论，与位置批注独立展示
- **批注与评论分 Tab 展示**：签署页新增「批注」和「评论」两个独立 Tab，与签署操作和进度分离，结构更清晰
- **可见性控制**：律师在发起协议时可分别设置批注和评论的可见性（所有签署方互见 / 仅自己可见），签署页展示对应的可见性标签
- **Esc 退出批注模式**：批注模式下按 Esc 关闭输入弹窗或退出批注模式

---

## v5.1.0 — 2026-05-14

### Bug 修复
- 修复协议签署页文件预览异常问题

---

## v5.0.0 — 2026-05-14

### 新增
- **企业定制首页**：支持通过环境变量一键切换为企业专属登录页，展示购买方公司名称、部署方案类型与席位数量，提供登录和管理员两个并排入口。支持 Pro 团购、Max 团购、私有化部署三种方案类型配置
- **企业模式注册限制**：企业模式开启时，访问 `/register` 自动跳回首页，防止非授权用户自主注册
- **一键切换脚本**：新增 `script/enterprise_mode.sh`，交互式配置或还原企业部署模式，同步写入 Flask 与 Next.js 环境变量

---

## v4.9.0 — 2026-05-13

### Bug 修复
- **合同页手机号 hydration 修复**：iOS Safari 会自动识别页面中的手机号并改写 DOM（插入短横线、包裹 `<a href="tel:">`），导致 Next.js SSR 与客户端渲染不一致，触发 Unhandled Runtime Error。在手机号所在节点添加 `suppressHydrationWarning`，保留浏览器的一键拨号功能，消除 hydration 报错

---

## v4.8.0 — 2026-05-13

### Bug 修复
- **合同页手机端样式修复**：修复合同内容在移动端超出边界的问题；页面外层左右边距在手机端从 24px 收窄至 12px，合同卡片内边距从 40px 降至 20px，释放更多内容宽度；签字区（甲方/乙方）在窄屏改为纵向堆叠，不再并排溢出；当事方信息表标签列在小屏支持换行，不再撑宽表格

---

## v4.7.0 — 2026-05-13

### 新增
- **限时促销页**（`/promotions`）：新增团队采购专属促销落地页，包含 Pro 团购（10人·1年·9.5折）、Max 团购（10人·1年·9折·赠独立服务器+专属域名）、私有化部署（9折）、长期订阅（3个月以上·9.8折）四套方案；方案卡片与主站定价区设计语言一致
- **合同生成器**（`/contracts`）：支持在线填写甲方信息、选择套餐、实时预览完整中文软件服务合同，一键打印保存为 PDF；合同包含 12 条完整条款，对乙方（服务方）保护性条款齐全（逾期付款违约金、赔偿上限、单方解约扣款、知识产权归属、争议管辖地等）；合同号客户端生成，无 SSR hydration 不匹配问题
- Footer「支持」栏新增「限时促销优惠」入口，促销页下方新增「生成合同」快捷跳转

### 优化
- `site.ts` 新增 `company`、`companyAddress`、`contactName` 字段，合同页全部读取变量，无硬编码
- 合同打印 PDF 修复多页截断问题：`@page` 设定 A4 尺寸，打印时强制清零 `min-height`、`overflow`，合同内容完整流入多页

## v4.6.0 — 2026-05-12

### Bug 修复
- 修复若干已知问题，优化页面展示稳定性

### 文案优化
- 调整部分站点展示文案与品牌呈现，统一为当前版本口径

## v4.5.0 — 2026-05-12

### 优化
- **测评留资表单新增邮箱字段（必填）**：测评公开页留资表单（答题前与答题后两个时机）新增邮箱输入项，姓名、手机号、邮箱均为必填，公司仍为选填；邮箱数据随留资记录一并写入后端 `respondent_email` 字段
- **客户档案身份字段支持修改**：编辑客户时，姓名、邮箱、手机号由永久只读改为"锁定 + 一键解锁"机制；点击"解锁修改姓名/邮箱/手机"后字段变为可编辑，并展示提示（修改邮箱不影响已有项目关联，保存时系统自动检查邮箱是否与其他客户重复）；取消编辑或切换客户时自动重新锁定

## v4.3.0 — 2026-05-12

### 优化
- 测评留资表单副文案去除职业专属表述，"律师将根据您的测评结果联系您" 改为 "专业顾问将根据您的测评结果联系您"，适配平台多职业服务场景

### Bug 修复
- 修复上线后 `quiz_templates` 表为空的问题：部署脚本 `start.sh` 补充执行 `seed-quiz-templates` 命令，确保测评内置模板随每次部署自动写入

## v4.2.0 — 2026-05-11

### 新增
- **测评答题记录详情**：答题记录列表每行可点击，弹出详情 Modal，展示受访者信息（姓名、手机、邮箱、公司）、测评结果（总分、结果分段）、维度得分，以及每道题的题目与作答内容
- **使用帮助新增测评工具分类**：帮助面板新增「测评工具」9 条常见问答，覆盖功能介绍、套餐权限、创建流程、题型说明、结果分段、推广方式、答题记录查看、留资时机与状态管理

### 优化
- 全局搜索新增测评结果分组，支持按测评标题搜索；快捷入口展示全部菜单项
- 全局搜索头部 Placeholder 文案精简为"搜索全局"
- 移动端抽屉内全局搜索卡片水平内边距加大，视觉比例更紧凑

## v4.1.0 — 2026-05-11

### 新增
- 增加测评工具（`/quizzes`），支持创建多类型测评、发布公开链接、自动沉淀留资

## v3.13.0 — 2026-05-09

### 新增
- 回款汇总页（`/finance`）顶部新增“导出数据”按钮，支持一键下载 Excel
- 导出的 Excel 固定包含 3 个 sheet：汇总、维度聚合、项目明细，覆盖全量时间范围数据

### 优化
- 项目明细导出补齐回款情况、收款金额、收款方式、收款备注、收费状态与应收/已收/待收等字段，便于直接对账与整理

## v3.12.0 — 2026-05-09

### 新增
- 沙龙管理列表页新增“二维码”入口，可直接进入单场活动的二维码中心
- 沙龙二维码中心支持统一展示 4 类二维码：活动报名、活动签到、会务报名、会务签到

### 优化
- 二维码中心支持单张二维码分别下载为 PNG，也支持 4 个二维码合并导出为一张整页 PNG，方便发群、打印和现场执行
- 草稿状态下保留二维码查看入口，并增加“未发布”提示，避免误发未正式开放的活动链接

## v3.11.0 — 2026-05-09

### 新增
- 沙龙详情页「会务用工」改为“会务报名审核”流程：支持展示会务报名二维码与报名链接，现场负责人无需再在后台手工逐条新增
- 新增会务报名待审核列表，负责人可直接执行“审核通过 / 驳回”，审核通过后自动进入当前会务名单

### 优化
- 会务用工统计口径调整为仅统计已通过审核人员，待审核与已驳回申请不再占用“已分配 / 已到岗”人数，岗位统计更准确
- 保留原有会务名单管理、会务签到二维码、签到/签退/缺席/备注等现场能力，在新审核流下继续复用

## v3.10.0 — 2026-05-09

### 新增
- 日程页系统事件新增状态角标：项目支持显示“进行中 / 已签收 / 已完成 / 已归档 / 已逾期”，沙龙支持显示“草稿 / 活动报名中 / 活动开始中 / 活动已结束 / 已归档”，协议支持显示“草稿 / 签署中 / 已完成 / 已拒签 / 已过期 / 已取消”
- `/schedule` 周视图、月视图、手机端日程列表与事件详情浮层统一展示状态角标，无需进入详情页即可判断业务阶段

### 优化
- 日程状态角标按状态语义区分颜色，同时保留模块主色，提升手机与 PC 端的信息识别效率和整体可读性

## v3.9.0 — 2026-05-08

优化服务流程图相关的文案。

## v3.8.0 — 2026-05-08

### Bug 修复
- 修复若干已知问题，优化页面细节与站点展示体验

## v3.7.0 — 2026-05-08

梳理 多客特 · 业务全流程泳道图 · 从获客到证照交付完整闭环

## v3.6.0 — 2026-05-07

### 新增
- **回款管理**：新增项目维度的收费与回款记录功能，支持按项目设置应收金额与收费类型（服务费、代理费、咨询费等），并逐笔记录到账明细（金额、日期、收款方式）
- 新增「回款汇总」页面（`/finance`），汇总全部项目的应收总额、已收总额、待收总额与本月回款，并支持按结清状态筛选项目列表
- 项目管理列表新增「回款管理」列，显示当前收费状态（未设置 / 待收 ¥X / 已结清），点击直接进入对应项目的回款管理页
- 新增项目回款详情页（`/finance/projects/[id]`），可在此管理单个项目的收费记录与收款条目，支持删除收款条目与修改收费设置
- 新增 `fee_records` 与 `payment_entries` 两张数据库表，`DECIMAL(12,2)` 精度，关联至项目与律师，含完整 FK 与索引
- 回款功能为 Pro / Max 套餐专属，免费版访问时展示升级引导

## v3.5.0 — 2026-05-07

### 新增
- 新增日程功能：支持月视图与周视图切换，自动汇聚沙龙活动日期、项目截止日、协议签署截止日为系统类事件，并支持手动创建自建类事件，可设置标题、时间、地点、备注和颜色

## v3.4.0 — 2026-05-06

### 优化
- 统一前后端时间处理规则：后端时间点字段统一输出 UTC ISO with `Z`，纯日期字段保持 `YYYY-MM-DD`
- 新增前端统一时间工具，收敛项目、客户、协议、沙龙、门户、公开页等模块的时间解析与展示，避免页面间时区偏差和原始时间串泄漏
- 新增时间审计脚本 `script/audit_time_outputs.py`，支持扫描代码中的时间风险点，并抽样校验项目、客户、协议、沙龙等模块的时间序列化结果

## v3.3.0 — 2026-05-06

### Bug 修复
- 完成一轮针对安全审计 Critical / High 问题的集中修复，移除多项敏感默认值与硬编码配置，补齐关键环境变量校验，降低因配置遗漏导致的高危风险
- 新增 Redis 限流状态可视化后台：支持在管理后台查看限流规则、Redis 存储状态、限流相关 Key 与最近 429 事件，便于排查认证与 OTP 接口的限流命中情况

## v3.2.0 — 2026-04-30

### 新增
- 推广客工作台新增提现功能：支持查看可提现余额、冻结金额、累计奖励与提现记录，满 100 元后可直接发起提现申请
- 推广客奖励规则接入前台：`Pro` 每位奖励 5 元，`Max` 每位奖励 10 元；首页金额改为按奖励规则计算，并扣减已冻结/已提现金额
- 推广客导航新增“提现”页面，形成首页、推广用户、提现三段式入口
- 后台推荐码列表每条记录新增“提现管理”操作，支持查看对应推荐码的提现记录，并直接标记“已打款”或“已驳回”
- 新增 `promoter_withdrawals` 提现记录表，用于保存推广客提现申请、冻结状态、联系人快照与处理结果

## v3.1.0 — 2026-04-30

### 新增
- 新增推荐码功能，支持生成、查看和管理推荐码相关数据

### Bug 修复
- 修复后台计划任务页“执行日志详情”弹窗在管理后台容器内渲染导致的顶部白边问题，改为挂载到 `document.body`，避免受中间滚动容器影响

## v3.0.0 — 2026-04-29

### 新增
- 完善客户管理功能，补齐客户档案能力

### Bug 修复
- 修复客户编辑状态下“客户姓名”“邮箱”“手机”字段仍可修改的问题，调整为只读

## v2.8.0 — 2026-04-28

### Bug 修复
- 修复业务主页相关接口的并发初始化问题：`GET /api/profile/page/analytics` 与 `GET /api/profile/page` 不再在读取时隐式创建主页，避免高并发下触发 `lawyer_profiles.lawyer_id` 唯一键冲突
- 新增业务主页幂等初始化能力，头像上传与在线咨询 FAQ 等需要实体存在的写接口统一走并发安全的 `get_or_create` 逻辑
- 无业务主页记录时，经营分析与主页设置接口返回默认空数据结构，前端可稳定渲染，避免首次访问出现 `500`

## v2.7.0 — 2026-04-28

### Bug 修复
- 后台计划任务页补全缺失任务定义，任务列表与真实调度配置保持一致
- 计划任务支持手动执行的范围扩展到“自动催收提醒”和“交付后评价邀请”，后台可直接触发并写入执行日志
- 执行日志详情展示增强：补充任务摘要、发送明细、失败原因等信息，便于查看发送给谁、对应什么项目
- 修复自动催收提醒任务的时间时区比较问题，避免因 naive / aware datetime 混算导致计划任务持续失败

## v2.6.0 — 2026-04-27

### 新增
- **前端 Header / Footer 文档整理**：合并历史梳理文档，统一收口为单一最新版文档，并补齐所有当前页面的 Header / Footer 对照表，逐页明确各页面实际使用的壳子、顶部和底部实现

### 优化
- PDF 导出文件中品牌标识统一为中文名「多客特」与域名 `docket.top`，涵盖页眉、页脚、声明段及参考编号行，与前端 BrandLogo 保持一致

## v2.5.0 — 2026-04-25

### 新增
- **沙龙管理完善**：活动详情页新增报名二维码展示，报名者列表补充邮箱信息；签到页、报名页与详情页头尾样式对齐，公开页体验统一
- 全局搜索新增沙龙管理结果分组，支持按活动标题、地点、slug、public_id 搜索，并在工作台搜索提示文案中明确补充“沙龙”
- 使用帮助面板补齐缺失分类：新增「评价管理」「沙龙管理」「协议签署」「在线咨询 FAQ」常见问题内容

### 优化

## v2.4.0 — 2026-04-24

### 新增
- **全局搜索面板**：工作台新增统一搜索入口，支持桌面端与移动端唤起，并接入 `⌘K / Ctrl+K` 快捷键
- 新增跨模块搜索结果聚合：可按类别检索线索池、项目、协议签署、文件清单模板与主菜单入口
- 新增本地“最近访问 / 常用项目”排序，在未输入关键词时也能直接回到高频工作区

### 优化
- 搜索面板视觉改为与站内一致的浅色品牌风格，移除深色高亮卡片，统一为浅底、浅蓝高亮与分类色标签
- 搜索入口文案收敛，只保留“全局搜索”标题，减少侧边栏与移动抽屉中的冗余说明
- 项目、协议签署、模板接口补充关键词检索能力，线索池与模板页支持从搜索结果带关键词落地打开

---

## v2.3.0 — 2026-04-24

### 新增
- **项目管理 / 协议签署导航角标**：新增轻量摘要接口 `GET /api/projects/summary` 与 `GET /api/agreements/summary`，分别按“待审核材料数”和“待签署人数”提供全局提醒数据

### 优化
- 主工作区导航提醒扩展到项目管理与协议签署：桌面端侧边栏、移动端抽屉导航分别显示独立角标，移动端顶部菜单按钮显示线索池、项目管理、协议签署三类待办总数

---

## v2.2.0 — 2026-04-23

### 新增
- **外联获客爬取**：新增百度 SERP 爬取模块，支持按行业关键词批量抓取律所/法务机构联系邮箱，进入外联线索池；修复 SERP 链接提取逻辑（四层兜底选择器适配新旧百度 HTML 结构）
- 新增 `export_contacts.py` 脚本，支持将 `outreach_contacts` 导出为 CSV，可按状态、行业、日期筛选

### 优化
- 存储空间统计修复：协议文件体积统计补入签署完成后生成的 final PDF 大小，此前仅计算源文件
- 个人资料页存储分类展示新增文件数量标签（如「6 个」），一眼看清各分类文件规模
- 侧边栏菜单顺序按业务流程重排：线索池 → 客户管理 → 项目管理 → 文件清单模板 → 协议签署 → 电子签 → 评价管理 → 在线咨询 FAQ
- 评价管理页顶部按钮由「返回工作台」改为「个人业务主页」，直接跳转 `/profile/business-page`

---

## v2.1.0 — 2026-04-22

### 新增
- **交付后好评与转介绍**：新增交付后评价与转介绍链路，支持在客户交付页发起服务评价、公开展示好评，并通过专属链接或手动填写方式转介绍朋友
- 新增评价管理页 `/reviews`，支持按评分筛选、排序查看，并按与项目列表一致的方式分页浏览
- 公开业务主页新增客户评价展示区，可在主页中展示已授权公开的服务评价
- 交付页新增 ZIP 打包下载能力，客户完成评价后可一键下载全部证照材料

### 优化
- 交付后评价页与相关卡片布局按当前工作台风格重构，统一品牌色、按钮层级与信息密度，移动端适配同步优化
- 新增的用户可见文案改为更通用的服务方表述，避免写死在单一职业场景
- 仪表盘快捷操作按钮与评价页分页、导航入口等交互细节统一到现有站内规范

---

## v2.0.0 — 2026-04-17

### 新增
- **多方协议签署**：律师可上传 PDF 协议、添加多位签署方，系统自动发送邮件邀请；签署方通过专属链接在线预览协议并手写签名，全员完成后自动生成带签名的结果 PDF
- 协议签署端（`/sign/<token>`）新增「签署进度」Tab，展示全员签署状态统计与实时同步进度
- 协议详情页（`/agreements/<id>`）对齐项目详情页布局：大号进度数字、分段进度条、2×3 数据格、签署方状态卡片
- 结果 PDF 唯一编号改用协议 `public_id` 前 8 位（格式 `AGMT-XXXXXXXX`）

---

## v1.17.0 — 2026-04-16

### 新增
- **导航气泡提醒**：主工作区新增基于线索池新线索数量的导航提醒，桌面端显示在线索池侧边栏图标角标，移动端显示在顶部菜单按钮与抽屉导航项中
- 新增轻量摘要接口 `GET /api/leads/summary`，供导航、角标等全局提醒场景复用，避免每次都拉取完整线索列表

### 优化
- 导航提醒样式按当前 SaaS 布局统一：沿用现有头部、侧边栏和移动抽屉结构，红色数字徽标同时兼顾 PC 与手机端触达效率

---

## v1.16.0 — 2026-04-14

### 新增
- **客户端门户**：新增独立客户门户 `/portal`，客户通过邮箱 OTP 验证码登录，无需注册账号
- 客户门户展示与该邮箱关联的所有项目，包含材料通过进度、状态标签、截止日期与逾期提醒
- 项目卡片展示发起人（服务商）信息：头像、姓名、职位，以及电话/邮箱联系方式，有已发布业务主页的服务商名称可直接跳转主页
- 项目详情页展示完整材料清单（状态、打回原因、最新上传文件）及证照交付信息（快递单号、备注、交付时间）
- 项目详情页提供材料上传链接与访问密码，客户可直接前往上传或重传材料
- OTP 验证码 10 分钟有效，同一邮箱 60 秒限流，最多 5 次尝试；仅已创建项目的邮箱可收到验证码
- 营销页 Footer「账户」栏新增「查看我的项目」入口，指向客户门户

### 修复
- 修复客户门户项目列表卡片中 `<a>` 标签嵌套导致的 React hydration 报错

---

## v1.15.0 — 2026-04-13

### 新增
- **材料清单向导**：新增公开页 `/material-wizard`，访客输入业务名称（如营业执照、工签、永居、公司变更）可查看对应的常见材料清单与格式建议，并直接选择已发布业务主页的服务商发送咨询留言
- 材料向导按分类（工商注册、移民留学等）分组展示模板，支持关键词筛选，卡片直接展示材料项数量
- 服务商列表按 Max / Pro / Free 优先顺序展示，支持分页浏览，提供姓名、职位、简介、专业标签等信息，一键选择后跳转留言步骤
- 留言表单支持姓名、公司、电话、微信、邮箱与需求描述，提交后自动将咨询内容发送至所选服务商并进入其线索池
- 页面配置 SEO 结构化数据（FAQPage JSON-LD）与 OpenGraph / Twitter Card，提升搜索引擎可见性

### 优化
- 步骤切换滚动定位改用 `scrollIntoView` + `requestAnimationFrame`，避免 providers 加载时浏览器 scroll anchoring 导致步骤3卡片头部不可见

---

## v1.14.0 — 2026-04-10

### 新增
- **个人业务主页在线咨询 FAQ**：新增独立 FAQ 管理页，支持通过列表方式维护自定义问答，并在仪表盘右侧增加快捷入口
- 个人业务主页新增悬浮“在线咨询”入口，访客可通过预设欢迎语与快捷问题发起咨询
- 在线咨询支持会话留资：访客留下手机号、微信或邮箱后自动进入线索池，并标记来源为智能客服

### 优化
- 在线咨询留资节奏调整：默认先对话，聊到第 3 轮后再引导留下联系方式，避免一开口就强收口
- 在线咨询浮球样式与位置优化：改为更明显的球状入口，并统一为站内浅色系交互风格
- 新增 favicon 资源，统一站点图标显示

---

## v1.13.0 — 2026-04-09

### 新增
- **后台文件安全工作台**：管理后台新增“文件安全”页，支持查看文件访问异常、查看正常文件列表，并统一进入文件详情抽屉
- 文件详情抽屉：管理员可查看文件类型、归属用户、上传时间、文件路径、累计访问次数、总流量、最近访问记录、Referer 与疑似外链标记
- 文件访问异常监控：首版支持单文件短时高频访问、单用户文件总带宽异常、短时高频外链访问识别，并支持手动触发扫描
- 后台文件处置：管理员可在异常队列或文件详情抽屉中直接下架文件，并保留处理状态流转

### 优化
- 客户端证照图片查看改为签名 URL，降低私有文件被直接复用的风险
- 文件安全页改为更符合管理员使用习惯的双 Tab 结构：`异常队列` / `正常队列`，两侧列表均支持分页
- 管理后台顶部补充版本号入口，直接链接 `CHANGELOG.md`，与站内版本展示保持一致

---

## v1.12.0 — 2026-04-07

### 优化
- **业务主页经营分析页重设计**：分析区改为更轻量的单列信息流，按「最近 7 天趋势 → 渠道来源 → 转化漏斗」依次展示，减少并排卡片带来的拥挤感，移动端与 PC 端阅读顺序保持一致
- 趋势图补充 7 天访问、7 天线索、峰值日期等关键摘要，每日柱形卡增加明确数量展示，避免仅靠小字或悬浮提示读取数据
- 渠道来源改成更符合 SaaS 仪表盘习惯的摘要 + 条形对比 + 明细结构，帮助用户更直观看到不同来源的访问规模、线索量和转化效率
- 转化漏斗由层叠卡片改为阶段柱状图，保留阶段数量与转化率，同时更便于快速比较各阶段高低差异
- 页面文案同步收口：统一改为明确的升级表达，如“升级 Pro”“升级 Max”“开通推广工具”；移除底部冗余的功能说明卡片
- 首页会员方案、FAQ 和工作台帮助面板同步补充业务主页分析能力说明，方便用户理解不同方案可查看的经营分析范围

---

## v1.11.0 — 2026-04-06

### 新增
- **线索池功能**：业务主页访客提交需求后，线索自动进入后台统一管理，可查看姓名、电话、邮箱、公司、需求原文及跟进时间线
- 线索详情支持快捷操作：可直接更新线索状态、添加跟进记录，并一键转为客户或项目，减少重复录入
- 线索转项目支持选择文件清单模板、截止日期和备注，创建时自动带入联系人信息，完整衔接“线索 → 项目”流程
- 帮助面板新增「线索池」分类，补充线索与客户区别、是否可直接创建项目、免费版是否支持等常见说明

### 优化
- 首页流程与能力介绍同步纳入线索池链路，统一按“线索承接 → 项目创建 → 材料审核 → 电子签收 → 证照交付”描述真实业务流程
- 业务主页留资表单调整为电话、邮箱必填，更符合后续联系和通知场景

---

## v1.10.0 — 2026-04-02

### 新增
- **个人业务主页**：每位用户可创建可对外公开的业务展示页，填写页面标题、展示姓名、职位、业务简介、专业领域标签、联系方式（电话/邮箱/微信/地址）及头像，发布后生成专属访问链接，客户无需登录即可查看
- 业务主页公开访问页 `/p/[slug]`：响应式设计，展示头像、姓名、职位、简介、专业领域标签及联系方式，电话/邮箱支持一键拨打/发邮件
- 业务主页编辑页 `/profile/page`：表单分「基本信息 / 联系方式 / 页面设置」三组，支持头像上传、专业领域标签增删（最多 6 个）、发布/取消发布开关、复制公开链接
- 自定义页面短链（slug）：Pro / Max 用户可设置形如 `/p/zhangsan` 的专属短链，实时校验唯一性；Free 用户使用系统默认 `/p/{uuid}`
- 后端新增 `lawyer_profiles` 表及完整 API：`GET/PUT/PATCH /api/profile/page`、头像上传/删除、slug 可用性检查、公开访问 `GET /api/p/<slug_or_uuid>`
- `plans.py` 新增 `custom_profile_slug` 配置项，Free 为 `false`，Pro / Max 为 `true`

---

## v1.9.0 — 2026-04-01

### 新增
- **证照交付功能**（Pro / Max 专属）：律师签收后可开启证照交付流程，上传证照图片（Pro 最多 10 张，Max 最多 20 张），填写快递单号与律师备注，客户端实时查看进度及图片
- 证照图片支持点击查看大图 / 一键下载，律师端使用 Blob URL 安全加载，客户端通过 token 认证直接访问
- 证照交付状态机：办理中 → 已办结 → 已交付，每次推进自动邮件通知客户
- 已交付后可继续「补充交付信息」，更新快递单号或备注，无需改变交付状态
- 输入框失焦自动保存，推进状态时一并提交备注/快递信息，无需单独点击「保存」
- 定价页 Pro / Max 特性列表新增证照交付说明

### 优化
- 确认操作（标记已办结 / 标记已交付 / 删除图片）改为自定义 Modal，替代浏览器原生 `confirm()` 弹窗，视觉更一致
- 证照交付卡片整体重设计：渐变标题栏、圆角输入框、图片缩略图加载 Spinner、操作区分割线布局，PC / 移动端均已适配

---

## v1.8.1 — 2026-03-31

### 新增
- 个人资料页：新增“已用存储空间”展示，按当前账号下所有上传文件汇总，方便用户快速查看自己已占用的存储容量

### 优化
- 仪表盘：近期项目列表改为 agenda 行程视图，按项目开始时间与截止时间展示，状态颜色区分进行中、已完成、已归档与已逾期，手机端与 PC 端均做了适配
- 仪表盘：0% 进度项目的进度轨道改为白色底，更容易与卡片背景区分，避免“未开始”状态不明显

---

## v1.8.0 — 2026-03-30

### 优化
- 邮件模板全面重设计：6 种系统邮件（注册验证码、密码重置、项目邀请、催收提醒、文件打回、材料完成）统一改为HTML 富文本格式，品牌头部（紫色 D 图标 + 多客特品牌文字）、白色内容卡片、CTA 按钮替代裸 URL，视觉风格与网站主色（brand-500/600 #6366f1 / #4f46e5）保持一致
- 邮件模板统一收口：注册验证码与密码重置邮件由各自独立 Aoksend 专用模板改为与项目通知邮件共用 `AOKSEND_TEMPLATE_NOTIFY`，所有邮件样式在代码层统一维护，不再依赖 Aoksend 后台多套模板
- 验证码邮件：大号字体 + 蓝紫色虚线框突出展示 6 位验证码，有效期提示清晰
- 打回通知邮件：红色左边框卡片高亮展示打回原因，引导客户快速定位问题
- 材料完成通知：直接附带项目详情页跳转链接，律师收到邮件可一键进入

---

## v1.7.0 — 2026-03-28

### 优化
- 管理后台移动端适配：手机端改为顶部导航栏 + 底部 Tab 切换，用户列表和转化记录改为卡片布局，统计大盘和系统信息 Grid 响应式适配

---

## v1.6.0 — 2026-03-28

### 修复
- 套餐状态实时同步：`AppLayout` 挂载时调用 `/auth/me` 刷新 localStorage 缓存，会员到期后下次进入页面立即反映最新状态，不再等待 JWT 自然过期（最多 24 小时）
- 侧边栏套餐徽章：`is_plan_expired=true` 时即使 `plan` 字段仍为 `pro`/`max`，徽章也正确显示为免费版样式，与后端权限行为一致
- JWT 过期自动登出：`/auth/me` 返回 401 时立即触发 `clearAuth()` 跳转登录页

---

## v1.5.0 — 2026-03-28

### 安全加固
- 套餐过期后全功能降级：新增 `effective_plan()` / `requires_paid()` 公共函数（`app/plans.py`），所有功能权限判断统一走此入口，过期套餐在催收提醒、PDF 报告、访问密码、项目配额、模板配额、文件大小限制、自动催收定时任务等所有场景均正确降回 Free 限额
- 消除重复的内联过期判断，各模块（`project_api`、`collection_api`、`template_api`、`tasks`）统一 import，修改套餐逻辑只需改一处

---

## v1.4.0 — 2026-03-28

### 新增
- 会员订阅时间管理：后端新增 `plan_start`、`plan_end` 字段，精确记录每个付费周期的开始与到期时间
- 管理后台用户管理：操作按钮改为「开通Pro / 开通Max / 续费+1月 / 升Max / 降Pro / 降级」，续费在到期日上累加 30 天，已过期则从今天重新计算
- 转化记录重新设计：新增操作类型徽章（续费 / 升降级 / 降级），表格展示真实到期时间快照及当前剩余天数，后端日志同步存储 `action` 与 `plan_end_after` 字段
- 个人资料页：新增会员时间块，展示开始时间、到期时间、剩余天数；套餐过期时显示红色警告 banner
- 升级页：已有付费套餐时显示当前到期日及续费说明；Pro → Max 升级显示按剩余天数计算的补差价金额（而非全价）

### 安全加固
- 文件上传新增 magic bytes 校验：读取文件头特征字节，验证文件内容与扩展名一致，防止将可执行文件或脚本改名为 `.pdf` / `.docx` 等格式绕过类型检查（覆盖 PDF、JPEG、PNG、GIF、OLE2 Office、ZIP-based Office 六类格式）
- 文件大小限制改为基于「有效套餐」：套餐过期后自动降回 Free 限额（20 MB），不再沿用已过期的 Pro/Max 额度

---

## v1.3.0 — 2026-03-27

### 新增
- 系统监控：管理后台新增「系统信息」页，展示存储目录、磁盘用量进度条（超 70% 变黄、超 90% 变红）、上传文件数/占用空间、数据库各实体统计（用户/项目/材料项/文件/客户/通知）、服务器环境及最近注册用户

### 优化
- 上传页（收集链接）：多客特图标背景由深蓝（brand-600）改为浅蓝（brand-100），视觉更轻盈
- 上传页：密码保护提示文案「请向发送此链接的律师获取访问密码」去除「律师」，改为通用表述

---

## v1.2.0 — 2026-03-27

### 新增
- 帮助面板：右下角 `?` 按钮，含 7 大分类 FAQ + 关键字搜索，覆盖全站核心操作
- 新建项目：模板选择改为可搜索下拉列表，系统内置模板按分类（法律合规、会计财务等）分组展示
- 新建项目：发送邀请邮件改为分步进度 UI，创建项目与发邮件解耦，每步独立显示状态
- 后端新增 `POST /api/projects/{id}/invite` 接口，邀请邮件可单独触发
- 首页 footer 版本号支持点击，链接到 CHANGELOG.md

### 权限管控
- 催收提醒限定 Pro / Max 方案，免费版显示锁定状态
- 访问密码限定 Pro / Max 方案，免费版显示升级入口
- 后端三个接口同步加方案校验（`/remind`、`/reset-password`、`/password` DELETE）
- 免费版特性列表移除「手动催收提醒」，与实际功能保持一致

### 优化
- 邀请 / 催收 / 打回邮件：若项目设有访问密码，自动附上上传链接与密码（高亮展示）
- 上传目录（`UPLOAD_FOLDER`）支持通过环境变量配置，`.env` / `.env.example` 同步补充说明

---

## v1.1.0 — 2026-03-27

### 新增
- 管理后台转化记录页新增统计大盘：月收入估算、Free/Pro/Max 会员数
- 后端新增 `GET /api/admin/stats` 接口

### 优化
- 移动端适配：/templates 和 /projects/[id] 页面消除横向滚动
- 管理后台侧边栏改为浅色系
- stop.sh / start.sh 兼容 Linux（lsof → ss/fuser 多方案回退，pkill 子进程）
- 侧边栏多客特 logo 支持点击返回首页

### 文案
- 去除所有"律所"专属表述，改为通用表达
- 登录页文案与首页保持一致
- 套餐 tagline 统一为「个人使用 / 小团队」「专业服务者 / 小团队」「高频使用 / 成长团队」

---

## v1.0.0 — 2026-03-01

- 初始版本上线
- 核心功能：文件清单、客户上传链接、在线审核、自动催收、电子签收
- 57 个内置模板，覆盖 10 个行业
- Free / Pro / Max 三档会员方案
