在准备环境前提交次全部更改。
This commit is contained in:
163
docs/audit/prompt_logs/prompt_log_20260219_072314.md
Normal file
163
docs/audit/prompt_logs/prompt_log_20260219_072314.md
Normal file
@@ -0,0 +1,163 @@
|
||||
- [P20260219-072314] 2026-02-19 07:23:14 +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**: 1 (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**: 2-6 (from earlier context transfer)
|
||||
- **DETAILS**: 用户从 admin-web 执行 api_full 任务,16.8 秒就"完成",用户质疑。深度分析发现 5 个关键问题并全部修复:
|
||||
- P0:`admin_users.site_id` 不匹配(1 vs 2790685415443269),修复脚本 `scripts/ops/fix_admin_site_id.py`
|
||||
- `OdsJsonArchiveTask` 缺少 `load()` 方法
|
||||
- DWD 校验器 fatal 中止逻辑过于激进
|
||||
- LogViewer 历史日志只显示 stdout(为空)
|
||||
- DWS/INDEX 层跳过(设计如此)
|
||||
- **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 优化
|
||||
|
||||
- **STATUS**: in-progress
|
||||
- **USER QUERIES**: 7-12 (across context transfers)
|
||||
- **DETAILS**: 用户要求全面优化 admin-web 所有页面。已完成大部分工作:
|
||||
|
||||
### 已完成的优化:
|
||||
1. **所有 8 个页面/组件已重写优化**:TaskConfig, TaskManager, ETLStatus, LogViewer, DBViewer, EnvConfig, Login, App.tsx
|
||||
2. **TaskConfig 页面**:
|
||||
- 连接器 + Store ID 改为 TreeSelect 树形多选(连接器→门店),默认全选,门店 ID 从 JWT `user.site_id` 动态获取
|
||||
- CLI 命令从 Modal 改为页面内嵌可编辑 TextArea,配置变更自动刷新(防抖 500ms),手动编辑后锁定
|
||||
- 处理模式从 Segmented 改为垂直 Radio 列表(带描述文字),解决文字展示不全问题
|
||||
- 高级选项从简单 Checkbox 改为 2×2 网格布局,每项带中文说明
|
||||
- 整体布局改为 Row/Col 网格
|
||||
3. **TaskManager**:Tab 加图标,表格紧凑化,历史详情改用 Descriptions 组件
|
||||
4. **ETLStatus**:新增统计卡片(游标数/执行数/成功/失败)
|
||||
5. **LogViewer**:操作栏整合到 Card 中,新增清空按钮和行数/匹配数统计
|
||||
6. **DBViewer**:左侧树包裹在 Card 中,SQL 编辑器支持 Ctrl+Enter 快捷执行和复制按钮
|
||||
7. **EnvConfig**:操作按钮移到页面标题行右侧,保存按钮带修改数 Badge
|
||||
8. **Login**:渐变背景 + 圆角卡片阴影
|
||||
9. **App.tsx**:侧边栏底部新增退出按钮,导航顺序调整,Footer 状态栏优化
|
||||
|
||||
### 待完成的工作:
|
||||
1. **移除 `skip-quality` 选项** — 经代码搜索确认,ETL CLI 中**不存在** `--skip-quality` 参数,`cli_builder.py` 也不生成它。这是之前凭空加的无效选项,需要从 TaskConfig 页面和 `TaskConfigSchema`(后端 Pydantic 模型)中移除。前端 `skipQuality` state 变量、对应的 Checkbox UI、以及 useEffect 依赖项中的 `skipQuality` 都需要清理。
|
||||
2. **任务列表标记不常用任务** — 用户要求在 TaskSelector 中将不常用任务标记出来,以免日常更新 ETL 时误选。需要:
|
||||
- 在后端 `task_registry.py` 的 `TaskDefinition` 中添加标记字段(如 `is_common: bool = True`)
|
||||
- 标记不常用任务:`ODS_JSON_ARCHIVE`、`DWD_QUALITY_CHECK`、`DWS_ML_MANUAL_IMPORT` 等工具类/手动类任务
|
||||
- 前端 `TaskSelector.tsx` 中对不常用任务显示灰色标签或排到底部
|
||||
- 后端 `/tasks/registry` API 返回该字段
|
||||
- 前端 `types/index.ts` 的 `TaskDefinition` 类型需要添加对应字段
|
||||
|
||||
- **NEXT STEPS**:
|
||||
* 从 `apps/admin-web/src/pages/TaskConfig.tsx` 移除 `skipQuality` 相关代码(state、Checkbox UI、useEffect 依赖)
|
||||
* 在 `apps/backend/app/services/task_registry.py` 的 `TaskDefinition` 添加 `is_common` 字段并标记不常用任务
|
||||
* 更新 `apps/admin-web/src/types/index.ts` 的 `TaskDefinition` 类型
|
||||
* 更新 `apps/admin-web/src/components/TaskSelector.tsx` 显示不常用任务标记
|
||||
* 构建验证 `pnpm run build`(cwd: `apps/admin-web`)
|
||||
|
||||
- **FILEPATHS**: `apps/admin-web/src/pages/TaskConfig.tsx`, `apps/admin-web/src/pages/TaskManager.tsx`, `apps/admin-web/src/pages/ETLStatus.tsx`, `apps/admin-web/src/pages/LogViewer.tsx`, `apps/admin-web/src/pages/DBViewer.tsx`, `apps/admin-web/src/pages/EnvConfig.tsx`, `apps/admin-web/src/pages/Login.tsx`, `apps/admin-web/src/App.tsx`, `apps/admin-web/src/types/index.ts`, `apps/admin-web/src/components/TaskSelector.tsx`, `apps/admin-web/src/components/ScheduleTab.tsx`, `apps/backend/app/services/task_registry.py`, `apps/backend/app/services/cli_builder.py`, `apps/backend/app/schemas/tasks.py`
|
||||
|
||||
---
|
||||
|
||||
## USER CORRECTIONS AND INSTRUCTIONS:
|
||||
- 所有说明性文字使用简体中文
|
||||
- 后端用 `uv run` 启动(不是直接 `python`)
|
||||
- 前端用 `pnpm` 管理
|
||||
- 后端进程运行在端口 8000(`uv run uvicorn app.main:app --reload --port 8000`,cwd: `apps/backend`)
|
||||
- 前端进程运行在端口 5174(`pnpm run dev`,cwd: `apps/admin-web`)
|
||||
- ETL 项目实际路径是 `apps/etl/connectors/feiqiu/`
|
||||
- 浏览器中 localStorage 的 token key 是 `access_token`
|
||||
- MCP postgres 连接的是旧数据库(有 billiards_ods/billiards_dwd/billiards_dws schema),不是 ETL 使用的 meta schema 所在数据库
|
||||
- 脚本执行规范:优先编写 Python 脚本再执行,避免 PowerShell 复杂逻辑
|
||||
- `admin_users.site_id` 已从 1 修复为 2790685415443269,用户需要重新登录
|
||||
- 已有测试 bug:`test_cli_args.py::TestBuildCliOverrides::test_data_source_online_sets_run_key` 失败(`force_full` 属性缺失),非本次修改引起
|
||||
- `skip-quality` 参数在 ETL CLI 中不存在,是前端凭空加的,需要移除
|
||||
- 连接器和 Store ID 的交互应该是 tree + 多选(已实现为 TreeSelect)
|
||||
|
||||
---
|
||||
|
||||
## Files to read
|
||||
- `apps/admin-web/src/pages/TaskConfig.tsx`
|
||||
- `apps/admin-web/src/components/TaskSelector.tsx`
|
||||
- `apps/admin-web/src/types/index.ts`
|
||||
- `apps/backend/app/services/task_registry.py`
|
||||
- `apps/backend/app/services/cli_builder.py`
|
||||
- `apps/backend/app/schemas/tasks.py`
|
||||
|
||||
USER QUERIES(most recent first):
|
||||
1. skip-quality:在哪里跳过?详细为我解答这个参数的在整个流程中的作用。任务列表,将不常用的任务标记出来,以免日常更新ETL时误选。
|
||||
2. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
3. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
4. skip-quality:在哪里跳过?详细为我解答这个参数的在整个流程中的作用。任务列表,将不常用的任务标记出来,以免日常更新ETL时误选。
|
||||
5. Output:
|
||||
Hook execution failed with exit code 1.
|
||||
|
||||
Error output:
|
||||
[AUDIT REMINDER] Pending audit detected (root-file, dir:admin-web, dir:backend, dir:etl, dir:miniprogram, dir:db, db-schema-change). Run /audit (Manual: Run /audit hook) to sync docs & write audit artifacts. (rate limit: 15min)
|
||||
|
||||
|
||||
|
||||
Exit Code: 1
|
||||
6. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
7. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
8. 处理模式 太挤了。文字展示不全。dry-runforce-fullskip-quality本地 JSON这几个选项什么意思,什么作用?
|
||||
9. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
10. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
11. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
12. 优化下交互:连接器 和 Store ID 的交互应该是tree + 多选。
|
||||
13. Output:
|
||||
Hook execution failed with exit code 1.
|
||||
|
||||
Error output:
|
||||
[AUDIT REMINDER] Pending audit detected (root-file, dir:admin-web, dir:backend, dir:etl, dir:miniprogram, dir:db, db-schema-change). Run /audit (Manual: Run /audit hook) to sync docs & write audit artifacts. (rate limit: 15min)
|
||||
|
||||
|
||||
|
||||
Exit Code: 1
|
||||
14. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
15. Output:
|
||||
Command executed successfully with no output.
|
||||
|
||||
Exit Code: 0
|
||||
---
|
||||
|
||||
METADATA:
|
||||
The previous conversation had 8 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.
|
||||
Reference in New Issue
Block a user