cat-shark
|
4bda9d6ba2
|
docs: 保存部署流水线问题排查进度
|
2026-07-19 23:07:49 +08:00 |
|
cat-shark
|
0a82bac723
|
feat(ci): 添加 imagePullSecret 自动创建步骤
|
2026-07-19 22:45:21 +08:00 |
|
cat-shark
|
1efc7581e6
|
feat(ci): 添加部署失败时的调试输出
|
2026-07-19 22:16:40 +08:00 |
|
cat-shark
|
29b879b274
|
feat(ci): 使用时间戳标签确保每次部署都触发更新
|
2026-07-19 21:56:52 +08:00 |
|
cat-shark
|
ec05269806
|
fix(ci): 移除手动安装 docker.io
|
2026-07-19 20:56:41 +08:00 |
|
cat-shark
|
ff8d4fefe2
|
fix(ci): 使用绝对路径调用 apt-get (host 模式)
|
2026-07-19 20:50:26 +08:00 |
|
cat-shark
|
835ebafc21
|
fix(ci): 使用 apt-get 替代 apk (Ubuntu runner)
|
2026-07-19 20:43:48 +08:00 |
|
cat-shark
|
02cccbd94b
|
fix: add build:development script alias for CI
|
2026-07-19 19:59:07 +08:00 |
|
cat-shark
|
bc5880ec31
|
fix: add explicit type annotation to child variable
|
2026-07-19 19:55:58 +08:00 |
|
cat-shark
|
38ab924b91
|
fix: remove unused ReviewMindMap import
|
2026-07-19 19:55:40 +08:00 |
|
cat-shark
|
021cb81125
|
fix: Alpine compatibility - apk, docker login, /tmp/kubeconfig
|
2026-07-19 19:27:50 +08:00 |
|
cat-shark
|
ec157b06dc
|
fix(ci): 修复部署流水线配置
- 使用 Git commit hash 作为镜像标签
- 增加健康检查超时到 15 秒
- 添加镜像清理阶段(保留 7 天)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-19 19:11:10 +08:00 |
|
cat-shark
|
bc707179ce
|
fix: add docker.io install for step container (no docker CLI in runner image)
|
2026-07-19 19:02:23 +08:00 |
|
cat-shark
|
e1faacf7a7
|
ci: replace actions/checkout with git clone (no Node.js in runner)
|
2026-07-19 18:56:02 +08:00 |
|
cat-shark
|
2a24c16244
|
ci: add kubectl setup step with secret
|
2026-07-19 18:50:40 +08:00 |
|
cat-shark
|
9c49e21575
|
ci: use unique image tags (git sha)
|
2026-07-19 18:49:39 +08:00 |
|
cat-shark
|
f712fa9e85
|
ci: use unique image tags (git sha)
|
2026-07-19 18:49:27 +08:00 |
|
cat-shark
|
88747cbd48
|
Switch to manual trigger (workflow_dispatch)
|
2026-07-19 18:14:07 +08:00 |
|
cat-shark
|
131e25c154
|
Add CI/CD pipeline
lpt-fe Build & Deploy / build-and-deploy (push) Failing after 1m4s
|
2026-07-19 18:07:52 +08:00 |
|
developer
|
e44301e1d5
|
feat: update StartTask component and add documentation
|
2026-07-19 16:58:04 +08:00 |
|
developer
|
c08c247271
|
docs: 添加 CLAUDE.md 项目文档
|
2026-07-12 13:50:25 +08:00 |
|
developer
|
2315c0d08f
|
feat: TaskForm 应用场景表单弹窗化
- 应用场景表单从内联改为 el-dialog 弹窗
- 新增「添加应用场景」按钮,编辑也走弹窗
- 表单 label-position=top,布局更清晰
- 移除旧的 application-form 行内布局样式
- 新增 application-header 弹性布局
- 弹窗在保存/取消后自动关闭
|
2026-07-12 13:50:23 +08:00 |
|
developer
|
032317da7b
|
feat: TaskForm 学习材料 Markdown 预览
- materialURL 重命名为 materialUrl
- 新增预览/编辑切换按钮,实时 Markdown 渲染预览
- 保存前自动将裸 URL 转换为 [标题](url) 格式
- 新增 convertMaterialUrls 函数批量抓取链接标题
- 预览区样式与页面风格统一(绿色链接 + 箭头图标)
- textarea 行数从 3 增至 6,placeholder 更新为 Markdown 示例
|
2026-07-12 13:49:43 +08:00 |
|
developer
|
9c3c1f0d26
|
feat: TaskForm 应用场景链接标题抓取
- 导入 getUrlTitle 替代直连 lpt-ai
- 新增 appUrlTitles 缓存映射
- loadApplications 中并行抓取应用场景 URL 标题
- 模板中应用场景链接显示标题而非裸 URL
|
2026-07-12 13:49:11 +08:00 |
|
developer
|
6accec1b2a
|
feat: StartTask 页面学习材料展示与编辑
- 新增学习材料卡片区域,支持 Markdown 渲染展示
- 支持弹窗编辑材料内容,保存到后端 task.materialUrl
- taskInfo 新增 taskId 和 materialUrl 字段
- materialHtml computed 自动将链接渲染为可点击标签
- 卡片样式与页面风格统一(绿色主题)
|
2026-07-12 13:49:00 +08:00 |
|
developer
|
73d0572dfc
|
feat: Study 页面任务列表分页功能
- 新增 currentPage/totalTasks/pageSize 响应式状态
- fetchTasks 支持 page 参数,请求指定页码
- 新增 handlePageChange 切换页码时重置选中状态
- 模板侧边栏底部添加 el-pagination 分页组件
- 分页组件仅当总数超过单页容量时显示
|
2026-07-12 13:48:44 +08:00 |
|
developer
|
a81f83f27c
|
feat: Study 页面学习材料 Markdown 渲染
- 接口 materialURL/materialUrl,移除 lastLearningStatus
- 新增 Markdown 渲染函数:支持 [text](url) 和裸链接
- 学习材料区从 URL 列表改为 HTML 渲染展示
- 任务描述从只读 textarea 改为纯文本段落
- 优化 detail-block 分隔线、label 样式
- material-content 链接样式(绿色虚线+箭头图标)
- 微调统计标签/数值字号
|
2026-07-12 13:48:28 +08:00 |
|
developer
|
39bf6b7426
|
feat: Study 页面应用场景链接标题抓取
- 替换 fetchTitles 导入为 getUrlTitle
- 新增 appUrlTitles 响应式映射缓存
- loadTaskApplications 中并行抓取应用场景 URL 标题
- 模板中应用场景链接显示抓取到的标题
- 移除旧的 loadUrlTitles 调用逻辑
|
2026-07-12 13:47:22 +08:00 |
|
developer
|
a67d092805
|
feat: 回忆导图根节点自动聚焦指定路径
- loadData 中根据 focusPath 自动查找标准导图节点设为根
- 新增 findNodeByPath 辅助函数支持路径定位
- 有 focusPath 时节点始终可点选
|
2026-07-12 13:44:18 +08:00 |
|
developer
|
52b59019d0
|
fix: 兼容业务层 401 响应码
- 除 HTTP 状态码 401 外,同时处理业务层 code=401 的响应
- 两种 401 均清除登录态并跳转登录页
|
2026-07-12 13:44:15 +08:00 |
|
developer
|
59dea6f84c
|
feat: URL 标题抓取改为通过后端代理
- 从直连 lpt-ai 的 /fetch-title 改为调用后端 /utils/fetch-title
- 使用 Map 缓存 + pending 去重,避免重复请求
- 导出 getUrlTitle 单条获取函数,替代 fetchTitle/fetchTitles
|
2026-07-12 13:44:12 +08:00 |
|
cat-win
|
e65b800e01
|
chore: 移除上传导图 + 优化复习引导提示
- 删除 ReviewMindMap 接口及 upload/get/upsert API
- 删除 ReviewDetail 上传 UI 和思维导图预览
- 回忆复习按钮移至内容元信息区
- 引导提示改为渐进式:折叠时引导展开,展开后引导点击节点
- 提示语用告知语气,无表情符号
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-08 23:56:03 +08:00 |
|
cat-win
|
1ea15db504
|
fix: 修复节点点击无响应 + 支持对比后返回完整导图重新选择复习范围
- MindMapViewer: mind-elixir v5 的 selectNode(el) 不传第二参数导致 selectNewNode 永不触发,改为 monkey-patch selectNode 捕获节点点击
- MindMapViewer: 根节点加入 nodePathMap,子节点路径补全根标题前缀
- ReviewRecall: 新增 resetComparison(),对比完成后可点击「返回完整导图」清空结果,重新选择节点开始新一轮复习
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-08 22:43:13 +08:00 |
|
cat-shark
|
e66bdb79dc
|
docs: 复习流程设计文档(DESIGN_REVIEW.md)
完整描述复习功能的核心概念、流程设计、三个入口、
API 清单、组件结构、数据流图和文件索引。
|
2026-07-07 23:10:44 +08:00 |
|
cat-shark
|
ebbbeb4c85
|
fix(导图): Array.map 传递多参数导致 ancestors 默认值失效
.map(toElixirNode) 传递 (item, index, array) 三个参数,
index 作为数字覆盖 ancestors 默认值 [],导致 [...ancestors] 报错。
改为箭头函数只传第一个参数。
|
2026-07-05 18:22:36 +08:00 |
|
cat-shark
|
84fe452e80
|
feat(复习): 节点选择交互 + 移除 session 维度
- MindMapViewer 新增 selectable 模式,点击节点 emit node-select 事件
- ReviewRecall.vue 移除会话选择器,改为节点选择交互
- 支持 URL ?focusPath= 参数自动预设复习起点
- 节点选择弹窗确认后回忆导图根节点=选中节点标题
- ReviewDetail 和 Welcome 中调用 findNode API 匹配节点后跳转
- API: recallCompare 使用 focusPath 替代 sessionNum
- API: 新增 findNode 端点
|
2026-07-05 18:10:42 +08:00 |
|
cat-shark
|
5a5a294f06
|
feat(导图): 防抖/增量生成/移除冗余对比面板
- 重新生成按钮增加 :loading 防重复点击
- 生成进度提示(AI 正在生成中,已等待 X 秒)
- 用户编辑后弹窗选择「全量重新生成」或「增量更新」
- 移除独立的对比结果面板,着色结果直接展示在标准导图中
|
2026-07-05 15:18:02 +08:00 |
|
cat-shark
|
e5adb4095b
|
feat(复习): 支持会话维度复习 + 标准导图按会话过滤
- MindMapNode 新增 sessionNum 字段,追踪节点来源会话
- BuiltinMindMapGenerator 生成节点时填充 sessionNum
- MindMapTreeTool.filterBySession() 按会话过滤标准导图
- recallCompare 接受 sessionNum 参数,筛选后对比
- 新增 review_recall_records.session_num 字段(Flyway V20260705_1)
- 新增 GET /study-sessions/tasks/{taskNum}/sessions 端点
- 前端 ReviewRecall.vue 增加复习范围选择器(全部/指定会话)
- 历史报告条目展示学习预期目标
|
2026-07-05 14:39:01 +08:00 |
|
cat-shark
|
62e12686e3
|
feat(markdown): 只读内容支持 Markdown 渲染
- 新增 MarkdownRenderer.vue 组件,基于 marked 解析 GFM
- 学习残片/报告历史列表:纯文本 {{ }} 替换为 MarkdownRenderer
- ReviewDetail.vue content-body:p 标签逐行渲染替换为 MarkdownRenderer
- 结束会话总结框:增加「编辑/预览」切换,预览模式实时渲染 markdown
- 学习预期展示也改为 MarkdownRenderer
|
2026-07-05 12:24:26 +08:00 |
|
cat-shark
|
c41aa09b4a
|
fix(历史记录): 展开历史记录面板时未自动加载数据
展开 showHistory 后没有触发 loadHistoryFragments/loadHistoryReports,
需要用户输入搜索或切换 tab 才能看到数据。增加 watch(showHistory) 在展开时
立即加载当前 tab 的分页数据。
|
2026-07-05 11:55:08 +08:00 |
|
cat-shark
|
ea9b7ec569
|
feat(会话):跨页面自动恢复 + 阻止多任务同时进行
后端:
- StudySessionsServiceImpl.getActiveSession(excludeTaskNum):
查询 ONGOING/PAUSED 状态的活跃会话,可排除指定任务
- Controller 新增 GET /study-sessions/active?excludeTaskNum=
前端:
- router beforeEach 守卫:读取 localStorage 中 activeSession,
非 start-task 页面时自动重定向恢复
- Study.vue 开始任务按钮:调用 getActiveSession() 检测是否
有其他任务正在进行,提示用户前往继续
- StartTask.vue loadTaskSession 成功后将活跃会话写入
localStorage(taskNum/sessionNum/taskName)
- endSession 成功时清除 localStorage 中的 activeSession
- 路由参数 ?resume=true 时页面顶部显示恢复提示已恢复上次
|
2026-07-05 11:15:22 +08:00 |
|
cat-shark
|
85bee1d311
|
fix(样式):补充历史学习记录面板样式 + 修复缺失的 </style> 标签
- 新增 history-card/history-header/history-toggle/history-search/history-tabs/
history-list/history-item/session-tag/history-content 等样式,
与现有 fragments-card/fragment-item 等样式风格一致
- 之前 Edit 操作误删了文件末尾的 </style>,导致 Vue SFC 编译错误
|
2026-07-05 10:55:23 +08:00 |
|
cat-shark
|
88a3521f27
|
feat(会话):历史学习记录折叠面板(残片/报告分页+搜索)
StartTask.vue 新增「📚 历史学习记录」折叠区域:
- 默认折叠,点击标题展开
- 支持残片/报告两个 tab 切换
- 搜索框带 300ms 防抖,对内容 LIKE 搜索
- 分页每页 10 条
- 每条记录前标注所属 sessionNum,与当前会话内容明确区分
- 展示 v-loading 和 el-empty 两种状态
后端新增两个分页接口(上一 commit):
- GET /study-sessions/tasks/{taskNum}/fragments
- GET /study-sessions/tasks/{taskNum}/reports
|
2026-07-05 10:39:56 +08:00 |
|
cat-shark
|
b7387e02c4
|
fix(番茄钟):进度环与倒计时方向一致
commit 9c2c1b7 错误地将 progress 改为 (total-current)/total,
导致数字递减但进度环递增(从空到满)。实际 runCountdown
中 timerMinutes/timerSeconds 存储的是剩余时间,应直接用
remaining/total 使环从 100%→0% 递减。
|
2026-07-05 10:12:52 +08:00 |
|
cat-shark
|
5986b3996b
|
feat(任务列表):显示任务优先级分数
每个任务项左侧增加绿色圆形 priority 徽标,直观展示计算后的优先级分数高低。
列表项行内布局增加弹性布局适配徽标 + 标题并排显示。
|
2026-07-04 23:58:53 +08:00 |
|
cat-shark
|
a63942d105
|
feat(学习材料):多 URL 支持 + 网页标题自动抓取
TaskForm.vue:
- 学习材料输入从单行改为 textarea,每行一个链接
Study.vue:
- 改为迭代多 URL 展示,每行显示网页标题(通过 lpt-ai
/fetch-title 获取)或回退到 URL 本身
- 选中不同任务时自动刷新标题
新增 src/utils/fetchTitle.ts:
- fetchTitle(url) / fetchTitles(urls) 工具函数
- 内存缓存避免重复请求
- 失败时回退到 URL,不阻塞页面
后端:
- V20260704_1 迁移:material_url varchar(255) → TEXT
|
2026-07-04 22:37:01 +08:00 |
|
cat-shark
|
5f7a5a55a4
|
fix(回忆复习):标准导图面板展示标注树
对比完成后,标准导图面板之前一直使用原始 standardTree,
MATCHED/MISSED 标注只出现在独立的「对比结果」区域。
用户期望在标准导图中也能直观看到哪些节点命中/遗漏。
修复:有 compareTree 时标准导图改用标注树并开启 colorByCompare,
无对比结果时回退到原始 standardTree
|
2026-07-04 17:49:27 +08:00 |
|
cat-shark
|
f0a6b16185
|
fix(e2e):删除任务测试增加确认弹窗处理
|
2026-07-04 17:40:29 +08:00 |
|
cat-shark
|
9c2c1b7614
|
fix(前端):进度环方向 + 按钮颜色 + 删除确认 + 移除 console.log
- StartTask.vue:progress 计算改为 (total-current)/total*100,进度环从
满到空递减(正确方向)
- ReviewDetail/ReviewRecall/MindMapViewer:type="primary" 全部改为
type="success",统一绿白主题
- Study.vue:删除任务增加 ElMessageBox.confirm 确认
- request.ts:移除全部 console.log
|
2026-07-04 17:38:00 +08:00 |
|
cat-shark
|
89d186c82e
|
fix(frontend):extraNodes 兼容字符串和对象格式
AI 返回的 extraNodes 可能是字符串数组 [知识点D1] 也可能是对象
数组 [{title: 知识点D1}],前端 computed 统一转为 {title} 格式
|
2026-07-04 16:52:09 +08:00 |
|