在前后端开发联调前 的提交20260223
This commit is contained in:
132
docs/audit/prompt_logs/prompt_log_20260219_190549.md
Normal file
132
docs/audit/prompt_logs/prompt_log_20260219_190549.md
Normal file
@@ -0,0 +1,132 @@
|
||||
- [P20260219-190549] 2026-02-19 19:05:49 +0800
|
||||
- summary: CONTEXT TRANSFER: We are continuing a conversation that had gotten too long. Here is a summary: --- ## TASK 1: Admin-web…
|
||||
- prompt:
|
||||
```text
|
||||
CONTEXT TRANSFER: We are continuing a conversation that had gotten too long. Here is a summary:
|
||||
|
||||
---
|
||||
## TASK 1: Admin-web 同步检查与 Bug 修复(ETL 重构后)
|
||||
|
||||
- **STATUS**: done
|
||||
- **USER QUERIES**: from earlier context transfer
|
||||
- **DETAILS**: 在大量 ETL 重构后,全面检查并修复了 admin-web 前端与后端的同步问题。共 12 处修复,构建验证通过。
|
||||
- **FILEPATHS**: `apps/backend/app/config.py`, `apps/backend/app/services/cli_builder.py`, `apps/backend/app/schemas/tasks.py`, `apps/admin-web/src/api/tasks.ts`, `apps/admin-web/src/pages/LogViewer.tsx`, `apps/admin-web/src/pages/TaskConfig.tsx`, `apps/admin-web/src/types/index.ts`, `apps/admin-web/src/components/ScheduleTab.tsx`, `apps/admin-web/src/store/authStore.ts`, `apps/admin-web/vite.config.ts`
|
||||
|
||||
## TASK 2: ETL 执行深度分析 + Bug 修复
|
||||
|
||||
- **STATUS**: done
|
||||
- **USER QUERIES**: from earlier context transfer
|
||||
- **DETAILS**: 用户从 admin-web 执行 api_full 任务,16.8 秒就"完成",深度分析发现 5 个关键问题并全部修复。
|
||||
- **FILEPATHS**: `apps/etl/connectors/feiqiu/tasks/ods/ods_json_archive_task.py`, `apps/etl/connectors/feiqiu/tasks/verification/base_verifier.py`, `apps/admin-web/src/pages/LogViewer.tsx`, `scripts/ops/fix_admin_site_id.py`
|
||||
|
||||
## TASK 3: Admin-web 全面 UI 优化(4 项重大改造)
|
||||
|
||||
- **STATUS**: done
|
||||
- **USER QUERIES**: from earlier context transfer
|
||||
- **DETAILS**: TaskSelector 按业务域全链路展示、同步检查 UI、全选常用/全选/反选/清空按钮、Flow 定义从 API 动态加载。
|
||||
- **FILEPATHS**: `apps/admin-web/src/components/TaskSelector.tsx`, `apps/admin-web/src/pages/TaskConfig.tsx`, `apps/admin-web/src/api/tasks.ts`, `apps/admin-web/src/types/index.ts`, `apps/backend/app/services/task_registry.py`, `apps/backend/app/routers/tasks.py`
|
||||
|
||||
## TASK 4: DWD 装载排序修复 + DWD_LOAD_FROM_ODS 隐藏
|
||||
|
||||
- **STATUS**: done
|
||||
- **USER QUERIES**: from earlier context transfer
|
||||
- **DETAILS**: DWD 装载区块正确排在 ODS 和 DWS 之间,`DWD_LOAD_FROM_ODS` 已隐藏。
|
||||
- **FILEPATHS**: `apps/admin-web/src/components/TaskSelector.tsx`, `apps/admin-web/src/pages/TaskConfig.tsx`
|
||||
|
||||
## TASK 5: 刷新后重新登录问题修复
|
||||
|
||||
- **STATUS**: done
|
||||
- **USER QUERIES**: from earlier context transfer
|
||||
- **DETAILS**: 加了 `hydrated` state 守卫,hydrate 完成前显示 Spin loading。
|
||||
- **FILEPATHS**: `apps/admin-web/src/App.tsx`
|
||||
|
||||
## TASK 6: 指数任务数量不匹配排查
|
||||
|
||||
- **STATUS**: done
|
||||
- **USER QUERIES**: from earlier context transfer + current conversation queries 1-2
|
||||
- **DETAILS**: 确认 4 个 INDEX 任务覆盖全部 6 个指数。`DWS_RELATION_INDEX`(`RelationIndexTask`)是复合任务,`execute()` 内部调用 `_calculate_rs()`、`_calculate_os()`、`_calculate_ms()`、`_calculate_ml()` 产出 RS/OS/MS/ML 四个子指数。设计合理,不需要改动。
|
||||
- **FILEPATHS**: `apps/etl/pipelines/feiqiu/orchestration/task_registry.py`, `apps/etl/pipelines/feiqiu/tasks/dws/index/relation_index_task.py`
|
||||
|
||||
## TASK 7: DWS 任务描述显示 + DWD 表选择正向勾选改造
|
||||
|
||||
- **STATUS**: in-progress
|
||||
- **USER QUERIES**: current conversation query 3 ("把DWS的说明放在任务说明上" + "修改DWD的选中交互逻辑,和上下一致化")
|
||||
- **DETAILS**: 两个子改动:
|
||||
- A. DWS/INDEX 层任务旁显示 description(ODS/DWD 不显示,避免冗余)— **已完成**
|
||||
- B. DWD 表选择改为正向勾选(选中=装载,和 ODS/DWS checkbox 一致)— **已完成**
|
||||
|
||||
具体已实施的改动:
|
||||
1. `TaskSelector.tsx`:标题从"DWD 表过滤"改为"DWD 装载表"
|
||||
2. `TaskSelector.tsx`:去掉"(未选 = 全部装载)"提示,改为始终显示 `n/n` 计数
|
||||
3. `TaskSelector.tsx`:新增 useEffect,DWD 表数据加载后自动全选(正向勾选默认行为)
|
||||
4. `TaskSelector.tsx`:只对 DWS/INDEX 层任务显示 description(条件 `t.layer === "DWS" || t.layer === "INDEX"`)
|
||||
5. `TaskConfig.tsx`:`buildTaskConfig()` 中 `dwd_only_tables` 逻辑改为正向传递
|
||||
6. `task_registry.py`(后端):`DWS_RELATION_INDEX` 的 description 从"计算助教-客户关系指数"改为"产出 RS/OS/MS/ML 四个子指数"
|
||||
|
||||
通过 Playwright 验证(`api_full` Flow):
|
||||
- ODS 层:不显示 description ✅
|
||||
- DWS 层:显示 description(如"汇总助教每日业绩")✅
|
||||
- INDEX 层:`DWS_RELATION_INDEX` 显示"(产出 RS/OS/MS/ML 四个子指数)" ✅
|
||||
- DWD 装载表:默认全选(所有 checkbox 为 checked)✅
|
||||
- 标题显示"DWD 装载表" ✅
|
||||
|
||||
构建通过(`pnpm run build` 成功)。
|
||||
|
||||
- **NEXT STEPS**:
|
||||
* 需要截图最终验证效果(上一次截图是改动前的,改动后还没截图确认)
|
||||
* 清理临时文件:`tmp_taskselector.txt`、`tmp_taskconfig.txt`、`tmp_types.txt`、`task-selector-after-changes.png`
|
||||
* 清理一次性脚本:`scripts/ops/patch_taskselector.py`、`scripts/ops/patch_taskconfig.py`、`scripts/ops/patch_dwd_autoselect.py`、`scripts/ops/patch_desc_filter.py`
|
||||
* 后端 `task_registry.py` 改动需要重启后端服务才能生效(当前 Playwright 看到的 INDEX 描述是从后端 API 返回的,已经生效说明后端有 auto-reload)
|
||||
|
||||
- **FILEPATHS**: `apps/admin-web/src/components/TaskSelector.tsx`, `apps/admin-web/src/pages/TaskConfig.tsx`, `apps/backend/app/services/task_registry.py`
|
||||
|
||||
## USER CORRECTIONS AND INSTRUCTIONS:
|
||||
- 所有说明性文字使用简体中文
|
||||
- 后端用 `uv run` 启动(不是直接 `python`)
|
||||
- 前端用 `pnpm` 管理
|
||||
- 后端进程运行在端口 8000(`uv run uvicorn app.main:app --reload --port 8000`,cwd: `apps/backend`),processId=3
|
||||
- 前端进程运行在端口 5173(`pnpm run dev`,cwd: `apps/admin-web`),processId=8
|
||||
- 脚本执行规范:优先编写 Python 脚本再执行,避免 PowerShell 复杂逻辑
|
||||
- pnpm build 命令:`Set-Location apps\admin-web; pnpm run build 2>&1`
|
||||
- **关键教训**:前端 `apps/admin-web/src/` 目录有 EPERM 权限问题,`readFile`/`listDirectory` 无法直接访问。必须用 Python 脚本(`pathlib.Path.read_text/write_text` 带完整 Windows 路径)或 `git show HEAD:<path>` 来读写
|
||||
- 用户要求用 MCP Playwright 工具来验证页面效果
|
||||
- 当前 Playwright 浏览器打开在 `http://localhost:5173/`,已登录,当前选中 `api_full` Flow
|
||||
- ETL 侧文件路径:`apps/etl/pipelines/feiqiu/`(不是 `apps/etl/connectors/feiqiu/`,后者是旧路径但 fileSearch 仍能找到)
|
||||
|
||||
## Files to read
|
||||
- `apps/admin-web/src/components/TaskSelector.tsx`(用 Python 脚本读取:`pathlib.Path(r'C:\NeoZQYY\apps\admin-web\src\components\TaskSelector.tsx').read_text('utf-8')`)
|
||||
- `apps/admin-web/src/pages/TaskConfig.tsx`(同上方式读取)
|
||||
- `apps/backend/app/services/task_registry.py`
|
||||
|
||||
USER QUERIES(most recent first):
|
||||
1. - 把DWS的说明,放在任务说明上。不然会出现误解。- 任务选择,修改DWD的选中交互逻辑,和上下一致化,不要现在的选中是过滤排除,很容易误解。
|
||||
2. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
3. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
4. - 把DWS的说明,放在任务说明上。不然会出现误解。- 任务选择,修改DWD的选中交互逻辑,和上下一致化,不要现在的选中是过滤排除,很容易误解。
|
||||
5. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
6. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
7. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
---
|
||||
|
||||
METADATA:
|
||||
The previous conversation had 4 messages.
|
||||
|
||||
INSTRUCTIONS:
|
||||
Continue working until the user query has been fully addressed. Do not ask for clarification - proceed with the work based on the context provided.
|
||||
IMPORTANT: you need to read from the files to Read section
|
||||
```
|
||||
Reference in New Issue
Block a user