caoxiaozhu
|
638b757138
|
docs(dev-log): add July daily work summaries
|
2026-07-20 10:31:47 +08:00 |
|
caoxiaozhu
|
b185e58f31
|
chore(knowledge): ignore tenant runtime storage
|
2026-07-20 10:31:32 +08:00 |
|
caoxiaozhu
|
2a1a5991cb
|
fix(expenses): refine operation record audit UI
|
2026-07-20 10:31:27 +08:00 |
|
caoxiaozhu
|
2a9b3e3273
|
fix(ai): recognize conversational document filters
|
2026-07-20 10:31:15 +08:00 |
|
caoxiaozhu
|
7a3755ac55
|
fix(dev-server): limit reload watcher to source
|
2026-07-20 10:31:00 +08:00 |
|
caoxiaozhu
|
aa6a7d1250
|
fix(agent-assets): save rule markdown atomically
|
2026-07-20 10:30:48 +08:00 |
|
caoxiaozhu
|
208e1bed59
|
fix(audit): expose rule management permission state
|
2026-07-20 10:30:35 +08:00 |
|
caoxiaozhu
|
140efd1a2a
|
fix(agent-assets): allow admin access to platform rules
|
2026-07-20 10:30:22 +08:00 |
|
caoxiaozhu
|
74fafc86d3
|
fix(runtime): provision local document and vector services
|
2026-07-20 10:30:08 +08:00 |
|
caoxiaozhu
|
15da295963
|
fix(settings): reconcile secret status and model drafts
|
2026-07-20 10:29:49 +08:00 |
|
caoxiaozhu
|
044a5669fe
|
fix(employees): preserve age across birthday boundaries
|
2026-07-20 10:29:42 +08:00 |
|
caoxiaozhu
|
c59990dc35
|
fix(auth): bind admins to enterprise tenant context
|
2026-07-20 10:29:30 +08:00 |
|
caoxiaozhu
|
372e35d62a
|
fix(migrations): repair tenant identity lookup indexes
|
2026-07-20 10:28:31 +08:00 |
|
caoxiaozhu
|
07241b4648
|
fix(docker): manage local postgres in default compose
|
2026-07-17 22:50:02 +08:00 |
|
caoxiaozhu
|
787bc3a481
|
feat(platform): close AI expense value loop
Add tenant-safe value, telemetry, connector, commercial, and production-readiness foundations.
|
2026-07-17 14:14:08 +08:00 |
|
caoxiaozhu
|
242d68c36f
|
feat(approval): add task workflow and waiver decisions
|
2026-07-16 16:52:12 +08:00 |
|
caoxiaozhu
|
28b834edd3
|
fix(approval): replay immutable action responses
|
2026-07-16 15:49:43 +08:00 |
|
caoxiaozhu
|
4940ebc419
|
feat(approval): add safe risk disposition workflow
|
2026-07-16 15:34:58 +08:00 |
|
caoxiaozhu
|
ee88a36baf
|
feat(ai): add tenant-safe hierarchical expense learning
|
2026-07-16 14:30:41 +08:00 |
|
caoxiaozhu
|
6bdf65bc24
|
feat(expenses): add authoritative pre-review workflow
|
2026-07-16 11:42:08 +08:00 |
|
caoxiaozhu
|
ae3f02c35a
|
feat(expense): add persistent zero-entry receipt association
|
2026-07-16 10:23:23 +08:00 |
|
caoxiaozhu
|
54754b5502
|
feat(ai): add personal expense application memory
|
2026-07-14 17:16:23 +08:00 |
|
caoxiaozhu
|
211f85d981
|
feat(ai): unify verified expense application workflow
|
2026-07-14 16:03:05 +08:00 |
|
caoxiaozhu
|
5b24630710
|
feat(ai): issue verified application preview decisions
|
2026-07-14 14:37:53 +08:00 |
|
caoxiaozhu
|
a662cfe6c3
|
feat(ai): add expense application feedback ledger
|
2026-07-14 11:10:55 +08:00 |
|
caoxiaozhu
|
5ed34c2b8f
|
feat(expenses): backfill historical claims into expense cases
|
2026-07-14 10:09:09 +08:00 |
|
caoxiaozhu
|
11275e4ba6
|
fix(migrations): enforce schema ownership safety
|
2026-07-14 09:23:34 +08:00 |
|
caoxiaozhu
|
1347366b95
|
feat(expenses): secure timeline and draft events
|
2026-07-14 00:07:07 +08:00 |
|
caoxiaozhu
|
22669a9071
|
feat(expenses): show unified expense event timeline
|
2026-07-13 16:58:51 +08:00 |
|
caoxiaozhu
|
a616b30cb2
|
fix(expenses): unify AI application submission transaction
|
2026-07-13 15:35:08 +08:00 |
|
caoxiaozhu
|
653eda0596
|
feat(auth): add opaque bearer sessions
|
2026-07-13 14:45:36 +08:00 |
|
caoxiaozhu
|
661990b27b
|
feat(expenses): add transactional expense case events
|
2026-07-13 11:58:48 +08:00 |
|
caoxiaozhu
|
9a84e125d0
|
merge: 飞轮 2 golden set 回归门禁
# Conflicts:
# server/src/app/models/__init__.py
|
2026-07-03 14:41:40 +08:00 |
|
caoxiaozhu
|
3a5fc3c09f
|
merge: 飞轮 1 few-shot 在线检索注入
|
2026-07-03 14:40:09 +08:00 |
|
caoxiaozhu
|
c7ba7bb453
|
feat(flywheel): golden case 管理 API 与评测单测
- 新增 GoldenCaseCreate/Read、GoldenEvalRequest/Read schema
- 新增 3 个端点:创建 golden case、按规则列表、手动触发 golden 评测
(不入门禁,供运营试跑)
- 单测 15 passed:单条 hit/severity 比对、集合 accuracy/precision/recall
聚合、空集降级、100% 通过/失败拦截、feature flag、异常降级
- 回归 test_agent_asset_service 27 passed(1 个预存失败与本改动无关)
|
2026-07-03 14:38:43 +08:00 |
|
caoxiaozhu
|
67c3f30eb2
|
feat(flywheel): golden set 回归门禁拦截风险规则发布
- 新增 RiskRuleGoldenEvaluator:在 GoldenCase 集上跑规则 manifest,复用
RiskRuleTemplateExecutor + _build_synthetic_claim,输出
accuracy/precision/recall,按 100% 通过硬阈值判定
- require_pass 门禁入口:未通过抛 PermissionError 并写
AgentAssetTestRun(test_type=golden) 记录;空集/异常/feature flag 关闭
一律降级放行,不阻塞发布主链路
- _publish_reviewed_working_version 在 test_passed 校验后接入门禁
(修订版 _publish_revision 留待下一轮)
|
2026-07-03 14:38:26 +08:00 |
|
caoxiaozhu
|
73aee622c7
|
feat(flywheel): 新增 GoldenCase 模型用于规则回归门禁
- 新增 golden_cases 表,承载版本化的风险规则黄金用例
(case_key/rule_code/values_json/expected_hit/expected_severity/status)
- 注册到 db/base.py 和 models/__init__.py,进入 Base.metadata
|
2026-07-03 14:38:14 +08:00 |
|
caoxiaozhu
|
52d57c3be7
|
test(flywheel): 补 few-shot 飞轮单测并沉淀开发文档
- embedding_provider:GLM/Ollama 分支、维度缓存、HTTP 错误降级
- few_shot_ingestion:confirmed/false_positive 入库、ignored 跳过、幂等去重、
create_feedback hook 触发、feature flag、吞异常
- few_shot_retrieval:去重、token 预算、超长截断;prompt 注入合并 examples + 向后兼容
- 容器内新增测试 20 passed;回归测试 35 passed(RAG/risk_observations/rule_generation)
- 沉淀 document/development/2026-07-03/feature/ai-data-flywheel 概念文档与 TODO,
飞轮 1 已勾选证据,飞轮 2-6 待后续迭代
|
2026-07-03 13:56:21 +08:00 |
|
caoxiaozhu
|
3a9d154783
|
feat(flywheel): few-shot 在线检索注入打通风险规则编译链路
- 新增 FewShotStore:独立 Qdrant collection few_shot_samples,向量 upsert/search/delete,
全程失败降级不阻塞主链路
- 新增 FewShotIngestionService:RiskObservation confirmed/false_positive → FewShotSample +
向量,带 sample_key 幂等去重
- 新增 FewShotRetriever:按 case 特征检索相似历史样本,去重 + token 预算 + 单条字符上限裁剪
- risk_observations.create_feedback commit 后挂 hook 自动入库,带 feature flag 和 try/except 兜底
- risk_rule_generation_prompt 新增 few_shot_samples 可选参数,合并进 examples 并标
source=historical_confirmed;risk_rule_generation 构造 prompt 前调 retriever,失败降级为空
|
2026-07-03 13:55:52 +08:00 |
|
caoxiaozhu
|
765cfb40f3
|
feat(flywheel): 抽公共 EmbeddingProvider 并新增 FewShotSample 模型
- 从 knowledge_rag_runtime 抽出 embedding 调用逻辑为独立 EmbeddingProvider,
复用现有 HTTP 纯函数,RAG 路径零回归
- 新增 FewShotSample 表模型(样本池),注册到 db/base.py 和 models/__init__.py
供 few-shot 飞轮沉淀已确认风险观测
|
2026-07-03 13:55:39 +08:00 |
|
caoxiaozhu
|
08f023243e
|
fix(web): 多 task 草稿自动保存后继续推进下一 task
useWorkbenchAiApplicationPreviewFlow 在自动保存草稿分支透传 onApplicationActionCompleted,
确保草稿/提交完成后仍能按 remaining tasks 推进,修复多 task 报销场景后续步骤不启动。
更新 application-context-submit/intent-planner-model 测试,补充 bug 日志与开发日志。
|
2026-06-29 20:17:36 +08:00 |
|
caoxiaozhu
|
6bdaeed6d4
|
chore: 忽略 .zcode 本地目录并更新规则表与开发日志
- .gitignore 新增 .zcode/(ZCode 工具本地配置,不入库)
- 更新交通/通信/差旅等财务规则表
- 补充 2026-06-25/26 开发日志(chat UI SaaS 化、主题企业 AI 风格、bug 日志)
|
2026-06-26 22:42:46 +08:00 |
|
caoxiaozhu
|
d5a8f84703
|
refactor(web): 应用外壳/差旅详情/报销创建视图适配主题与多 task
- AppShellRouteView/useAppShell 适配主题皮肤与会话入口
- TravelRequestDetailView/travelRequestDetailSetup 差旅详情适配,travel-request-detail-view.css 调整
- TravelReimbursementCreateView/useTravelReimbursementCreateViewLifecycle 创建视图适配
- 更新 app-shell-financial-assistant-entry/travel-request-detail-risk-advice 测试
|
2026-06-26 22:42:29 +08:00 |
|
caoxiaozhu
|
c4b5fcc067
|
feat(web): AI 工作台多 task 串行推进与会话适配
- useWorkbenchAiApplicationPreviewFlow/useWorkbenchAiActionRouter/useWorkbenchAiCommandIntents 支持 task1 完成后自动推进 task2,确认按钮直接拉起申请预览,草稿/提交成功后继续推进下一 task
- workbenchAiIntentPlannerModel/workbenchAiMessageModel/workbenchAiCommandIntentModel 适配多 task 意图规划与消息结构
- aiApplicationPreviewActions/aiApplicationPrecheckModel/aiExpenseDraftModel/aiWorkbenchConversationStore 草稿与会话存储适配
- PersonalWorkbenchAiMode 与样式适配,更新 preview-actions/expense-draft/conversation-store/fast-preview/action-router/command-intent/intent-planner 测试
|
2026-06-26 22:42:23 +08:00 |
|
caoxiaozhu
|
5753899eb3
|
feat(web): 主题皮肤系统与 LLM 设置面板重构
- useThemeSkin 重构主题皮肤应用逻辑,支持企业 AI 风格主题切换
- settingsModelHelper 新增主题与模型表字段映射,useSettings 适配
- LlmSettingsPanel/SettingsView 面板重构,支持多模型行编辑与主题区块
- settings-view.css 适配主题样式,新增 settings-theme-section 测试,更新 settings-llm-section 测试
|
2026-06-26 22:42:00 +08:00 |
|
caoxiaozhu
|
9c3fa80d22
|
feat(server): 设置持久化新增 LLM 模型表与主题字段
- SettingsLlmForm 新增 models 列表(SettingsModelRow:slot/provider/url/apiKey/modelId/type),支持多模型行持久化
- settings 服务读写模型表与主题相关字段,更新 test_settings_persistence 测试
|
2026-06-26 22:41:40 +08:00 |
|
caoxiaozhu
|
43c3ff860c
|
fix(web): steward plan 确认按钮直接拉起申请预览,不丢失 remaining tasks
根因:steward plan 的'确认创建申请单'按钮 action_type 是
ASSISTANT_SCOPE_ACTION_SWITCH,handleInlineSuggestedAction 没有匹配分支,
落到 startInlineConversation 重新发起对话,steward_remaining_tasks 完全丢失。
修复:当 payload 有 steward_current_task + session_type=application +
task_type=expense_application 时,直接调 startAiApplicationPreviewFromAction
(会透传 steward_remaining_tasks 到申请预览 message),不走 startInlineConversation。
这样保存草稿成功后,targetMessage 上有 stewardRemainingTasks,
buildApplicationPreviewNextTaskAction 能生成'继续处理费用报销'按钮。
|
2026-06-26 11:40:44 +08:00 |
|
caoxiaozhu
|
3e4b1e1597
|
fix(web): 保存草稿/提交成功后也推进到下一个 task
之前多 task 串行推进只在 steward action 执行链(executeInlineStewardAction)
生效,但保存草稿走的是 application preview 流(executeInlineApplicationPreviewAction),
成功后只显示'查看单据',不会提示继续下一个报销 task。
- startAiApplicationPreviewFromAction 透传 steward_remaining_tasks 到 preview message
- startAiApplicationPreview 把 stewardRemainingTasks 存到 message 上
- executeInlineApplicationPreviewAction 成功后:检查 targetMessage.stewardRemainingTasks,
有剩余 task 则追加'继续处理费用报销'按钮(复用 steward_confirm_flow 分支)
- 新增 buildApplicationPreviewNextTaskAction 辅助函数
现在保存草稿/提交申请成功后,用户会看到:[查看单据] [继续处理费用报销]
|
2026-06-26 11:21:16 +08:00 |
|
caoxiaozhu
|
3a5664c4da
|
feat(web): 多 task 串行推进 - task1 完成后自动展示 task2 确认按钮
场景:'出差并且报销招待费'→LLM 拆出 2 个 task→先做完出差申请→
完成后自动展示'继续处理费用报销'按钮→用户确认后推进到报销流程。
- 新增 buildNextTaskSuggestedAction:从 actionPayload.steward_remaining_tasks
取第一个剩余 task,根据 task_type 生成推进按钮(steward_confirm_flow)
- executeInlineStewardAction 成功后:除'查看单据'外,追加'继续处理下一个 task'按钮
- 用户点击推进按钮复用 handleInlineSuggestedAction 的 steward_confirm_flow 分支
- 前端 28 passed 无回归
|
2026-06-26 10:51:43 +08:00 |
|
caoxiaozhu
|
d139a63e64
|
refactor(server): 意图识别改 LLM 驱动,规则只做闲聊拦截+resume 兜底
规则不再判断'这是哪个业务场景'——那交给 LLM function call。
规则只保留两个不可替代职责:闲聊拦截(省 LLM 成本)、resume 确定性兜底。
- gate_classify 简化:删掉规则匹配门(94 词 CHOICE 匹配)和 ambiguous 提前判断
- 新增 _is_lightweight_off_topic:只拦 greeting+meaningless,不依赖业务关键词
- HANDLER_ONLY 改为 LLM 输出驱动:LLM 返回 query_travel_standard 后转 handler
- 图拓扑简化:gate_classify 只输出 off_topic|resume|model_intent
- 验证:76 passed;复合场景'出差并且报销招待费'→LLM 返回 2 task
|
2026-06-26 10:19:04 +08:00 |
|