LoveLosita
|
e945578fbf
|
Version: 0.9.59.dev.260430
后端:
1. 主动调度预览确认主链路落地——新增主动调度数据模型、DAO 与事件契约;接入 dry-run pipeline 与任务触发的 job upsert/cancel;新增 preview 查询与 confirm API,支持 apply_id 幂等确认并同步写入 task_pool 日程
2. 同步更新主动调度实施文档的阶段状态与验收记录
前端:
3. AssistantPanel 脚本层继续解耦——私有类型迁移到独立类型文件,并抽离会话、工具轨迹、思考摘要、任务表单等纯函数辅助逻辑;保持助手面板模板与样式不变,降低表现层回归风险
|
2026-04-30 12:05:15 +08:00 |
|
Losita
|
668af5f6c0
|
Version: 0.9.31.dev.260419
后端:
1. 日程暂存接口——前端拖拽调整后保存到 Redis 快照
- api/agent.go:新增 SaveScheduleState handler,解析绝对时间格式请求体,3 秒超时保护
- routers/routers.go:注册 POST /schedule-state
- model/agent.go:新增 SaveScheduleStatePlacedItem / SaveScheduleStateRequest 结构体
- respond/respond.go:新增 5 个排程状态错误码(40058~40062)
- 新增 service/agentsvc/agent_schedule_state.go:Load 快照 → ApplyPlacedItems → Save 回 Redis,校验归属
- 新增 newAgent/conv/schedule_state_apply.go:ApplyPlacedItems 绝对坐标→相对 day_index 转换,去重/坐标/嵌入关系校验
2. SchedulePersistor 持久化层全面下线
- 删除 newAgent/conv/schedule_persist.go(280 行,DiffScheduleState → applyChange → 事务写库整条链路)
- model/state_store.go:移除 SchedulePersistor 接口
- model/graph_run_state.go / node/execute.go / node/agent_nodes.go / service/agent.go / service/agent_newagent.go /
cmd/start.go:移除 SchedulePersistor 字段、参数、注入六处
3. schedule_completed 事件推送——deliver 节点排程完毕信号
- model/common_state.go:新增 HasScheduleChanges 标记,ResetForNextRun 清理
- node/execute.go / node/rough_build.go:写工具和粗排成功后置 HasScheduleChanges=true
- node/deliver.go:IsCompleted && HasScheduleChanges 时调用 EmitScheduleCompleted
- stream/emitter.go:新增 EmitScheduleCompleted 方法
- stream/openai.go:新增 StreamExtraKindScheduleCompleted + NewScheduleCompletedExtra
4. 预览接口补全 task_class_id
- model/agent.go:GetSchedulePlanPreviewResponse 新增 TaskClassIDs
- model/schedule.go:HybridScheduleEntry 新增 TaskClassID
- conv/schedule_preview.go / service/agent_schedule_preview.go / service/schedule.go:三处透传填充
前端:
5. 排程完毕卡片 + 精排弹窗集成
- 新增 api/schedule_agent.ts:getSchedulePreview / saveScheduleState / applyBatchIntoSchedule
- types/dashboard.ts:新增 HybridScheduleEntry / SchedulePreviewData / PlacedItem 类型
- components/dashboard/AssistantPanel.vue:监听 schedule_completed 事件异步拉取排程渲染卡片,集成 ScheduleResultCard + ScheduleFineTuneModal;confirm 交互从文本消息改为 resume 协议(approve/reject/cancel)
6. ToolTracePrototypeView 原型页新增日程小卡片 + 拖拽编排弹窗演示
7. DashboardView import 区域尺寸微调
|
2026-04-19 13:53:07 +08:00 |
|
Losita
|
f3f9902e93
|
Version: 0.7.1.dev.260321
feat(agent): ✨ 重构智能排程分流与双通道交付,补齐周级预算并接入连续微调复用
- 🔀 通用路由升级为 action 分流(chat/quick_note_create/task_query/schedule_plan),路由失败直接返回内部错误,不再回落聊天
- 🧭 智能排程链路重构:统一图编排与节点职责,完善日级/周级调优协作与提示词约束
- 📊 周级预算改为“有效周保底 + 负载加权分配”,避免有效周零预算并提升资源利用率
- ⚙️ 日级并发优化细化:按天拆分 DayGroup 并发执行,低收益天(suggested<=2)跳过,单天失败仅回退该天结果并继续全局
- 🧵 周级并发优化细化:按周并发 worker 执行,单周“单步动作”循环(每轮仅 1 个 Move/Swap 或 done),失败周保留原方案不影响其它周
- 🛰️ 新增排程预览双通道:聊天主链路输出终审文本,结构化 candidate_plans 通过 /api/v1/agent/schedule-preview 拉取
- 🗃️ 增补 Redis 预览缓存读写与清理逻辑,新增对应 API、路由、模型与错误码支持
- ♻️ 接入连续对话微调复用:命中同会话历史预览时复用上轮 HybridEntries,避免每轮重跑粗排
- 🛡️ 增加复用保护:仅当本轮与上轮 task_class_ids 集合一致才复用;不一致回退全量粗排
- 🧰 扩展预览缓存字段(task_class_ids/hybrid_entries/allocated_items),支撑微调承接链路
- 🗺️ 更新 README 5.4 Mermaid(总分流图 + 智能排程流转图)并补充决策文档
- ⚠️ 新增“连续微调复用”链路我尚未完成测试,且文档状态目前较为混乱,待连续对话微调功能真正测试完成后再统一更新
|
2026-03-21 22:08:35 +08:00 |
|
Losita
|
d3cec2a5b9
|
Version: 0.7.0.dev.260319
✨ feat(agent): 新增智能排程 Agent 全链路 + ReAct 精排引擎
🏗️ 智能排程 Graph 编排(阶段 1 基础链路)
- 新增 scheduleplan 包:state / tool / prompt / nodes / runner / graph 六件套
- 实现 plan → preview → materialize → apply → reflect → finalize 完整图编排
- 通过函数注入解耦 agent 层与 service 层,避免循环依赖
- 路由层新增 schedule_plan 动作,复用现有 SSE + 持久化链路
🧠 ReAct 精排引擎(阶段 1.5 语义化微调)
- 粗排后构建"混合日程"(既有课程 + 建议任务),统一为 HybridScheduleEntry
- LLM 开启深度思考,通过 Swap / Move / TimeAvailable / GetAvailableSlots 四个 Tool 在内存中优化任务时间
- reasoning_content 实时流式推送前端,用户可见 AI 思考过程
- 精排结果仅预览不落库,向后兼容(未注入依赖时走原有 materialize 路径)
📝 文档
- 新增 ReAct 精排引擎决策记录
⚠️ 已知问题:深度思考模式耗时较长,超时策略待优化
|
2026-03-19 23:18:56 +08:00 |
|
LoveLosita
|
f934668838
|
Version: 0.3.6.dev.260223
feat: 🚀 新增智能编排日程接口与算法模块
* 新增智能编排日程接口,实现自动生成周维度课程安排
* 抽离核心算法至 `Logic` 包,统一存放调度与排课相关算法逻辑,优化项目结构分层
* 大多数用例测试通过,当前存在少量边界用例下“排课时间是否充足”的误判问题
* 返回的周视图数据在极端场景下存在数量偏差,待进一步完善边界控制
fix: 🐛 修复批量导入课程接口 500 错误
* 修复批量导入课程接口中未在 `event` 结构体填写时间字段的问题
* 解决因时间字段为空导致的服务端 500 错误,保证数据完整性
refactor: ♻️ 新增入参校验逻辑保障调度稳定性
* 在添加任务类时新增入参校验逻辑
* 避免非法数据进入调度流程,确保自动编排日程接口执行稳定
docs: 📚 更新 README 智能编排算法说明
* 补充智能编排日程算法的设计思路与实现说明
undo: ⚠️ 追加导入课程后缓存未自动失效
* 追加导入课程后未自动删除对应周安排缓存,存在数据不一致风险
* 当前未能稳定复现,计划后续定位缓存失效时序与触发条件问题
|
2026-02-23 21:49:46 +08:00 |
|
LoveLosita
|
dad1eade93
|
Version: 0.3.2.dev.260214
feat: ⏳ 新增获取当前正在进行的任务接口并完成测试
- 若当前为上课时间,返回当前任务 📚
- 若当前为下课/空闲时间,返回下一个任务 ➡️
- 若存在嵌入任务,支持嵌套返回结构 🧩
- 接口已测试通过 🧪
docs: 📝 小幅更新 README
fix: 🐛 修复获取最近已完成任务列表接口的遗漏问题
- 修复无法获取嵌入在课程中的任务问题 🔧
fix: 🐛 修复删除日程接口的字段遗漏问题
- 若删除的是单独任务块,补充删除 task_item 表的 embedded_time 字段
- 避免数据残留与状态异常 ✅
|
2026-02-14 21:46:02 +08:00 |
|
LoveLosita
|
6dd1f656dc
|
Version: 0.2.6.dev.260211
feat: 🕒 为 schedule_events 表新增 start_time 与 end_time 字段
- 新增 start_time 与 end_time 两列
- 支持最近已完成任务列表接口
- 为后续获取当前正在进行的任务接口做准备 🚧
feat: ✅ 新增最近已完成任务列表接口并通过测试
- 完成接口实现与测试 🧪
- 当前 sv 层使用测试时间进行逻辑验证
- ⚠️ 生产环境需改回使用当前时间
|
2026-02-11 21:08:50 +08:00 |
|
LoveLosita
|
d07234e183
|
Version: 0.2.0.dev.260210
feat: 🗑️ 新增删除单个课程与解除安排日程接口
- 逻辑复杂,初版接口写完后才发现需求需要传切片
- 针对需求修改,通过大 for 循环和事务处理来解决问题 🔄
refactor: 🔧 移除部分冗余的用户 ID 验证逻辑
- sv/schedule.go 中,进来的 ID 已通过 redis 黑名单与 JWT 保护验证
- 去除重复的数据库查验,优化了代码流程 🛠️
refactor: 🔄 重构 API 层业务错误判断逻辑
- 抛弃了原有的手动比对方式,封装进 `respond` 包,简化判断流程
- 未来不再手动遍历数据链路,提升了开发效率 🧹
undo: ⚠️ 修复任务块添加到日程的接口问题(待修复)
- 接口允许直接修改已经安排的任务时间,且重复执行时未被禁止
- 此逻辑存在问题,计划在下个版本修复 🔧
undo: ⚠️ 重测接口的幂等性与其他特性
- 当前接口幂等性等特性尚未专门测试,后续计划重测所有接口
- 测试不充分,待进一步完善 🔄
undo: ⚠️ 修复刷新 token 接口错误处理问题
- 当前接口将 token 本身的错误以 500 错误返回,需修复此问题 🛠️
|
2026-02-10 19:51:05 +08:00 |
|
LoveLosita
|
6d857d16c2
|
Version: 0.1.4.dev.260208
feat: 📆 新增查看用户整周日程接口
|
2026-02-08 20:22:49 +08:00 |
|
LoveLosita
|
79b6be5f40
|
Version: 0.1.3.dev.260208
refactor: ♻️ 重命名部分接口接收器以避免与 dao 层包名冲突
- 调整部分接口接收器命名,避免与 dao 层包名重名 🧩
feat: 📅 新增获取用户今日日程接口并完成实现
fix: 🐛 修复现实日期与相对日期转换逻辑中的初始化时序问题
- 修复 conv/time.go 中日期转换函数的一个 bug ⏱️
- 解决 viper 在包级变量初始化时机过早的问题
- 避免因过早初始化导致无法读取配置中的学期开学/结束时间 📆
|
2026-02-08 19:09:40 +08:00 |
|
LoveLosita
|
75a44f2edd
|
Version: 0.1.2.dev.260207
feat: ⚠️ 批量导入课程接口支持冲突预检测与冲突提示
- 批量导入课程接口支持预先检测冲突
- 返回并展示具体发生冲突的课程信息 📚💥
- 补全此前规划的冲突提示功能(把大饼补上了 🍞)
refactor: 🧱 使用工作单元模式管理 dao 层事务
- 引入工作单元模式(Unit of Work)统一管理 dao 层
- 新建全局事务,使跨 repo 的 gorm 事务管理更加方便 🔁
fix: 🐛 修复将任务块添加进日程接口的多个问题
- 修复核心逻辑 bug(费了老大劲 😵💫)
- 补充并覆盖该接口的多种异常与错误场景测试 🧪
|
2026-02-07 22:08:13 +08:00 |
|
LoveLosita
|
f4bea0576c
|
feat: 🗓️ 新增任务块排期能力并完善课程与日程模型
Version: 0.1.1.dev.260207
- 新增并测试通过将任务块排进日程接口 ✅
- 批量导入课程接口增加单双周功能,支持只在单双周上课的课程 📚
- 任务块时间定位逻辑调整为「第几周-周几」模式 🧭
refactor: 🔨 重构时间与日程数据结构
- 完成绝对日期与相对时间的转换逻辑 🔄
- 后续可根据需求灵活决定时间的传入与输出类型
- 再次重构 schedule 表单结构
- 拆分为 schedule_event(单)与 schedule(多)
- 建立前者对后者的一对多关系 🧩
fix: 🐛 大幅调整表结构与业务逻辑,修复大量历史遗留 bug 🔥
|
2026-02-07 16:33:30 +08:00 |
|
LoveLosita
|
132b7095ac
|
Version:0.1.0.dev.260205
feat: 🆕 完善course模块功能并优化批量导入接口
- 调整 task-class 模型代码并增加注释,使其更简洁易读 ✍️
- 结构调整:将课程相关接口从 schedule 分类移至独立的 course 分类 🚀
- 修改接口 URL 从 /schedule 更改为 /course 🔄
fix: 🐛 修复批量导入课程接口重复导入相同课程的 bug
- 通过在数据库添加唯一约束解决此问题 🔐
- 这只是初步修复,后续会在 sv 层增加重复/时间冲突检测逻辑 ⚠️
- 引导用户修改课表与任务块时间冲突的机制待实现 ⏳
refactor: 🔨 重构 schedule 表单结构
- 将节次管理策略从字符串存储改为原子化存储(如 1-2 节更改为单独两条记录)
- 为后续冲突检查与智能排课做准备 🧠
perf: 🚀 优化批量导入课程接口性能
- 通过数据暂存内存中减少数据插入 MySQL 的次数 ⚡
|
2026-02-05 16:51:15 +08:00 |
|
LoveLosita
|
f554d9bd06
|
Version:0.0.4.dev.260203
feat: 📚 完成课程导入与校验接口(赶在 token 过期前…)
- 实现课程导入接口 ✅
- 实现课程信息校验接口 🔍
- 测试通过 🧪
fix: 🐛 修了一堆 bug,15 分钟 accessToken 默默见证了时间的流逝 ⏳😭
|
2026-02-03 22:05:11 +08:00 |
|