Feat/AGC错误报告 #240

Merged
kdletters merged 64 commits from feat/error-report into master 2026-09-03 10:02:05 +08:00

64 Commits

Author SHA1 Message Date
kdletters f07a8806fa Merge branch 'master' into feat/error-report
Project CI / Repository checks (pull_request) Successful in 2m31s
Project CI / Frontend tests (pull_request) Successful in 3m54s
Project CI / Backend tests (pull_request) Successful in 8m16s
Project CI / Native shell tests (pull_request) Successful in 18m32s
2026-09-03 09:58:58 +08:00
k88936 beda813a59 加强错误报告凭据脱敏
Project CI / Repository checks (pull_request) Successful in 2m35s
Project CI / Backend tests (pull_request) Successful in 5m56s
Project CI / Frontend tests (pull_request) Successful in 3m20s
Project CI / Native shell tests (pull_request) Successful in 16m51s
使用 Unicode 空白归一化匹配凭据标记

补充 NBSP 和 EM SPACE 回归测试并同步技术文档
2026-09-02 20:01:04 +08:00
k88936 50d6245829 校验错误报告幂等事件集合
幂等命中时读取原归档并返回原事件 ID

相同 submissionId 重放事件集合不一致时返回 409
2026-09-02 19:59:05 +08:00
k88936 ad775aaaee Merge remote-tracking branch 'origin/master' into feat/error-report
Project CI / Repository checks (pull_request) Successful in 2m30s
Project CI / Frontend tests (pull_request) Successful in 3m42s
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
# Conflicts:
#	docs/project-memory/shared-memory/decision-log.md
2026-09-02 19:27:27 +08:00
k88936 2e7b941b04 同步错误报告契约文档
记录开发期用户归属、身份限流与元数据校验

同步管理员更新响应、备注编辑器和列表索引行为
2026-09-02 19:18:34 +08:00
k88936 d4eb6b5efa 优化错误报告列表分页
无过滤列表改用 created_at BTree 索引读取

保留过滤查询语义并减少全量排序开销
2026-09-02 19:15:46 +08:00
k88936 3477248776 为错误报告详情增加处理备注
在管理员详情弹窗提供备注编辑器

支持独立保存备注并保留状态更新流程
2026-09-02 19:10:57 +08:00
k88936 907bba9bf0 收紧错误报告元数据校验
限制 OSS object key、SHA-256、归档大小及事件日志计数

在开发期直接启用新校验,不增加迁移兼容层
2026-09-02 19:09:36 +08:00
k88936 e0184338b6 修正错误报告用户归属
创建输入接收并校验 API 注入的登录用户 ID

同步 SpacetimeDB module、client facade 与生成绑定字段
2026-09-02 19:07:34 +08:00
k88936 ae83e3679c 限制错误报告创建身份与频率
创建 procedure 增加服务身份校验

增加单 identity 每小时 100 次提交配额并保留幂等重试
2026-09-02 19:05:04 +08:00
k88936 733939269f 区分错误报告读取失败状态
仅将明确不存在的 OSS 或报告映射为 404

将请求无效、上游和 SpacetimeDB 故障映射为对应错误状态
2026-09-02 19:03:08 +08:00
k88936 7cf6a4c683 优化错误报告更新响应
PATCH 更新直接返回元数据,避免重复下载归档

管理后台保留已加载详情并合并最新状态
2026-09-02 19:00:55 +08:00
k88936 c6a5824223 修复错误报告链路中的局部问题
修复 Agent Runtime 失败上报脱敏与过期会话误报

修复错误通知忽略 ack、队列快照竞态和管理后台分页

修复诊断日志读取、路径清理、归档大小及时间戳处理

修复 OSS object key 使用、重复 Tauri 注册和重复错误上报

整理 spacetime-client active 模块路径并缓存诊断正则
2026-09-02 18:52:40 +08:00
k88936 64f3a75ba0 Merge branch 'master' into feat/error-report
Project CI / Repository checks (pull_request) Successful in 3m25s
Project CI / Frontend tests (pull_request) Successful in 5m4s
Project CI / Backend tests (pull_request) Successful in 10m10s
Project CI / Native shell tests (pull_request) Successful in 18m20s
2026-09-02 14:42:22 +08:00
k88936 b9fb811fe5 将错误报告组件样式迁移至 Tailwind
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
错误提示改用内联 Tailwind 类

错误报告对话框改用内联 Tailwind 类

移除对应全局 CSS 规则
2026-09-02 14:28:46 +08:00
k88936 49e872a64d 修复错误报告提交与本地确认解耦
服务端报告成功后立即反馈成功,不再让本地队列 ack 失败覆盖提交结果。

为同一批事件复用稳定 submissionId,并对本地 ack 增加有限重试和日志记录。

补充客户端回归测试与错误报告链路文档。
2026-09-02 14:20:34 +08:00
k88936 24ab773283 稳定 GDD 恢复弹层测试时序
Project CI / Repository checks (pull_request) Successful in 3m47s
Project CI / Frontend tests (pull_request) Successful in 5m14s
Project CI / Backend tests (pull_request) Successful in 7m38s
Project CI / Native shell tests (pull_request) Successful in 15m45s
等待初始 hydrate 完成后再断言提交按钮可用
保留恢复期间禁用提交和输入内容回归验证
2026-09-02 13:15:34 +08:00
k88936 45d8bad188 Merge branch 'master' into feat/error-report
Project CI / Repository checks (pull_request) Successful in 3m6s
Project CI / Frontend tests (pull_request) Successful in 4m12s
Project CI / Native shell tests (pull_request) Failing after 5m5s
Project CI / Backend tests (pull_request) Successful in 6m40s
2026-09-02 11:42:39 +08:00
k88936 a699638a1d 调整 ErrorReportLogInput 的导入顺序
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
2026-09-02 11:41:48 +08:00
k88936 3d69c08fa8 修复 OSS 对象前缀错误文案测试
同步不支持对象前缀测试与当前 OSS 校验文案。
2026-09-02 11:37:26 +08:00
k88936 04c5a92f2a 修复 Tauri 错误报告事件订阅拒绝
错误报告桥在浏览器和未初始化 WebView 中安全降级
优先复用全局 Tauri 事件桥并收口订阅拒绝
新增无 Tauri 环境回归测试
补充事件桥 fail-safe 排障记忆
2026-09-02 11:32:31 +08:00
k88936 97eabbf4c6 Merge remote-tracking branch 'origin/master' into feat/error-report
Project CI / Repository checks (pull_request) Failing after 1m40s
Project CI / Frontend tests (pull_request) Failing after 2m37s
Project CI / Backend tests (pull_request) Failing after 5m16s
Project CI / Native shell tests (pull_request) Failing after 5m26s
# Conflicts:
#	apps/ai-game-creator-shell/src-tauri/src/main.rs
#	apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/merge.rs
#	apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/recognition.rs
#	apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/ui_design_suggestion.rs
#	docs/technical/【后台管理】多账号与Tab访问权限方案-2026-07-14.md
2026-09-02 11:09:42 +08:00
k88936 5120c7408c 修复错误报告权限与输入契约问题
错误报告查询和管理 procedure 增加 runtime service identity 授权。

删除 user_id 与 now_micros 旧输入字段并改用服务端身份和时间。

增加 fingerprint、source、管理员备注和凭据脱敏校验。

收紧错误报告 OSS 对象键范围并同步生成绑定与技术文档。
2026-09-02 11:03:03 +08:00
k88936 3cde591b67 修复错误报告审查中的次要问题
Project CI / Backend tests (pull_request) Failing after 14s
Project CI / Repository checks (pull_request) Failing after 14s
Project CI / Frontend tests (pull_request) Failing after 3m16s
Project CI / Native shell tests (pull_request) Failing after 6m16s
修复后台错误报告刷新竞态、下载并发与查询参数构建复用。

修复错误报告清理分页、归档大小限制、分页总数和下载响应头异常。

修复 OSS 流式读取上限与 Codex 高频调试日志阻塞。

同步错误报告技术方案与项目决策记录,并在 review.txt 保留待决 breaking 项。
2026-09-01 23:37:36 +08:00
k88936 35ec049138 补齐 AGC Runtime 错误采集
Rust Runtime 终态失败、预算耗尽和启动确认失败统一进入错误队列

Direct Codex 与专业 Agent 前台裸 invoke 补充采集并统一上下文去重

归一化 Codex app-server 错误类别并新增回归测试与技术方案
2026-09-01 21:43:03 +08:00
k88936 de671b2e0d 修复 AGC 错误通知可重放展示
移除 Rust 错误队列 notified 状态与标记命令

将 error-report-updated 收敛为 generation 唤醒并补齐竞态重试

让 WebView 通过快照查询、重载恢复并新增回归测试

同步更新 AGC 错误报告技术方案
2026-09-01 20:30:26 +08:00
k88936 7f0d4605eb 补齐 AGC 错误通知重载恢复
Project CI / Repository checks (pull_request) Failing after 11s
Project CI / Backend tests (pull_request) Failing after 11s
Project CI / Frontend tests (pull_request) Failing after 2m23s
Project CI / Native shell tests (pull_request) Has been cancelled
挂载时读取 Rust 错误快照并恢复未通知事件

提交报告时移除 Rust 内部 notified 字段
2026-09-01 19:54:09 +08:00
k88936 584eabd1fd 重构 AGC 错误报告为 Rust 队列
新增 Rust 内存错误队列、脱敏、通知聚合和 Tauri commands

前端改用 bridge,拆分通知与报告弹窗 UI

补充 Vitest、Rust 单测及错误报告技术方案
2026-09-01 19:52:27 +08:00
k88936 2f0005ecad 接入显式 Tauri 诊断采集
Project CI / Backend tests (pull_request) Failing after 22s
Project CI / Repository checks (pull_request) Failing after 9s
Project CI / Frontend tests (pull_request) Successful in 3m40s
Project CI / Native shell tests (pull_request) Successful in 16m47s
为 GDD 审批失败使用 diagnostic invoke 包装器

更新命令静态检查器识别诊断调用
2026-09-01 19:10:04 +08:00
k88936 3c7fcfb6cd 补充错误采集状态过滤测试
覆盖预期认证四xx与可报告网络状态
2026-09-01 19:07:15 +08:00
k88936 de1982f84e 收紧错误采集条件
排除预期四xx认证失败

增加显式 Tauri 诊断调用辅助函数
2026-09-01 19:05:08 +08:00
k88936 ba74c1af30 实现自动错误通知与报告面板
新增五秒聚合的非阻塞错误通知

支持事件选择并在日志读取完成前禁止提交

扩大移动端关闭按钮触控区域
2026-09-01 19:04:51 +08:00
k88936 5315a3e338 移除错误报告手动入口
删除 /bug-report 聊天命令与崩溃页报告按钮

同步项目摘要文案和 AGC 错误报告方案
2026-09-01 19:04:24 +08:00
k88936 2aafcf24fa 同步错误报告失败语义文档
删除 OSS 失败写入 failed 状态的过期描述
2026-09-01 18:08:07 +08:00
k88936 110d6095b3 修正错误报告清理前置 OSS 条件
OSS 未配置或删除失败时保留数据库元数据
2026-09-01 18:07:17 +08:00
k88936 5bb134477e 清理错误报告旧存储决策文档
删除本地文件与同步 I/O 的过期实现口径

保留 OSS 与数据库当前架构说明
2026-09-01 18:06:31 +08:00
k88936 8b36b25f9d 重构错误报告为 OSS 与数据库链路
移除 api-server 本地文件存储并改为内存 ZIP 单请求上传 OSS

管理员查询详情下载改读 SpacetimeDB 元数据与 OSS 对象

增加 OSS 内部读取删除能力与每日过期清理

同步更新错误报告技术方案、表目录和决策记录
2026-09-01 18:05:56 +08:00
k88936 a6c8ad0cb6 新增错误报告元数据表与客户端门面
新增 SpacetimeDB error_report 表及 CRUD procedure

生成并接入 spacetime-client 错误报告 facade 与 mapper
2026-09-01 18:05:44 +08:00
k88936 51a68ec623 修正文档中的错误报告 OSS key
移除决策记录中已废弃的日期路径
2026-09-01 16:49:23 +08:00
k88936 c64dd9ef7a 补充错误报告 OSS key 回归测试
锁定归档路径只含固定前缀和 UUID 文件名
2026-09-01 16:35:16 +08:00
k88936 9843b4d7cb 更新错误报告长期决策记录
记录元数据索引、分页、UUID OSS key 和归档完整性约定
2026-09-01 16:32:13 +08:00
k88936 9c8c105585 同步错误报告分页与存储决策文档
记录 UUID OSS key、元数据索引和分页响应约定

从 review.txt 移除已完成的 2、4、5、6、9 项
2026-09-01 16:29:02 +08:00
k88936 4d061b0975 完善错误报告存储与管理员错误契约
使用本地元数据索引支持幂等查找和分页读取

拒绝缺失 events.jsonl 的损坏归档并区分管理员更新错误状态

将 OSS 归档 key 固定为仅含报告 UUID 的路径并跳过 ready 重放上传
2026-09-01 16:28:52 +08:00
k88936 d9a7260996 为错误报告列表增加分页
扩展管理员列表契约支持 offset、total 和 hasMore

后台页面增加页码状态、上一页和下一页操作
2026-09-01 16:28:41 +08:00
k88936 a2827eb4cc 整理错误报告 Breaking Change 待决项
覆盖评审文件并记录十项需要产品或架构决策的问题
2026-09-01 15:28:45 +08:00
k88936 8d45623d34 补充手动报告流程的 React hook 引入
导入 useCallback 以通过客户端类型检查
2026-09-01 15:26:29 +08:00
k88936 d25f9b7f7f 同步错误报告诊断文档
记录指纹调用点、日志二次脱敏和后台预览行为
2026-09-01 15:24:25 +08:00
k88936 c96a311ffb 移除无效启动日志写入
删除 startup_log 始终为空时永远不会执行的重复记录
2026-09-01 15:24:15 +08:00
k88936 82c36a53b8 修复错误报告时间排序与日志名校验
按 RFC3339 时间值排序后台报告列表

拒绝 . 与 .. 日志名以避免归档路径歧义
2026-09-01 15:24:02 +08:00
k88936 0a731bb4ae 清理错误报告对话框无效样式
移除不存在的 header 段落选择器和 flex 下无效的 grid 列定义
2026-09-01 15:23:46 +08:00
k88936 88c1bebaab 抽取客户端 API 错误状态采集
统一普通与二进制请求的服务端错误报告逻辑
2026-09-01 15:23:00 +08:00
k88936 4950153ab1 统一手动错误报告打开流程
复用异步错误采集 helper 并在打开面板前完成事件登记
2026-09-01 15:22:45 +08:00
k88936 fdc155d8fa 加强客户端错误日志脱敏与指纹稳定性
覆盖 Bearer 授权值并在 WebView 日志桥接处执行二次脱敏

使用首个调用点参与指纹,避免相同消息合并不同调用位置
2026-09-01 15:22:32 +08:00
k88936 a2207cb208 改进后台错误报告列表交互
防止列表请求过期响应覆盖当前筛选结果

为报告行增加键盘打开详情支持

截断详情事件预览并延迟回收下载对象 URL
2026-09-01 15:21:53 +08:00
k88936 372a38c3e0 修复试玩快捷键测试监听器清理
使用 try/finally 确保错误报告事件监听器始终移除
2026-09-01 15:21:32 +08:00
k88936 3b06f03c11 明确错误报告单实例与详情错误边界
补充单实例文件锁和内存 ZIP 生命周期注释

区分管理员详情 404 与归档存储 500

同步错误报告技术方案与项目决策记录
2026-09-01 13:26:13 +08:00
k88936 a0daa550c3 收紧错误报告归档与私有对象边界
按用户隔离提交幂等并处理重复日志名

拒绝 agc 私有前缀的公共对象读写与链接日志读取

保持归档和元数据清理时间一致并补充回归测试

同步错误报告技术文档与项目决策记录
2026-09-01 11:47:40 +08:00
k88936 6f810b6d01 修复客户端错误报告采集与后台交互
统一错误报告打开事件常量并补充快捷入口断言

修复后台详情竞态、下载兼容性、状态选项和错误提示

加强客户端脱敏、指纹降级并过滤预期鉴权错误
2026-09-01 11:43:44 +08:00
k88936 734ae175b0 将 AGC 诊断日志改为持久化原始日志
Rust app_log 输出同时保留 stderr 并写入 AppData application.log。

将 WebView console 输出镜像到同一普通文本日志并保留滚动备份。

移除结构化错误事件写盘路径,事件仅在内存中合并并于提交时生成 events.jsonl。

清理旧 Tauri command、共享类型和同步更新诊断上传文档。
2026-09-01 11:16:26 +08:00
k88936 c9585fffb5 补充 AGC 错误报告设计文档
记录错误事件、诊断日志、JSONL 归档和私有 OSS key 约定。

同步 /bug-report 面板行为与后台查看器入口说明。

在文档索引和项目决策日志中登记错误报告方案。
2026-09-01 10:12:29 +08:00
k88936 4671c5fb52 新增后台错误报告查看器
增加错误报告列表、详情和状态筛选页面。

支持管理员受控下载诊断包并接入错误报告 Tab 权限。

补充前端 API 类型、客户端请求和详情弹窗样式。
2026-09-01 10:11:43 +08:00
k88936 5a4ac48575 接入 AGC 客户端错误采集与报告面板
在当前进程按指纹合并客户端错误并持久化应用诊断日志。

新增登录态批量提交、用户说明和可选日志上传面板。

将 /bug-report 快捷入口改为打开报告问题面板并更新端到端断言。
2026-09-01 10:10:48 +08:00
k88936 1f252ef86d 接入 AGC 错误报告后端接口
新增登录态错误报告批量提交与管理员查询接口。

生成 JSONL 诊断归档并支持私有 OSS 上传及状态记录。

接入 AppState、路由和后台 Tab 权限审计。
2026-09-01 10:10:32 +08:00
k88936 0a9f24d8c6 新增 AGC 错误报告共享契约
新增错误事件、日志和批量提交 DTO。

增加 AGC 错误报告模块导出。

增加 agc OSS 前缀以生成私有诊断包对象 key。
2026-09-01 10:10:22 +08:00