wangheng
1f433b5275
新增 district.paper.statistics.query 客户用纸统计工具(含 ES 7.17 客户端引入) ( #23 )
2026-09-20 18:54:30 +08:00
wangheng
68fd71edbb
[fix] 出入库工具复查修复:调拨待办漏本人修改/待办行串位/调拨派生入库单凭证回查 (REQ-20260919-0003) ( #22 )
2026-09-19 22:28:02 +08:00
my_local_kimi_dev2
c9240fa31c
[fix] 工单工具审查修复:销售负责人前缀碰撞/装机人员/撤机凭证/送货权限范围 ( #22 )
2026-09-18 14:30:46 +08:00
wangheng
1ed33ef828
[REQ-20260918-0004] 撤机工单 MCP 查询工具(列表+详情) ( #21 )
2026-09-18 12:13:02 +08:00
my_local_kimi_dev2
2c6760ce60
[REQ-20260917-0010] 移机工单 MCP 查询工具(列表+详情) ( #20 )
2026-09-17 18:36:33 +08:00
wangheng
c3aa167403
[REQ-20260917-0003] 取货工单 MCP 查询工具(列表+详情) ( #19 )
2026-09-17 11:44:21 +08:00
my_local_kimi_dev2
4e5ee541e3
docs(mcp): update ops/ai integration docs with prod scope facts
...
- 新增 4.1 生产环境对接现状(MCP 入口、ensure 换签、握手流程)
- operation scope(id=2) 当前绑定 24 个工具;移除未绑定的 agent.count
- xiaoqu-ai scope(id=3) 当前绑定 12 个工具;代理域工具改为实际可用映射
- 开发顺序改为按 4.1 清单对照核验
2026-09-16 18:30:07 +08:00
mcp_dev1 and my_local_kimi_dev2
936590a3e3
feat(mcp): add install order query tools (REQ-20260916-0009)
2026-09-16 17:15:24 +08:00
wangheng
6c8fe2e3bb
[REQ-20260916-0020] 送货工单 MCP 查询工具(列表+详情) ( #18 )
2026-09-16 16:41:08 +08:00
my_local_kimi_dev2
c430cc9322
docs(mcp): install order tools design (reviewed)
2026-09-16 15:04:30 +08:00
my_local_kimi_dev2
12de320459
feat(admin): scope tools dialog with category tabs and table
...
- top category tabs with per-category counts and selected badges
- table layout: checkbox, tool name, description, type, status
- header checkbox for select-all with indeterminate state
- search filter and selected-only toggle
- footer summary of cross-category selections
- keep existing data-testid hooks for E2E tests
2026-09-16 11:35:17 +08:00
jiashumeng and my_local_kimi_dev2
487a41df74
feat: add warehouse stock query MCP tool
2026-09-16 10:03:25 +08:00
my_local_kimi_dev2
798075f47e
docs: add MCP external integration spec v1.0
2026-09-16 09:55:19 +08:00
my_local_kimi_dev2
a575736c81
feat(admin): paginate tools list endpoint and console UI
...
- GET /tools returns ToolPageView{total,page,pageSize,records}, pageSize=0 keeps full-list mode
- App.vue adds pager below tools table; scope/audit/category pickers use allTools
- add backend pagination tests and front-end pager contract test
2026-09-16 09:52:19 +08:00
shumeng
6e8cf60fd3
Merge pull request 'feat(sync): expose contract display context' ( #17 ) from codex/mcp-source-domain-identity into main
2026-09-16 09:08:06 +08:00
jiashumeng
025ee7ffa6
feat(sync): expose contract display context
2026-09-15 20:18:43 +09:30
shumeng
6d8093fa14
Merge pull request 'feat(sync): 合同发送前权威复核' ( #16 ) from codex/crm-contract-sync-review into main
...
合并合同发送前权威复核;本地全量229项测试通过。
2026-09-15 18:02:42 +08:00
jiashumeng
5c73751889
docs(sync): record post-merge verification
2026-09-15 19:27:12 +09:30
jiashumeng
15620bb4bf
Merge branch 'main' of http://39.104.65.241:3000/wangheng/xiaoqu_mcp_service into codex/crm-contract-sync-review
2026-09-15 19:26:16 +09:30
jiashumeng
dfe14b29e3
docs(sync): refresh review branch status
2026-09-15 19:25:15 +09:30
jiashumeng
8b5d531f3a
feat(sync): add pre-delivery contract verification
2026-09-15 19:23:08 +09:30
my_local_kimi_dev2
78e319c2f9
feat(mcp): add warehouse todo unified query tool
...
Merge outbound/inbound/allocation process views into warehouse.todo.list.query,
filtered by task assignee (user_id) matching legacy todo semantics (REQ-20260915-0008)
2026-09-15 17:32:59 +08:00
jiashumeng
a1c6ac10e5
docs(sync): record MCP delivery boundary
2026-09-15 18:51:34 +09:30
jiashumeng
e3b6edeb7b
fix(sync): align public change stream schema
2026-09-15 18:49:27 +09:30
jiashumeng
4cd95c61ab
docs: separate MCP CRM integration progress
2026-09-15 18:24:13 +09:30
wangheng
76d461a7ec
Merge pull request 'feat(mcp): add warehouse inbound query tools' ( #15 ) from feat/warehouse-in-mcp-tools into main
2026-09-15 16:34:57 +08:00
jiashumeng and xiaoqu
e2835362e9
feat(mcp): add warehouse inbound query tools
2026-09-15 16:31:40 +08:00
wangheng
b008a5754a
Merge pull request 'feat(mcp): add warehouse outbound query tools' ( #14 ) from feat/warehouse-out-mcp-tools into main
2026-09-15 15:30:44 +08:00
jiashumeng
f559012a4c
feat(mcp): add warehouse outbound query tools
2026-09-15 16:56:49 +09:30
jiashumeng
e064e86def
feat(admin): add managed Open API client keys
2026-09-15 12:05:26 +09:30
wangheng
6cf1c0f4a0
Merge pull request 'docs(mcp): CRM 接入手册 (REQ-20260911-0013)' ( #13 ) from docs/REQ-5628-crm-guide into main
2026-09-14 12:21:39 +08:00
wangheng
f95de7eceb
docs(mcp): CRM 接入手册 (REQ-20260911-0013)
2026-09-14 12:21:26 +08:00
wangheng
e408768fe5
Merge pull request 'feat(mcp): 增量同步框架与 users/properties/contracts changes 工具 (REQ-20260911-0013)' ( #12 ) from feat/REQ-5628 into main
2026-09-14 12:20:04 +08:00
wangheng
6639b93c45
feat(mcp): 增量同步框架与 users/properties/contracts changes 工具 (REQ-20260911-0013)
...
- 通用 ChangesEngine:snapshot 钉住 data_cutoff_at、(modify_time,id) 复合游标、
仅最后一页签发 next_sync_token、软删 tombstone;sync_token/cursor 为
HMAC-SHA256 无状态令牌(SyncTokenCodec),过期/篡改/跨快照/数据域变更
统一 SYNC_CURSOR_EXPIRED
- 注册式实体扩展:SyncEntity/Registry + users(m0.user)/properties(m0.properyt)/
contracts(m2.contract_new) 三个实现;生效修改时间 COALESCE(modify_time, create_time)
- 硬约束:GuardedToolCallback 对 *.changes.list 拒绝 tenant_id/scope 入参,
数据域只从 Token 推导;行级权限复用 PermissionService 与 QUERY 工具同一 ACL
- 资源隔离:RateLimitService SYNC/QUERY 分档限流(Redis 固定分钟窗)、
limit≤200 截断、SyncQueryTimeoutInterceptor 慢查询超时(三套 SqlSessionFactory 接入)
- contract.list.query 补齐 12 字段、contract.detail.query 补 version(ACL 不变)
- V5 migration:tool.description 512→1024(含 sql/rollback 回滚文件)
- seed-dev.sql:三个 changes 工具绑定进 sync 作用域
- 修复:properyt.customerId 为 NULL 时 Collectors.toMap NPE(冒烟命中),
改为 put 逐条装填(ContractsSyncEntity/ContractTools)
2026-09-14 12:19:36 +08:00
wangheng
949945a195
Merge pull request 'feat(mcp): 服务 Token 生命周期与开放通道域绑定 (REQ-20260911-0014)' ( #11 ) from feat/REQ-5629 into main
2026-09-14 09:22:10 +08:00
xiaoqu
a0bae500bc
feat(mcp): 服务 Token 生命周期与开放通道域绑定 (REQ-20260911-0014)
...
- agent_api_key 增加 principal_type/subject_name(V4 Flyway + rollback),integration.context.get 按列判定主体类型\n- Open API 支持 clients 服务密钥→作用域绑定;service ensure get-or-create/无密文轮换,旧密钥禁签 service\n- 服务 Token 吊销/轮换;人员停用后 user Token 失效(60s 本地缓存);AkAuthFilter 401 返回 UNAUTHENTICATED\n- ensure 入口约束:service 仅 sync 作用域、user 禁 sync;sync 作用域预建并绑定 integration.context.get\n- 单测 157 通过;本机 test-up 冒烟通过(跨域/旧密钥/user-sync 403,service context 自检,吊销立即 401,吊销后再签发)
2026-09-14 09:20:48 +08:00
wangheng
c596aa93b5
Merge pull request 'feat(mcp): 新增身份与能力自检工具 integration.context.get (REQ-20260911-0012)' ( #10 ) from feat/REQ-5627 into main
2026-09-11 23:11:23 +08:00
xiaoqu
795a433f35
feat(mcp): 新增 integration.context.get 身份与能力自检工具 (REQ-20260911-0012)
...
- 实时取 AkAuthFilter 鉴权上下文(ThreadLocal AuthContext)+ ToolGuard 同源能力计算,不缓存权限
- tenant_id 映射启用作用域编码;principal_type 集中在 IntegrationContextService.resolvePrincipalType
判定(当前按 token 绑定用户推导 user_delegated,5629 给 agent_api_key 加 principal_type 列后仅改该方法)
- data_scope_version = token_scope 绑定集合最大 modify_time 的 epoch 毫秒,无状态计算
- capability_levels 数据驱动:能力集合含 *.changes.list 工具即具备 SYNC,当前返回 QUERY
- seed-dev.sql operation 作用域白名单加入该工具
2026-09-11 23:10:19 +08:00
wangheng
7b69c8668f
Merge pull request 'feat(mcp): 统一输出规范与错误码体系 (REQ-20260911-0011)' ( #9 ) from feat/REQ-5626 into main
2026-09-11 22:50:06 +08:00
xiaoqu
f2ac17731a
feat(mcp): 统一输出规范与错误码体系——schema_version 双跑信封 + 8 错误码收敛 + 工具只读声明 + 日志脱敏 (REQ-20260911-0011)
2026-09-11 22:48:14 +08:00
xiaoqu
5daecc8ae8
docs(agent-service): 更新生产 HTTPS 部署文档(agent.ququclean.com 上线)
2026-09-11 10:34:09 +08:00
wangheng
73bdbf9519
Merge pull request 'feat(mcp): 新增合同查询工具 contract.list/detail.query (REQ-20260911-0002)' ( #8 ) from feat/REQ-20260911-0002-contract-tools into main
2026-09-11 10:22:34 +08:00
xiaoqu
52bb9faa27
feat(mcp): 新增合同查询工具 contract.list/detail.query (REQ-20260911-0002)
2026-09-11 10:21:18 +08:00
wangheng
d5bb8646e1
Merge pull request 'feat(mcp): 新增出纸机查询工具 hardware.list/detail.query (REQ-20260910-0012)' ( #7 ) from feat/REQ-20260910-0012-hardware-tools into main
2026-09-10 16:03:06 +08:00
xiaoqu
ff452d89d8
feat(mcp): 新增出纸机查询工具 hardware.list/detail.query (REQ-20260910-0012)
2026-09-10 15:27:14 +08:00
wangheng
812c8e87f4
Merge pull request 'feat(mcp): 新增商城订单查询工具 mall.order.list/detail/logistics.query (REQ-20260909-0004)' ( #6 ) from feat/REQ-20260909-0004-mall-order-tools into main
2026-09-09 19:05:16 +08:00
xiaoqu
af22fd0e45
fix(mcp): 修复商城订单工具 CR 问题——时区固定/严格日期校验/权限单测 (REQ-20260909-0004)
...
- OrderTools: startOrderTime/endOrderTime 解析与输出时间格式化统一固定 Asia/Shanghai;
endOrderTime 边界改为 < 次日零点(LocalDate.atStartOfDay),不再用 23:59:59 写法
- 日期入参严格校验:正则 ^\d{4}-\d{2}-\d{2}$ 全串匹配 + ISO_LOCAL_DATE/STRICT 解析,
拒绝 "2026-09-09junk" 尾部垃圾字符与 2026-02-30 等非法日历日
- 新增 PermissionServiceOrderRowFilterTest:applyOrderRowFilter 直接单测,
覆盖总部不过滤/代理自己+下级+代管/代管物业 OR 分支/销售非负责人收窄/agentId 缺失拒绝
2026-09-09 18:57:09 +08:00
xiaoqu
3d6d70604d
feat(mcp): 新增商城订单查询工具 mall.order.list/detail/logistics.query (REQ-20260909-0004)
...
- OrderTools: 订单列表(9个过滤字段+分页)、订单详情(订单+明细+收货地址合并)、订单物流(主表+轨迹)
- 新增 m1 商城库 5 个 Entity/Mapper(首次启用 m1 mapper 包)
- PermissionService.applyOrderRowFilter: 移植老接口 getSaleCompany 行级权限语义
- OrderToolsTest 6 用例;seed-dev.sql 绑定 operation scope;文档第 7~9 节
2026-09-09 18:06:59 +08:00
xiaoqu
0d342a6e30
chore: 移除 Gitea CI workflow
2026-09-09 11:46:38 +08:00
xiaoqu
1e42323697
feat(mcp): 新增代理/物业详情工具(含发票信息)+ 本机测试环境脚本
...
xiaoqu-agent-service CI / test (push) Canceled after 0s
- agent.detail.query / property.detail.query:主体详情 + invoice_info
全量抬头列表(默认条优先),行权限复用列表过滤语义
- 新增 InvoiceQueries 共享发票查询助手;InvoiceInfo 实体/Mapper
按线上库 codegen 生成(m0 白名单加 invoice_info)
- Properyt.customerId 补 @TableField("customerId"):库中驼峰列名,
否则映射到不存在的 customer_id(prod 曾报 Unknown column)
- seed-dev.sql 补两个详情工具的 scope 绑定;PermissionServiceTest
补详情行权限断言(合并远端 district 测试冲突)
- 新增 deploy/test-up.sh:本机测试环境一键脚本(构建→重启→刷新
scope 绑定→自检);.env.example 修正引导变量名 APP_ 前缀误写
2026-09-09 11:41:35 +08:00