# Changelog

## 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 三档会员方案
