# 长文 Markdown 与正文图片

长文使用现有写作弹窗，支持 Markdown、粘贴和拖放本地图片。Enter 按正文结构换行，发布通过原发布按钮完成。手机端支持图文阅读，本次不提供图文编辑器。

## 上线与回滚

1. 先发布 Record 和 Chat 合同：Record 支持 `display_kind=1` 的 Markdown 图片长文以及文件能力接口；Chat 支持图文转发、复制链接快照。
2. 发布当前手机客户端的 Markdown 图片阅读版本。
3. 确认插件配置 `markdownLongArticlesEnabled` 为 `true`（当前默认值）。需要延后开放写入时显式设为 `false`，仍保留已有图文的读取能力及 Markdown 草稿。

回滚时关闭上述插件写入开关，保留服务端和客户端图文读取。服务端会拒绝对图文长文省略 Markdown 内容快照的旧式更新。

## 文件能力与限制

长文图片规则由插件固定：单图最大 50 MiB，数量不设上限，支持 JPG、PNG、GIF、WebP、AVIF、BMP。编辑器插入、Host 暂存和发布前重校验共用同一组常量；普通快记继续使用原有附件规则。

长文单图有效上限为服务端、插件本地配置和 50 MiB 的最小值，恰好等于上限可插入。能力查询失败拒绝插图，重试后重新查询。每次粘贴/拖放先检查大小及格式，混合批次保留合规文件顺序，集中提示拒绝项及精确字节数。

长文不设置图片数量或图片总大小门槛。专用 Host 暂存入口不受普通附件缓存数量/总字节淘汰规则影响；正式上传最多并发 3 张。普通快记的 9 张附件、20 项富内容限制不变。正文最终 Markdown 源码仍受 40000 字限制，标题最多 100 字。

支持 JPG、PNG、GIF、WebP、AVIF、BMP。外链图片及 HTML 按字面文本处理。

## 数据与恢复

- 正文为 Markdown，`content_payload.text_format=markdown`。
- 图片位置为 `![说明](arkme-asset:<file_asset_uid>)`，与当前 `media_refs` 匹配。无图模板/载荷为 1/1，有图为 2/2，均 `display_kind=1`。
- 编辑器文档仅用于本地编辑与草稿。临时文件使用持久 `arkme-local:<fileRef>`，发布时替换为资产引用，正文不保存本机路径、blob 或签名 URL。
- 保存草稿包含文档、图片引用、提交标识及重编辑原 `baseVersion`。恢复旧版本草稿不会静默使用最新版本覆盖其他端修改。
- 上传失败保留正文并定位图片。重试复用成功资产和提交标识；未知结果通过快照与精确聊天关系核对，避免重复创建。
- 删除正文图片不会直接删除云资产。账号切换终止本地图片异步准备。
- 公共复制链接使用快照内 `media-N` 引用及受控媒体读取，不暴露原始资产标识。阅读端仅渲染当前正文绑定图片，不在文末重复展示。

## 验证边界

已覆盖 10/21/100 张图片、大小边界、混合拒绝、撤销恢复、版本冲突、稳定 ID 重试、服务端更小大小限制和转发阅读等自动化测试。本地浏览器夹具验证了真实编辑器的排版、图片插入、批量插入及即时超限提示。

部署后的个人/主题/私聊/群聊端到端发文、桌面原生剪贴板/系统拖放、手机实机阅读尚需联调验收。本次没有发布服务端、安装手机包、提交或推送代码。
