huangjianwu
bb9a70eee2
fix(frontend): @tauri-apps/api 提升为直接依赖,修 vite build CI 失败
...
v2.2.0 加的 P1/P2 桌面端组件(StartupBanner / useBackendEvents)用了
'await import(\"@tauri-apps/api/event\")' 与 '@tauri-apps/api/core',但
@tauri-apps/api 只是 @tauri-apps/plugin-shell 的 transitive,没在
BillNote_frontend/package.json 直接声明。
本地开发能跑(pnpm 节点解析容忍 transitive),但 vite 6 的 production
rollup 静态分析时报:
Rollup failed to resolve import "@tauri-apps/api/event"
之前我只跑了 typecheck 没跑 build,所以这个问题先在 v2.2.0 / v2.2.1 / v2.2.2
的 CI 上才暴露出来。本地 DOCKER_BUILD=1 pnpm run build 已复现并修复验证。
修:BillNote_frontend/package.json 把 '@tauri-apps/api' 加为直接依赖
(^2.10.1,与 lockfile 中已存在的 transitive 版本对齐),lockfile 同步更新。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-09 14:52:56 +08:00
huangjianwu
7e5be46cda
fix(docker): pin pnpm 到 9.15.0,修复 v2.2.0 ghcr.io 镜像构建失败
...
v2.2.0 tag 触发的 ghcr.io 推送挂在 frontend-builder 第 5/7 步
'pnpm install --frozen-lockfile',错误:
code: 'ERR_UNKNOWN_BUILTIN_MODULE'
Node.js v20.20.2
根因:'corepack prepare pnpm@latest' 拉到 pnpm 11.0.9,pnpm 11+ 要求 Node 22+,
跟我们 node:20-alpine 不兼容。lockfile 本身是 lockfileVersion '9.0' 由 pnpm 9
生成,理应跟 pnpm 9 配。
修:Dockerfile.complete + BillNote_frontend/Dockerfile 都 pin 到 pnpm@9.15 .0;
不再用 @latest,避免上游再次升级悄悄破坏 CI。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-09 14:47:06 +08:00
Jianwu Huang
5b5bf802af
Merge pull request #363 from JefferyHcool/feat/desktop-onboarding
...
feat(desktop): 桌面端首启 4 步引导
2026-05-09 14:37:53 +08:00
Jianwu Huang
ecc2e56246
Merge pull request #362 from JefferyHcool/feat/desktop-backend-health
...
feat(desktop): Sidecar 健康度面板 + 重启后端能力
2026-05-09 14:36:50 +08:00
Jianwu Huang
d8470bacbc
Merge pull request #360 from JefferyHcool/feat/desktop-startup-diagnostics
...
feat(desktop): 启动期路径诊断 + 顶端横幅,主动暴露已知失败因素
2026-05-09 14:35:51 +08:00
huangjianwu
721bda5280
feat(transcriber): 默认 size 改 tiny + 切本地引擎前 confirm 模型下载
...
桌面端用户首次跑视频时挂在 fast-whisper 模型下载(默认 medium ~1.5GB),
两处改动:
1. backend/app/services/transcriber_config_manager.py:
默认 whisper_model_size 从 'medium' (~1.5GB) → 'tiny' (~75MB)。
新装用户没主动设置时不再被首次下载卡住;想要更高精度的用户去配置页主动切。
2. BillNote_frontend/src/pages/SettingPage/transcriber.tsx:
handleSave 在保存前判断:选了 fast-whisper / mlx-whisper 且当前 size 在
modelStatuses 里既未下载也不在下载中 → window.confirm 弹一个体积提示,
推荐改用 Groq / 必剪 / 快手 等在线引擎;用户取消则不保存。
不改业务逻辑;零回归风险(已有用户 transcriber.json 里写了什么就还是什么)。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-09 14:32:41 +08:00
huangjianwu
a928e0e38f
feat(desktop): 桌面端首启 4 步引导
...
桌面端用户安装后空白进 web 主页面,提示填模型但不知道从哪填、转写引擎从哪选、
为什么 fast-whisper 在下东西。新增首启 onboarding wizard,把四件事拉成一条线:
1. 后端连通性自检(启动后调 /api/get_all_providers,OK 才能进下一步)
2. LLM 供应商 + 模型:填 OpenAI 兼容 base_url + key + model_name,调
/add_provider 创建并 addModel 默认 model,附带 testConnection
3. 转写引擎:四选一,**默认推荐 Groq**(在线、免下载本地模型);
选 fast-whisper 时显式提示"将下载模型"
4. Cookie 同步说明:桌面端无 chrome.cookies API,引导手动配;并指向插件版
实现:
- 新页 src/pages/Onboarding/index.tsx,单文件 stateful wizard
- App.tsx 加 /onboarding 路由 + OnboardingGuard 路由守卫:
· 仅 Tauri 桌面端(__TAURI_INTERNALS__)拦截,纯 web 端透传,不打扰
· localStorage('bilinote-onboarded') 不为 '1' 时强制跳 /onboarding
- 完成第 4 步 markOnboarded() 写 localStorage 后 navigate('/')
回归风险:纯 web 用户无感知;旧桌面端用户的 localStorage 没这个 key,
首次升级到含此 PR 的版本时会跳一次 onboarding(建议在升级 release notes 里
说明,避免老用户疑惑)。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-09 14:30:05 +08:00
huangjianwu
1329390f98
feat(desktop): Sidecar 健康度面板 + 重启后端能力
...
P1 已经把 backend-warning / backend-terminated 横幅做出来了;P2 把
lib.rs 那条 stdout/stderr/terminated 信息流真正落到一个常驻 UI 上:
- 右下角浮动状态点(绿/黄/红),轮询 /api/sys_health 决定颜色
- 点开抽屉看最近 200 行日志(ring buffer),含「重启后端」「复制日志」按钮
Rust:
- src-tauri/src/lib.rs:把 sidecar 启动抽出 spawn_backend_sidecar(),
CommandChild 存进 SidecarHandle(Mutex<Option<CommandChild>>) 这个 state
- 新增 #[tauri::command] restart_backend_sidecar:kill 旧 child + 重新 spawn +
emit 'backend-restarted' 给前端
- 监听任务 stdout/stderr emit 时不再用 format!("'{}'", ...) 包引号,原文直传;
前端 hook 同时兼容旧形式(兜底剥引号)
前端:
- components/BackendHealth/useBackendEvents.ts:listen 四个事件 +
ring buffer (MAX 200 行) + invoke restart + clipboard 复制日志
- BackendHealthIndicator.tsx:右下角浮动状态点,5s 轮询 /api/sys_health;
连续 3 次失败或 backend-terminated 触发 → 红
- BackendLogPanel.tsx:右侧抽屉,深色 monospace 日志区 + 操作按钮
- 纯 web 环境(无 __TAURI_INTERNALS__)下静默不挂载
P3 / P4 还在路上。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-09 14:27:02 +08:00
huangjianwu
9a64a2da8e
feat(desktop): 启动期路径诊断 + 顶端横幅,主动暴露已知失败因素
...
桌面端历史痛点:PyInstaller sidecar 在含非 ASCII / 含空格 / 不可写的安装路径下
直接炸(README:36 仅文字警告"不要中文路径",无主动防御)。Sidecar 退出事件 lib.rs
已 emit 但前端没 listener 消化,用户看到的是空白主页。
- src-tauri/src/lib.rs:
· setup 中 env::current_exe() 之后做 InstallPathDiagnostics(is_ascii / 空格 /
父目录 write_probe),命中任一异常就 emit 'backend-warning' 给前端
· 用 std::thread::spawn + 1500ms sleep 等首屏 listener 挂上再 emit,避免事件丢失
· 新增 Tauri command get_install_path_diagnostics,前端可主动重查(用户卸载到
新目录后首次启动)
- BillNote_frontend/src/components/SystemDiagnostic/StartupBanner.tsx(新建):
· 监听 backend-warning(路径警告,可关闭)+ backend-terminated(致命,常驻)
· 纯 web 环境(无 __TAURI_INTERNALS__)下静默不挂载,对桌面端定向起效
· backend-error(stderr 噪音)暂不展示,留给后续 P2 日志面板
- App.tsx:StartupBanner 在 BackendInitDialog 之前就挂载,让"后端还在初始化时"
也能看见路径警告(正是该场景容易炸)
不改任何业务逻辑;纯桌面端 UX 加固。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-09 14:22:41 +08:00
huangjianwu
c4413c66a1
fix(docker): 修复 Tag push 触发的镜像构建失败
...
ghcr.io 镜像推送在 v2.1.1 tag 上失败,停在 frontend-builder 第 7/7 步
'pnpm run build':vite loadConfigFromBundledFile 1.5s 内挂掉,没具体行号——
典型现象是 vite.config.ts 顶部 import 的某个 plugin(@tailwindcss/vite)的
native binding 在容器里 require 失败。
三处修复:
1. Dockerfile.complete + BillNote_frontend/Dockerfile:node:18-alpine → node:20-alpine
· Tailwind v4 已不再支持 Node 18(package 现实需要 20+)
· Vite 6 也建议 Node 20+
2. Dockerfile.complete 的 frontend 阶段:复制 pnpm-lock.yaml + 改用 --frozen-lockfile
· 之前没传 lockfile,每次 pnpm install 重解析 semver,有可能拉到比本地更新的 native dep
3. BillNote_frontend/pnpm-lock.yaml 强制入库(git add -f)
· 之前根 .gitignore 有条诡异的 'BiliNote/pnpm-lock.yaml'(拼错的路径),
虽然没真匹配上这个文件,但 lockfile 历史上一直没被提交,导致 CI 与本地依赖图持续漂移
· lockfile 里 @tailwindcss/oxide 同时锁了 musl 与 gnu 变体,alpine 跑没问题
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-07 14:01:26 +08:00
huangjianwu
f583f3cc8c
chore(frontend): about 页移除 QQ 群联系方式,仅保留微信群
...
QQ 群已不再活跃维护,关联展示也容易让用户搜不到。保留微信群入口即可。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-07 13:50:23 +08:00
huangjianwu
2e7fe8d3a8
chore(frontend): 关于页二维码改为 import 本地资源,不再依赖 CDN
...
之前 about 页直接拉腾讯云 COS 上的 wechat.png,每次换码都要手动重新上传 CDN
+ 刷缓存。改成 import @/assets/wechat.png,由 Vite 打包,更新时只需替换文件。
doc/wechat.png 仍保留作为源 / 备份。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-07 13:49:25 +08:00
huangjianwu
108ad270bf
fix: 修复 AILogo 噪音、设置页滚动与供应商批量伪内置脏数据
...
- AILogo: `custom` 名称为合法兜底场景,不再以 console.error 上报;其余未匹配名称降级为 console.warn
- SettingPage/Model: 双栏加 `min-h-0 overflow-y-auto`,让供应商列表与右侧表单各自可滚动
- ProviderService.add_provider: API 创建一律落到 `type='custom'`,并对同名供应商抛 ValueError,避免再产生伪内置行
- CLAUDE.md: 补充 v2.0.0 子系统(RAG/Chat、可选 Nacos+RabbitMQ、i18n、cookie/transcriber 管理器)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-07 11:10:15 +08:00
Jianwu Huang
2cd43770eb
Merge pull request #318 from linwinfan/feat/zustand-indexeddb
2026-05-05 14:34:18 +08:00
liang09255
c9ab763f1b
fix(frontend): 修复供应商开关切换不能实时生效的问题
2026-05-02 21:51:33 +08:00
linwinfan
20fcf2c29c
feat(frontend): migrate Zustand persist storage to IndexedDB
...
- Add idb-keyval dependency for IndexedDB support
- Configure persist middleware to use IndexedDB
- Improves persistence reliability in browser environments
2026-04-07 15:51:53 +08:00
huangjianwu
499366da02
fix(docker): 优化 Vite 配置以支持 Docker 构建环境
...
- 修改 vite.config.ts 在 Docker 环境中使用当前目录加载 .env 文件
- 在 Dockerfile 中设置 DOCKER_BUILD 环境变量
- 移除不必要的 .env.example 复制步骤
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 18:54:16 +08:00
huangjianwu
8e2f74c0f5
fix(frontend): 修复 ESM 模式下 __dirname 未定义的问题
...
在 vite.config.ts 中添加 ESM 兼容的 __dirname 定义,修复 Docker 构建时的配置加载错误
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 18:46:53 +08:00
Jianwu Huang
0e10a3d906
Merge pull request #304 from JefferyHcool/master
...
修复打包错误
2026-03-23 18:13:24 +08:00
huangjianwu
6d5d1ad373
fix(ci): 修复 GitHub Actions 构建错误
...
移除 setup-node 中的 pnpm 缓存配置以修复 macOS 构建失败,修改 Dockerfile 不再依赖 pnpm-lock.yaml 以修复 Docker 构建失败
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-23 18:11:55 +08:00
Jianwu Huang
a40bb19743
Merge branch 'master' into feature/update-readme-v2
2026-03-23 17:56:07 +08:00
huangjianwu
6090982261
docs: 更新 README 至 v2.0.0,补充新功能说明和 Docker 部署方式
...
- 版本号升级为 2.0.0(README、tauri.conf.json、about 页面)
- 新增 v2.0.0 功能说明:RAG 问答、Function Calling、封面 Banner、面板折叠等
- Docker 部署改为推荐方式,支持 docker pull 预构建镜像
- 补充源码部署为方式二,修正前端访问端口为 3015
- 更新功能特性列表,补充快手、AI 问答等新功能
- TODO 标记 RAG 问答为已完成
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 17:52:30 +08:00
huangjianwu
f6a3438079
feat(build): 全面优化打包流程,Docker 镜像自动发布到 GHCR
...
Docker 优化:
- Dockerfile 层缓存(requirements/lockfile 先复制再安装)
- ARG 可配置镜像源,国际用户可覆盖为默认源
- 前端 Dockerfile 改用 corepack + frozen-lockfile
- 精简 .dockerignore,排除 .git 和 Tauri 构建产物
CI/CD 优化:
- docker-build 自动推送到 GHCR,支持 amd64/arm64 双架构
- 桌面端 CI 增加 pip/pnpm/cargo 缓存,升级 actions 版本
- Python 版本对齐为 3.11,增加 Linux 构建矩阵
- build.sh 加 -y 覆盖标志
文档更新:
- README Docker 部署简化为 docker pull + docker run
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 17:48:34 +08:00
huangjianwu
27758f95dd
feat(ui): 工作区和生成历史面板支持折叠/展开
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 16:09:57 +08:00
Jianwu Huang
a2ab457f75
Merge pull request #299 from JefferyHcool/feature/note-qa-chat-optimize
...
Feature/note qa chat optimize
2026-03-23 16:00:15 +08:00
huangjianwu
795615f0f7
fix(ui): 修复 Banner 封面图不显示
...
MarkdownViewer 的 baseURL 去掉了 /api 前缀,导致
image_proxy 请求路径错误。改为组件内部直接读取
VITE_API_BASE_URL,与 NoteHistory 保持一致。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:59:02 +08:00
huangjianwu
c46c971e64
fix(ui): Banner 封面通过后端代理加载,移除来源链接模块
...
- 封面图通过 /image_proxy 代理请求,解决 B 站等 CDN 跨域问题
- 渲染 markdown 时过滤掉开头的「来源链接」行,
该信息已由 VideoBanner 的「原视频」按钮替代
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:56:48 +08:00
huangjianwu
55cc3bcd63
feat(ui): 笔记顶部新增视频封面 Banner
...
- 视频封面做模糊暗色背景,上方叠加视频信息
- 显示视频标题、作者/UP主、平台
- 右侧「原视频」按钮跳转原始链接
- 无封面时降级为渐变背景
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:54:36 +08:00
huangjianwu
ef1dec1e47
feat(chat): AI 回复支持 Markdown 渲染
...
通过 Bubble role 的 contentRender 使用 ReactMarkdown
渲染 AI 回复内容,支持列表、加粗、代码块等格式。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:31:55 +08:00
huangjianwu
fea376d1cb
fix(chat): 修复 avatar 传对象导致 React 渲染报错
...
avatar 属性类型是 ReactNode,不是 props 对象,
改为直接传 JSX 元素作为头像。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:30:15 +08:00
huangjianwu
b18277a3a0
fix(chat): 修复消息气泡左右布局不生效
...
- Bubble.List 的角色配置属性名是 role(单数)而非 roles
- 用户消息:右侧蓝色填充气泡 + 蓝色头像
- AI 回复:左侧描边气泡 + 灰色头像
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:29:09 +08:00
huangjianwu
d8fbceaadf
refactor(chat): 全屏/半屏切换移入 ChatPanel 内部
...
- Header 恢复单个"AI 问答"按钮,点击默认打开半屏模式
- ChatPanel 头部新增全屏/半屏切换按钮(Maximize2/Minimize2 图标)
- 半屏:markdown 与问答并排各占一半
- 全屏:问答占满内容区,隐藏 markdown
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:23:55 +08:00
huangjianwu
dea393e713
feat(chat): 问答面板支持半屏和全屏两种模式
...
- 半屏模式:ChatPanel 与 markdown 各占一半并排显示
- 全屏模式:ChatPanel 占满整个内容区域,隐藏 markdown
- Header 新增两个按钮(问答 / 全屏问答),点击切换,再次点击关闭
- 当前激活的模式按钮高亮显示
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:20:07 +08:00
huangjianwu
ae2bfe4d0a
fix(chat): 修复 ChatPanel 不显示的布局问题
...
- ChatPanel 容器添加 h-full shrink-0 确保有高度且不被压缩
- ScrollArea 从 w-full 改为 flex-1 min-w-0,为 ChatPanel 让出空间
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 15:15:14 +08:00
huangjianwu
2f2eb646a4
fix(chat): 索引改为后台异步执行,前端轮询状态并展示进度提示
...
后端:
- /chat/index 改为 BackgroundTasks 异步执行,立即返回
- /chat/status 返回细粒度状态(idle/indexing/indexed/failed)
- 内存追踪索引进度,避免重复触发
前端:
- ChatPanel 每 2 秒轮询索引状态,索引完成后自动停止
- 索引中显示"正在索引笔记内容..."及首次下载模型提示
- 索引失败显示重试按钮
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 14:46:37 +08:00
huangjianwu
3cd4c749c1
fix(chat): 修复 ChatPanel 无限重渲染导致的 Maximum update depth exceeded
...
- useTaskStore 选择器内调用 getCurrentTask() 每次返回新对象引用,
改为分别选取 currentTaskId + tasks 后用 useMemo 派生
- chatHistory[taskId] || [] 在选择器内每次创建新空数组引用,
改为选择器返回原始值,外部用 ?? [] 兜底
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 14:40:47 +08:00
huangjianwu
efadbc267d
feat(chat): 基于 RAG 的笔记内容 AI 问答功能
...
实现类似 Google NotebookLM 的效果:笔记生成后自动向量化,
用户可针对笔记内容进行 LLM 问答。
### 后端
- 新增 VectorStoreManager(ChromaDB),按标题/转录分块建立向量索引
- 新增 chat_service.py RAG 问答:检索相关片段 → 构建 prompt → 调用 LLM
- 新增 /chat/index, /chat/ask, /chat/status API 端点
- 笔记生成完成后自动建立向量索引
### 前端
- 使用 @ant-design/x Bubble.List + Sender 组件构建聊天面板
- 新增 chatStore(Zustand + persist)持久化聊天记录
- MarkdownViewer 右侧嵌入 ChatPanel,通过"AI 问答"按钮切换
- 首次打开自动检查/触发索引,支持重新索引
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 14:38:39 +08:00
huangjianwu
c105342ded
fix: 性能优化、前端转写器配置、任务进度丢失及 MLX Whisper 回退问题修复
...
### 性能优化
- 后端任务执行从串行锁改为 ThreadPoolExecutor 并发执行(默认3线程)
- 添加 GZipMiddleware 响应压缩 + Nginx gzip 配置
- 数据库连接池参数优化(pool_size=10, max_overflow=20)
- 视频帧提取并行化(ThreadPoolExecutor)
- LLM 重试配置缓存到实例,避免每次请求读 env var
- 前端路由级代码拆分(React.lazy + Suspense)
- Vite manualChunks 拆分 markdown/markmap/vendor
- MarkdownViewer 用 React.memo + useMemo 减少不必要渲染
- NoteHistory Fuse.js 实例 useMemo 缓存
- useTaskPolling 无待处理任务时跳过轮询
- 移除 antd 依赖(NoteForm Alert、modelForm Tag),改用 shadcn/ui
### 前端转写器配置(新功能)
- 新增 TranscriberConfigManager(JSON 文件存储,替代环境变量)
- 新增 GET/POST /transcriber_config API 端点
- 新增 GET /transcriber_models_status 模型下载状态查询
- 新增 POST /transcriber_download 后台模型下载触发
- 前端转写器设置页面:引擎选择、模型大小选择、模型下载管理
- deploy_status 端点同步从配置文件读取
### Bug 修复
- 修复任务进行中切换页面后进度丢失:Home.tsx status 派生逻辑补全中间状态
- 修复 MLX Whisper 静默回退 fast-whisper:移除环境变量门控,macOS 下自动尝试导入
- MLX Whisper 不可用时抛出 RuntimeError 而非静默回退
- 前端展示 MLX Whisper 可用性状态,不可用时禁用保存
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-23 14:09:34 +08:00
Jianwu Huang
15d851f0d0
Merge branch 'master' into master
2026-03-20 16:50:43 +08:00
Jianwu Huang
8172e64510
Merge pull request #275 from sibuchen/feature/deployment-monitor-clean
...
feat: 新增部署监控页面 (Deployment Monitor)
2026-03-20 16:49:46 +08:00
wanderer99176
7fb4fcba77
fix: update bilibili timestamp link format to - [MM:SS](URL#t=MM:SS)
2026-02-25 11:57:16 +08:00
CyanAutumn
d9a7b89e7d
🐞 fix: 增加错误之后对已解析段落的缓存功能,再次重试时不再重头开始
...
解析长视频时,当附件大小过大时不再调用后进行报错,而是将附件进行分批次发送
在每篇笔记开头默认增加地址来源链接,对模糊处可溯源
2026-02-12 18:28:11 +08:00
sibuchen
8cd8c6f7b4
feat: add deployment monitor page
...
- Add /deploy_status API endpoint for system status check
- Create Monitor.tsx component with real-time status display
- Support CUDA, FFmpeg, Whisper model status monitoring
- Auto-refresh every 30 seconds with manual refresh option
2026-02-06 16:15:11 +08:00
sunnyclubcn
85b24dee40
feat: Add subtitle priority fetching and enhance mindmap export
...
## Subtitle Priority (Backend)
- Add download_subtitles() method to base downloader
- Implement Bilibili subtitle fetching with cookies support
- Implement YouTube subtitle fetching
- Support SRT and JSON3 format parsing
- Prioritize platform subtitles over Whisper transcription
## Mindmap Export Enhancements (Frontend)
- Add SVG vector export with proper viewBox handling
- Add XMind format export with Chinese character encoding fix
- Fix PNG/SVG export to capture full content by calling fit() before export
- Add JSZip dependency for XMind export
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-24 17:12:14 +08:00
Jianwu Huang
10311c1438
Merge pull request #192 from HansYeoh/export-mind-map
...
Add an export mind map button to support exporting HTML and PNG.
2025-10-18 10:00:19 +08:00
Jianwu Huang
3a0f86e74e
Merge pull request #193 from HansYeoh/allow-all-domains
...
Modify to allow access from all domains
2025-10-18 09:59:58 +08:00
userName
9ba895fa8d
Fixed the problem of abnormal display of front-end page pictures in docker deployment
2025-09-06 16:10:42 +08:00
Yang Han
6d077a4ed3
Update vite.config.ts
...
Modify to allow access from all domains
2025-07-17 01:29:59 +08:00
Yang Han
b1b0e87d85
Update MarkmapComponent.tsx
...
Add an export mind map button to support exporting HTML and PNG.
2025-07-17 01:27:33 +08:00
Yang Han
7d325517b3
Update MarkdownViewer.tsx
...
Add an export mind map button to support exporting HTML and PNG.
2025-07-17 01:27:09 +08:00