 gavindiazandClaude Code
|
64df54ad55
|
fix: 删书即删对话——清理已删除书籍遗留的孤儿对话
根因:Conversation 与 Book 无 ORM 级联关系,且 SQLite 外键未强制开启,
delete_book 只删书/章节/段落,书的对话变成孤儿残留(book_id 指向不存在的书),
前端确认文案「书、目录和对话都会被删除」与事实不符,AI 助手会把这些幽灵
对话当作阅读记录。
- books.py delete_book: 显式删除该书的全部对话(消息经 ORM cascade 一并删)
- database.py _migrate: 启动时清理孤儿对话及其消息(book_id 不在 books 表内;
assistant 全局对话 book_id 为空不受影响),幂等,本地/服务器下次启动即生效
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-25 17:46:24 +08:00 |
|
 gavindiazandClaude Code
|
f63c0c55c9
|
feat: Docker 化部署(nginx-proxy-manager 反代,单域名 /api 路由)
- docker-compose.yml: backend + frontend 两服务,挂 NPM 所在外部网络、不暴露宿主端口;
data/uploads 用 bind mount 持久化(deploy/ 下,gitignored)
- backend/Dockerfile: python:3.12-slim + 清华 PyPI 镜像(ARG 可覆盖)
- frontend/Dockerfile: 多阶段 node:22 + npm ci + next build(NEXT_PUBLIC_API_BASE 构建期
注入,npmmirror 默认)→ next start
- .env.example: 全量部署环境变量模板(compose 替换变量 + 后端密钥)
- deploy/README.md: 服务器部署手册(NPM 配置 / DNS / 数据迁移 / 运维 / 大陆网络)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-25 15:35:20 +08:00 |
|
 gavindiazandClaude Code
|
8f9957ad9b
|
chore: 压掉启动时的两类无害警告
- backend: AddModelRequest/UpdateModelRequest 关闭 pydantic protected_namespaces,
消除 model_id 字段名的启动 UserWarning
- frontend: 显式设置 turbopack.root(用 process.cwd(),Node 原生 TS 下 ESM 加载
使 __dirname 不可用),消除 package-lock.json 在 Git 仓库外被忽略的警告
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-25 13:57:06 +08:00 |
|
 gavindiazandClaude Code
|
bbf4cebd90
|
fix: 优雅停机时主动 dispose 连接池,消除 SQLite 后台连接被 GC 丢弃的 SAWarning
Ctrl+C 停服时 aiosqlite 后台线程上的连接若未归还池会被 GC 直接丢弃,
表现为 shutdown 时的 non-checked-in connection SAWarning。在 lifespan 关闭
阶段调用 engine.dispose() 主动清理(数据不受影响,纯停机噪音修复)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-25 03:28:49 +08:00 |
|
 gavindiazandClaude Code
|
2cda214170
|
feat: 全局「第二大脑」AI 助手(跨书跨对话 + bm_* 工具 + DSML 兜底)
- Conversation 加 kind(book/assistant)、book_id 可空;SQLite 老表迁移保留数据
- rag/engine.py: search_all_books 跨书混合检索;citations 带 book_title 出处
- app/assistant/service.py: 知识库概览 + 第二大脑 persona + 原生工具
(bm_list_conversations / bm_read_conversation / bm_search_books),并入 MCP agent 循环
- chat.py: create/list 支持 kind;send_message 委托助手管线
- llm/hub.py: 解析 DeepSeek DSML 文本工具调用(模型非确定性输出标准/DSML)
- mcp/agent.py: 工具轮中段追加强制文本收尾,防模型反复调工具不出答案
- 前端: 侧栏「AI 助手」入口 + 抽取共享 ChatPanel 复用书/助手两套对话 UI
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-25 03:21:22 +08:00 |
|
 gavindiazandClaude Code
|
fcdc3d4f93
|
feat: 站点访问密码登录(SITE_PASSWORD)+ 退出登录按钮
- 后端:新增 /api/auth/login 与 /api/auth/status;HMAC 签名令牌 30 天有效、
服务重启不失效;设置 SITE_PASSWORD 后中间件拦截除登录/健康检查/CORS 预检
外的所有 /api/*,未启用密码时行为不变(本地开发默认开放)
- 前端:AuthGate 登录层 + BookMate 风格全屏登录页(墨绿卡片、轨道环、书标金句);
令牌存 localStorage 随请求带 X-Access-Token 头,401 自动清令牌重新弹出登录页;
侧栏底部新增「退出登录」按钮(仅在启用密码时显示)
- 认证通过后才挂载主应用,避免未登录先发起数据请求
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-25 00:18:46 +08:00 |
|
 gavindiazandClaude Code
|
7f731abb17
|
feat: 前端后端地址改为 NEXT_PUBLIC_API_BASE 可配置,补全 .env.example
- 部署到云服务器后浏览器不能再连 localhost:8000,API_BASE 现可经
NEXT_PUBLIC_API_BASE 指定(未设置时保持本地默认值,行为不变)
- .env.example 补全数据库/监听端口/各 provider/向量与重排的完整变量
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-24 19:38:44 +08:00 |
|
 gavindiazandClaude Code
|
db3c720b78
|
fix: 导出 flowchart 前把标签中的 ASCII 引号替换为弯引号
老版 mermaid 的 flowchart 解析器不认 ["...\\"..."] 转义,标签里的英文
双引号会把字符串截断导致 Parse error(如 "产生\"关于数字\"的算术意义")。
现把标签内的 " / ' 交替替换为弯引号(“”/‘’),反斜杠转斜杠、# 转全角,
老版阅读器即可正常渲染且保留原语义。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-24 19:27:58 +08:00 |
|
 gavindiazandClaude Code
|
183d77681c
|
fix: 导出文档时把 mermaid mindmap 转成 flowchart LR,外部阅读器清晰可读
- 老版 mermaid 渲染 mindmap 是根居中放射状、粗彩线,外部阅读器里很难读
- 导出接口现把 ```mermaid mindmap 块转换为 flowchart LR 树状图,网页样式不受影响
- 支持 root(( )) 关键字、形状符号、::icon() 与行尾注释的清理
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-24 18:51:58 +08:00 |
|
 gavindiazandClaude Code
|
8cd390b3ed
|
feat: 接入 MCP 外部工具服务,AI 可调用外部工具获取书外信息
- 后端新增 MCP 客户端(Streamable HTTP / 老式 SSE)与流式 agent 工具循环
- 新增 /api/mcp/servers 管理接口与 mcp_servers 表
- 对话中 OpenAI 兼容模型可调用启用服务器的工具,SSE 推送 tool 事件
- 前端新增 MCP 服务管理弹窗与侧栏入口,流式回答展示工具调用状态
- 修复用户消息气泡缺少删除按钮,并级联删除其名下回答版本
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-24 04:29:34 +08:00 |
|
gavindiaz
|
c7b0cfb92b
|
feat: add BookMate AI reading workspace and full EPUB reader
|
2026-10-24 03:12:20 +08:00 |
|
gavindiaz
|
eaeb45fc85
|
Initial commit from Create Next App
|
2026-10-23 15:50:38 +08:00 |
|