docs(personal): sync phase two task progress
This commit is contained in:
+21
-21
@@ -777,7 +777,7 @@ Expected: PASS;测试用户 A 的查询 JSON 和 SQL 均不可能命中用户
|
||||
- Modify: backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/domain/AihrSopDto.java
|
||||
- Modify: backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java
|
||||
|
||||
- [ ] **Step 1: 写 mixed 和无引用失败测试**
|
||||
- [x] **Step 1: 写 mixed 和无引用失败测试**
|
||||
|
||||
@Test
|
||||
void mixedSearchLabelsCitationDomains() {
|
||||
@@ -797,7 +797,7 @@ Expected: PASS;测试用户 A 的查询 JSON 和 SQL 均不可能命中用户
|
||||
verifyNoInteractions(chatRuntime);
|
||||
}
|
||||
|
||||
- [ ] **Step 2: 运行测试确认失败**
|
||||
- [x] **Step 2: 运行测试确认失败**
|
||||
|
||||
Run:
|
||||
|
||||
@@ -805,7 +805,7 @@ Run:
|
||||
|
||||
Expected: FAIL,PersonalAnswerService 不存在。
|
||||
|
||||
- [ ] **Step 3: 增加企业授权检索接口**
|
||||
- [x] **Step 3: 增加企业授权检索接口**
|
||||
|
||||
在 AihrSopSeedService 增加只返回当前登录用户有权访问结果的方法:
|
||||
|
||||
@@ -831,7 +831,7 @@ PersonalAnswerService 必须:
|
||||
5. citations_json 保存域、sourceId、标题和摘录。
|
||||
6. 无引用时不调用 LLM。
|
||||
|
||||
- [ ] **Step 4: 运行问答和 SOP 回归测试**
|
||||
- [x] **Step 4: 运行问答和 SOP 回归测试**
|
||||
|
||||
Run:
|
||||
|
||||
@@ -839,7 +839,7 @@ Run:
|
||||
|
||||
Expected: PASS;mixed 引用域正确;无依据不生成答案。
|
||||
|
||||
- [ ] **Step 5: 提交**
|
||||
- [x] **Step 5: 提交**
|
||||
|
||||
git add backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/personal/service/PersonalAnswerService.java backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/domain/AihrSopDto.java backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/service/AihrSopSeedService.java backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/personal/PersonalAnswerServiceTest.java
|
||||
git commit -m "feat(personal): answer with authorized cross-domain citations"
|
||||
@@ -853,7 +853,7 @@ Expected: PASS;mixed 引用域正确;无依据不生成答案。
|
||||
- Create: backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/personal/service/PersonalCleanupService.java
|
||||
- Create: backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/personal/PersonalCleanupServiceTest.java
|
||||
|
||||
- [ ] **Step 1: 写删除幂等和 owner 约束测试**
|
||||
- [x] **Step 1: 写删除幂等和 owner 约束测试**
|
||||
|
||||
@Test
|
||||
void deletionHidesItemBeforeExternalCleanup() {
|
||||
@@ -872,7 +872,7 @@ Expected: PASS;mixed 引用域正确;无依据不生成答案。
|
||||
verify(vectorStore, atLeastOnce()).deleteItem(owner, 9L);
|
||||
}
|
||||
|
||||
- [ ] **Step 2: 运行测试确认失败**
|
||||
- [x] **Step 2: 运行测试确认失败**
|
||||
|
||||
Run:
|
||||
|
||||
@@ -880,7 +880,7 @@ Run:
|
||||
|
||||
Expected: FAIL,清理服务不存在。
|
||||
|
||||
- [ ] **Step 3: 实现 Controller 和删除顺序**
|
||||
- [x] **Step 3: 实现 Controller 和删除顺序**
|
||||
|
||||
Controller 只通过 provider.current() 取得 owner:
|
||||
|
||||
@@ -954,7 +954,7 @@ PersonalAssistantDto 必须同步定义上述 response/request records;分页
|
||||
|
||||
清理顺序固定:DELETING 隐藏 → Qdrant points → fragments → OSS → DELETED。每一步可重复执行。
|
||||
|
||||
- [ ] **Step 4: 运行测试与匿名 HTTP 负测**
|
||||
- [x] **Step 4: 运行测试与匿名 HTTP 负测**
|
||||
|
||||
Run:
|
||||
|
||||
@@ -963,7 +963,7 @@ Run:
|
||||
|
||||
Expected: 单测 PASS;匿名请求业务响应为 401,接口没有 @SaIgnore。
|
||||
|
||||
- [ ] **Step 5: 提交**
|
||||
- [x] **Step 5: 提交**
|
||||
|
||||
git add backend/ruoyi-modules/ruoyi-aihr/src/main/java/org/dromara/aihr/personal backend/ruoyi-modules/ruoyi-aihr/src/test/java/org/dromara/aihr/personal/PersonalCleanupServiceTest.java
|
||||
git commit -m "feat(personal): expose authenticated API and deletion workflow"
|
||||
@@ -984,7 +984,7 @@ Expected: 单测 PASS;匿名请求业务响应为 401,接口没有 @SaIgnore
|
||||
- Modify: mobile-uni/src/pages/user/sop/index.vue
|
||||
- Modify: mobile-uni/src/types/api.ts
|
||||
|
||||
- [ ] **Step 1: 写失败的页面契约测试**
|
||||
- [x] **Step 1: 写失败的页面契约测试**
|
||||
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
@@ -1007,7 +1007,7 @@ Expected: 单测 PASS;匿名请求业务响应为 401,接口没有 @SaIgnore
|
||||
assert.match(page, /deletePersonalItem/);
|
||||
});
|
||||
|
||||
- [ ] **Step 2: 运行测试确认失败**
|
||||
- [x] **Step 2: 运行测试确认失败**
|
||||
|
||||
Run:
|
||||
|
||||
@@ -1015,7 +1015,7 @@ Run:
|
||||
|
||||
Expected: FAIL,assistant 页面不存在。
|
||||
|
||||
- [ ] **Step 3: 实现 API 客户端**
|
||||
- [x] **Step 3: 实现 API 客户端**
|
||||
|
||||
personal-assistant.ts 固定使用现有 apiRequest:
|
||||
|
||||
@@ -1043,7 +1043,7 @@ personal-assistant.ts 固定使用现有 apiRequest:
|
||||
timeout: 15000
|
||||
});
|
||||
|
||||
- [ ] **Step 4: 实现页面交互**
|
||||
- [x] **Step 4: 实现页面交互**
|
||||
|
||||
关键状态必须唯一:
|
||||
|
||||
@@ -1069,7 +1069,7 @@ personal-assistant.ts 固定使用现有 apiRequest:
|
||||
|
||||
引用卡必须按 citation.domain 显示“我的资料 / 企业 SOP / 外部网页”。默认只选 PERSONAL;用户主动选择后才启用 mixed。
|
||||
|
||||
- [ ] **Step 5: 运行移动端检查**
|
||||
- [x] **Step 5: 运行移动端检查**
|
||||
|
||||
Run:
|
||||
|
||||
@@ -1079,7 +1079,7 @@ Run:
|
||||
|
||||
Expected: 全部 PASS;无新增横向滚动;页面路由存在。
|
||||
|
||||
- [ ] **Step 6: 提交**
|
||||
- [x] **Step 6: 提交**
|
||||
|
||||
git add mobile-uni/src/pages.json mobile-uni/src/pages/user/assistant mobile-uni/src/pages/user/sop/index.vue mobile-uni/src/services/personal-assistant.ts mobile-uni/src/types/api.ts mobile-uni/tests/personal-assistant.test.mjs
|
||||
git commit -m "feat(mobile): add personal assistant knowledge flow"
|
||||
@@ -1095,7 +1095,7 @@ Expected: 全部 PASS;无新增横向滚动;页面路由存在。
|
||||
- Modify: docs/DEV_SETUP.md
|
||||
- Modify: docs/DEMO_ACCEPTANCE.md
|
||||
|
||||
- [ ] **Step 1: 写失败的 smoke 脚本**
|
||||
- [x] **Step 1: 写失败的 smoke 脚本**
|
||||
|
||||
脚本必须创建用户 A/B,并断言:A 可见自己的 item;B 对 A 的详情、搜索、删除均得到 PERSONAL_ITEM_NOT_FOUND;私网 URL 得到 PERSONAL_URL_BLOCKED。
|
||||
|
||||
@@ -1113,7 +1113,7 @@ Expected: 全部 PASS;无新增横向滚动;页面路由存在。
|
||||
|
||||
脚本使用 trap 清理两个测试用户的个人 item、session、fragment、Qdrant point 和 sys_oss 测试对象。
|
||||
|
||||
- [ ] **Step 2: 在 API 未完整启动前验证脚本失败**
|
||||
- [x] **Step 2: 在 API 未完整启动前验证脚本失败**
|
||||
|
||||
Run:
|
||||
|
||||
@@ -1122,7 +1122,7 @@ Run:
|
||||
|
||||
Expected: 语法 PASS;若服务未启动则明确失败于 health,不产生残留数据。
|
||||
|
||||
- [ ] **Step 3: 补 demo-check 和文档**
|
||||
- [x] **Step 3: 补 demo-check 和文档**
|
||||
|
||||
demo-check 增加静态 marker:
|
||||
|
||||
@@ -1132,7 +1132,7 @@ demo-check 增加静态 marker:
|
||||
|
||||
API_INTEGRATION 记录 API、owner 注入规则和 mixed 引用域;DEV_SETUP 记录 Qdrant collection、配额配置和 smoke 命令;DEMO_ACCEPTANCE 记录浏览器闭环。
|
||||
|
||||
- [ ] **Step 4: 跑完整 P0 gate**
|
||||
- [x] **Step 4: 跑完整 P0 gate**
|
||||
|
||||
Run:
|
||||
|
||||
@@ -1160,7 +1160,7 @@ Expected: smoke 输出 PASS;用户 A/B 无交叉可见;SSRF 拦截;所有
|
||||
|
||||
Expected: 浏览器控制台无业务错误;失败提示明确;不出现无引用答案。
|
||||
|
||||
- [ ] **Step 6: 提交**
|
||||
- [x] **Step 6: 提交**
|
||||
|
||||
git add scripts/personal-assistant-smoke.sh scripts/demo-check.sh docs/API_INTEGRATION.md docs/DEV_SETUP.md docs/DEMO_ACCEPTANCE.md
|
||||
git commit -m "test(personal): close personal knowledge pilot gates"
|
||||
|
||||
Reference in New Issue
Block a user