Bug 清单
收录 1225 个 Bug/缺陷,其中已修复 878 个(来自生产数据库)
passlib[bcrypt] 与 bcrypt 5.x 不兼容
注册后无法登录,密码验证永远返回 False。([cursor_202606072236.md:803](file://d:/chemindra/cursor_202606072236.md#L803))
(`commit 1d6a90d`):
- 从 `requirements.txt` 移除 `passlib[bcrypt]`,改用 `bcrypt>=4.0.0`
- `security.py` 使用 `bcrypt.hashpw()` / `bcrypt.checkpw()` 替代 `pwd_context.hash()` / `pwd_context.verify()`PostgreSQL bind mount 数据目录密码与 .env.prod 不一致导致 backend 反复重启
docker compose up 后 backend 容器 CrashLoopBackOff,反复重启;postgres/redis 健康但 backend 无法连上 DB;alembic upgrade head 无法执行
Windows 中文环境下 psycopg2 UnicodeDecodeError
Windows 中文环境下执行 `alembic upgrade head`,psycopg2 报错: ``` UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 61: invalid continuation byte ``` ([cursor_202606072236.md:466](file://d:/chemindra/cursor_202606072236.md#L466)、[cursor_202606072236.md:538](file://d:/chemindra/cursor_202606072236.md#L538) 两次重现)
(`commit 1d6a90d` `fix: Windows 本地 PostgreSQL 开发与 bcrypt 兼容`):
1. `config.py` 启动时设置 `os.environ.setdefault("PGCLIENTENCODING", "UTF8")`
2. `session.py` 连接参数添加 `client_encoding="utf8"` + `connect_timeout=10`
3. `alembic/env.py` 同样添加 `client_encoding` 和 `PGCLIENTENCODING`
4. Settings 同时从 `_SERVER_ROOT / .env` 和 `_REPO_ROOT / .env` 查找2026-06-07 `production-update.sh` 反复 git merge 冲突
第 1 次 git pull 被本地修改阻止,回退后再次 pull 仍被同一 untracked 文件阻止,连续失败 5 次。
报表 SQLGrammarException — `user_events` 表未建
Flyway V83 未执行,`user_events` 表缺失
Flyway V236 卡死 — 播报历史金额迁移
暂无描述
historySamples from store.stats() — unlock cold start at 7806 records
commit f3d0790ad7a1 (2026-09-17) fix(gamma): historySamples from store.stats() — unlock cold start at 7806 records
前端 Docker build + healthcheck + TS 修复
commit 1bcb0508370a (2026-09-20) fix(BUG-0157/021/022): 前端 Docker build + healthcheck + TS 修复
guardrail_rules E2E 测试 — 验证后端 API 是否正确存储护栏规则
生产库 440 条 guardrail_rules 全是空数组,需要确认是 API 层还是 DB 层丢失
补全 Neo4j 图数据库服务 + Elasticsearch IK 中文分词插件 + 知识图谱依赖修复
commit 6b96e67adf4a (2026-09-12) fix(P0): 补全 Neo4j 图数据库服务 + Elasticsearch IK 中文分词插件 + 知识图谱依赖修复
行尾/编码规范缺失 —— 补 .gitattributes + SOFT-STANDARD-TEXT-ENCODING
commit 3fe8039720a9 (2026-10-03) fix(encoding): 行尾/编码规范缺失 —— 补 .gitattributes + SOFT-STANDARD-TEXT-ENCODING
集成测试硬编码端口 9487 —— Surefire 并行第二个 bind 必然 BindException
mvn test 并行跑时 3 个 Hard 集成测试之一必挂,单跑全绿——典型'偶现'假象
check_hit 边界 >= 统一 + ELO history 9 测试 + Bot 配件 3 集成测试 (288 pytest 全绿) — 修 check_hit 射程边界 bug: distance>=max_range → False, 与 distance_attenuation 保持一致; 补 TestPlayerHistory(9) + TestBotAttachmentsIntegration(3)
commit fa2f6dccb59e (2026-09-14) fix: check_hit 边界 >= 统一 + ELO history 9 测试 + Bot 配件 3 集成测试 (288 pytest 全绿) — 修 check_hit 射程边界 bug: distance>=max_range → False, 与 distance_attenuation 保持一致; 补 TestPlayerHistory(9) + TestBotAttachments
api-gateway 9处 localhost→host.docker.internal (BUG-0078 IPv6重演) + JWT dev/prod 开关 + 2个新 Skill (go-build-gotcha / auth-middleware-not-mounted)
commit 4942d7c75bb1 (2026-09-21) fix: api-gateway 9处 localhost→host.docker.internal (BUG-0078 IPv6重演) + JWT dev/prod 开关 + 2个新 Skill (go-build-gotcha / auth-middleware-not-mounted)
fix+feat(rag): RAG 核心 bug 修复 + ingest 管线 + provider 选择
commit 1b4a5878b672 (2026-09-22) fix+feat(rag): RAG 核心 bug 修复 + ingest 管线 + provider 选择
loadRoute 不静默吞错 + SimulationCaseViewer 真实 bug 修复
commit 7e02b16c8c6b (2026-09-21) fix: loadRoute 不静默吞错 + SimulationCaseViewer 真实 bug 修复
vite base 未设置 /admin/ —— /assets/* 落到主站 404(同款 BUG-0286)
commit 6a0b63dbfffa (2026-10-01) fix(admin): vite base 未设置 /admin/ —— /assets/* 落到主站 404(同款 BUG-0286)
sandbox 评估覆盖 10→30 扩大 + BUG-0138/026/027/028 补台账 + evolution skill 最终版
commit c9a329207a76 (2026-09-21) fix: sandbox 评估覆盖 10→30 扩大 + BUG-0138/026/027/028 补台账 + evolution skill 最终版
BUG-DS-047~050 + report AI capability readiness prod-verified
commit 881fe3a85240 (2026-10-07) fix(ledger): BUG-DS-047~050 + report AI capability readiness prod-verified
api-gateway 补 zones/permissions RBAC 代理路由 + sandbox DB 启动重试 (防 BUG-0080 同 user-auth) + 前端 SPA 代理链 7/7 全通
commit cfdc23f256d8 (2026-09-21) fix: api-gateway 补 zones/permissions RBAC 代理路由 + sandbox DB 启动重试 (防 BUG-0080 同 user-auth) + 前端 SPA 代理链 7/7 全通
create_project.py slugify 参数 bug 修复 + README 工具链文档更新
commit 528867fbce70 (2026-09-10) fix: create_project.py slugify 参数 bug 修复 + README 工具链文档更新
AdminAssistant ABILITY_REGISTRY 注释与实现一致(BUG-DS-043)
commit f32e3284d25a (2026-10-07) fix(admin): AdminAssistant ABILITY_REGISTRY 注释与实现一致(BUG-DS-043)
修正 Cockpit has_governance 扫描 bug 误判 → 空壳项目稀释
commit 2f53faab7ea0 (2026-09-20) fix(119): 修正 Cockpit has_governance 扫描 bug 误判 → 空壳项目稀释
MCP 11 条 strict:true 升级(BUG-DS-041 验证闭环)
commit 3b34c8a779af (2026-10-07) fix(capability): MCP 11 条 strict:true 升级(BUG-DS-041 验证闭环)
nginx conf 冲突 + rewrite bug → Docker 内部版 default.conf
commit 33a1036a29a0 (2026-09-20) fix(P6): nginx conf 冲突 + rewrite bug → Docker 内部版 default.conf
别名组策略一致性 + list_matrix 过滤/去重顺序 bug + 唯一性门禁
commit 7667161529dc (2026-10-02) fix(ucm): 别名组策略一致性 + list_matrix 过滤/去重顺序 bug + 唯一性门禁
Bundle ID standard → lite (was copy-paste bug)
commit afb2e14d67e8 (2026-10-09) fix(lite-ios): Bundle ID standard → lite (was copy-paste bug)
BUG-DS-047 Args helper safe cast + fail-before tests
commit 1e56aa8d2d26 (2026-10-07) fix(mcp): BUG-DS-047 Args helper safe cast + fail-before tests
GAS-01 修复 caeResult 作用域 bug + 加 error log
commit ebd941ef7fd9 (2026-09-19) fix(gas): GAS-01 修复 caeResult 作用域 bug + 加 error log
BUG-DS-053 GlobalExceptionHandler 缺 405 handler — HTTP method mismatch 不再返回 500
commit 942c074bfbeb (2026-10-08) fix(core): BUG-DS-053 GlobalExceptionHandler 缺 405 handler — HTTP method mismatch 不再返回 500
商品访问统计 SQL LIKE 不匹配(P0 数据 Bug)
路由为 `/products/:id`,SQL 用 `LIKE '%/product/%'`(单数),无法匹配 `/products/`(复数)
SQL 统计条件改为 `page_path LIKE '/products%'``emergency-recover-502` 误 DROP 表
应急恢复脚本误删 `system_dict_*`、`certificate_alerts` 等核心业务表。
从 Flyway SQL 重新执行建表语句重建。CompanyAliasOverviewController.findAll() 加载 27560 题导致 OOM/504 管理后台企业配置页空白
CompanyAliasOverviewController.aliasOverview() 调用 questionRepo.findAll() 把全部 27560 道题加载到 JVM 内存,再逐题正则匹配 {{COMPANY_X}} 引用,导致 OOM 或 nginx 120s proxy_read_timeout 超时,前端 API 调用失败 rows 为空显示暂无企业数据
pgvector Windows 编译 + PowerShell 环境手动激活 + mockEmbed NaN
Windows PowerShell 安全沙箱禁 cmd /c 调用,nmake/cl 不在 PATH;pgvector mockEmbed 用 readDoubleBE 读取 8-byte double 返回 NaN
Fix nginx location directive position error
commit 6bd4950a5708 (2026-02-12) Fix nginx location directive position error
add rewrite ^/project-13/ -> / for Vite base path
commit e05a5f220ed3 (2026-10-09) fix(nginx): add rewrite ^/project-13/ -> / for Vite base path
nginx script match any server block with listen 80
commit f7321a6c6e80 (2026-02-21) fix: nginx script match any server block with listen 80
PowerShell 双引号内 $DEPLOY 本地展开为空 → 远程 rm -rf /* 删除 /etc/nginx /etc/ssl /etc/letsencrypt(critical 事故)
远程服务器 /etc/nginx /etc/ssl /etc/letsencrypt 消失;命令回显里本地变量名消失
nginx-transition.conf 移除 api/pc/admin/config-server upstream
commit de747fc7a51a (2026-10-09) fix(project-71): nginx-transition.conf 移除 api/pc/admin/config-server upstream
nginx proxy_pass 改用全限定容器名
commit 19c80027886d (2026-10-09) fix(project-71): nginx proxy_pass 改用全限定容器名
按新版文档写 http2 on; 在 nginx 1.24 上直接配置校验失败(unknown directive)
nginx -t 报 unknown directive "http2",配置无法加载;因为 -t 校验失败即中止、未 reload,所以线上服务不受影响(但也意味着新站点起不来)。
host nginx project-13.conf 加 default_server
commit 93fe27f9feef (2026-10-09) fix(project-71): host nginx project-13.conf 加 default_server
re-enable auth_basic password gate on 12358.ai with htpasswd (admin)
commit 231d5091a9c1 (2026-09-29) fix(nginx): re-enable auth_basic password gate on 12358.ai with htpasswd (admin)
nginx script support fallback insert and multiple location patterns
commit 55647976e487 (2026-02-12) fix: nginx script support fallback insert and multiple location patterns
install-nginx-path 独立 server 块与现网 default_server 冲突
`/xianzhi/` 路径反代无效,访问 http://8.134.64.92/xianzhi/admin/ 时 nginx 返回默认页面而非鲜知管理后台。
(`f7f2343`):删除独立 server 块,改用 sed 将鲜知 location 注入到现有的 listen 80 server 块内。Fix duplicate location error in nginx config
commit eff3d290dbff (2026-02-12) Fix duplicate location error in nginx config
Nginx 注入 listen80 server 块;H2 volume 用 root 用户
commit bda4e6cf91dc (2026-06-05) fix: Nginx 注入 listen80 server 块;H2 volume 用 root 用户
修复pm00-nginx.conf被PowerShell变量替换问题
commit 4e8cf2dcad42 (2026-07-08) fix: 修复pm00-nginx.conf被PowerShell变量替换问题
加 /api/auth/ /api/admin/ /api/ 兜底路由 — admin 登录可用了
commit d9f8d4c2f3df (2026-10-09) fix(nginx): 加 /api/auth/ /api/admin/ /api/ 兜底路由 — admin 登录可用了
Vue Router base path for /zhiyin/ subpath (fix nginx 404 on menu click)
commit ddf9061b0283 (2026-06-05) fix: Vue Router base path for /zhiyin/ subpath (fix nginx 404 on menu click)
新云服务器初始化不足:docker compose/nginx/swap/sudo 五缺
119.45 迁移 project-11 时发现:docker ps 报 permission denied / docker compose 报 unknown command / nginx 没装 / swap 为 0 / sudo 需要密码。runbook Phase A 专门解决这 5 个问题。
Nginx 把 Web 静态 + API 全部 proxy 到后端 (缺分层)
所有流量 (含 3.6MB 前端静态) 都经 FastAPI; SSE 流式 AI 对话没单独配置; nginx 失去了静态文件强缓存能力
docker nginx upstream 引用不存在服务导致 crash loop
nginx 容器 Restarting (1);宿主 18001 端口无监听;外部访问 502 Bad Gateway
/usr/local/lib 坏插件导致 docker compose segfault
docker compose version 报 unknown command;docker info 显示 plugin invalid
Docker rootfs on data disk
df shows root disk 90%+ used, apt/dpkg fail, container restarts
add @types/three for Docker build
commit e83cec2ded18 (2026-02-16) fix: add @types/three for Docker build
Docker TLS 握手超时(腾讯云镜像)
`docker compose up --build` 时报错: ``` failed to solve: python:3.11-slim-bookworm: failed to resolve source metadata for docker.io/library/python:3.11-slim-bookworm: net/http: TLS handshake timeout ``` ([cursor_202606072237.md: Sections 12-13](file://d:/ai_mirror/cursor_202606072237.md))
1. `Dockerfile.cpu` 改为 `FROM python:3.12-slim`(与本机缓存一致)
2. 新增 `docker-compose.offline.yml` — 离线 Compose(`pull_policy=never`)
3. 新增 `docker-compose.redis-only.yml` — 仅启动 Redis
4. 新增 `scripts/start-dev-local.ps1` — 一键本地开发启动脚本
5. README 添加「方案 B2(推荐 Docker 用户,零构建)」说明limit tsconfig include to feedback API only for Docker build
commit 7ca1f3f87485 (2026-02-20) fix(content-service): limit tsconfig include to feedback API only for Docker build
redis 镜像改用 redis:7-alpine(服务器已有,绕开 Docker Hub 超时)
commit 545afdb6a78a (2026-10-01) fix(deploy): redis 镜像改用 redis:7-alpine(服务器已有,绕开 Docker Hub 超时)
CI 容器中安装 Docker CLI 用于部署
commit c47c07106539 (2026-07-11) fix: CI 容器中安装 Docker CLI 用于部署
copy go.sum in Docker build
commit a35c23060177 (2026-03-31) fix(project-71): copy go.sum in Docker build
Gitea Docker DISABLE_REGISTRATION legacy env var 只对首次安装生效
docker-compose 加了 DISABLE_REGISTRATION=true,docker restart gitea,访问 /user/sign_up 仍然能打开 200。容器内 app.ini 里的 DISABLE_REGISTRATION 仍然是空。
add @types/three for Docker build
commit e83cec2ded18 (2026-02-16) fix: add @types/three for Docker build
添加 actuator 依赖与 prod 配置,修复 Docker healthcheck
commit d6f37380ceb8 (2026-06-07) fix: 添加 actuator 依赖与 prod 配置,修复 Docker healthcheck
demo data UnboundLocalError, verify script encoding, Docker pip timeout
commit 414de255c9a0 (2026-06-05) fix: demo data UnboundLocalError, verify script encoding, Docker pip timeout
pnpm workspace base tsconfig noEmit:true 被 Docker 构建继承 —— 服务构建产出空 dist
user-service Docker 镜像构建成功但运行时报模块不存在——dist 目录是空的
docker compose up -d 重建 postgres 容器触发 initdb 清空数据卷
bugs 表 count 为 0,所有 bug 知识数据消失,API 返回空列表
docker-compose.prod.yml 强制 REPORT_API_KEY 环境变量
commit edbc6f4fbdfb (2026-09-20) fix(security): docker-compose.prod.yml 强制 REPORT_API_KEY 环境变量
add command-sdk dep and build step for Docker; export app for tests
commit a4775a417eba (2026-02-21) fix(content-service): add command-sdk dep and build step for Docker; export app for tests
Docker 离线 Compose 构建 apt-get 失败
([cursor_202606072237.md: Section 27](file://d:/ai_mirror/cursor_202606072237.md)):`docker compose -f docker-compose.offline.yml up --build` 在 Dockerfile 的 `apt-get` 阶段卡死,日志显示 `TLS handshake timeout` 或因代理 `127.0.0.1:10809` 的网络请求阻塞。
1. 新增 `docker-compose.prebuilt.yml` — 使用本机已有 `python:3.12-slim` 镜像,`pull_policy=never`,零构建启动
2. README 添加「方案 B2(推荐 Docker 用户,零构建)」说明
3. 确认本机已有 `python:3.12-slim` 和 `redis:7-alpine`APK URL use normalized origin and correct NEXT_PUBLIC_SITE_URL in docker-compose
commit 984dd889a98c (2026-02-12) fix: APK URL use normalized origin and correct NEXT_PUBLIC_SITE_URL in docker-compose
build PgBouncer from Alpine to avoid Docker Hub timeouts in China
commit 7d04848562cf (2026-04-13) fix(project-71): build PgBouncer from Alpine to avoid Docker Hub timeouts in China
`BROADCAST_WALL_500` — 播报墙 StringIndexOutOfBounds
`formatHistoryLine` 对 `broadcastAt` 使用 `toString().substring(0,19)`,秒为 0 时 ISO 串仅 16 字符导致越界
改用 `DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")`progressive fuzzy matching + unique session hit counting (v0.6.2)
commit 312e4e3d5411 (2026-09-17) fix(fpath): progressive fuzzy matching + unique session hit counting (v0.6.2)
Java 源文件混入 UTF-8 BOM —— package 声明前多出不可见字符致编译/验证失败
ddl-auto=validate 或编译期报错,但源码肉眼看完全正常;十余个 Entity 文件同时出问题
fail2ban rate limiting 导致开发者 IP 被封 SSH,批量推送中途断连
批量推送中途开发者本地 SSH 主力机 Connection refused,fail2ban-client status sshd 显示你的 IP 在 BANNED list。10 分钟后自动解封。
test_state_tampered 构造性 flaky —— 改末位 base64 字符可能解码出相同字节
commit 7134baf2b7e2 (2026-10-02) fix(tests): test_state_tampered 构造性 flaky —— 改末位 base64 字符可能解码出相同字节
Next.js standalone rebuild 后 nginx upstream 指向旧 IP → 502
所有 /scenes/* 等前端页面返回 502 Bad Gateway
INSTR-594 批次2 — 前缀表补 A 型(小写d+workspace段)、删不可达正则回调、闸门改实时 relocatable 判定
commit 1aac24e586d3 (2026-10-05) fix(scripts): INSTR-594 批次2 — 前缀表补 A 型(小写d+workspace段)、删不可达正则回调、闸门改实时 relocatable 判定
每个项目独立 IP+端口过渡入口
commit 40067362f40d (2026-10-09) fix(project-71): 每个项目独立 IP+端口过渡入口
deploy 脚本硬编码 SERVER/EXPECTED_IP 反模式(80+处)
扫描活跃项目源码发现 80+ 处硬编码 IP(project-08 28处 / clean-genius-pro 50+处 / codeshare 1处)。退役服务器 8.134 的脚本全部失效;未来 AI Agent 读了这些死代码会误以为是正常模式,继续在新项目里硬编码。
入库 API 的兜底脱敏未覆盖自有公网 IP 与绝对路径,且 fix_command 完全绕过脱敏
对生产知识库做脱敏核查,发现公开页面上仍暴露内部资产标识:自有服务器公网 IP 与绝对路径(含内部项目名与目录结构)。而入库路径本应自动脱敏。
SELECT count(*) FROM bugs WHERE to_jsonb(bugs)::text ~ '<自有IP正则>';for f in (title, fix_command, detect_command): value = sanitize_pii(value) # 消除绕过正则替换过度匹配 —— 把 file:// 前缀吃掉,产生 filbrain-service 之类畸形串
为去掉 Windows 绝对路径,用正则 '[A-Za-z]:\\[^\\]*\\' 批量替换,结果 file://D:\<proj>\brain-service\… 变成 filbrain-service\…;另一处 http://<server> 变成 htt<server>(丢了 p://)。
grep -rEo 'fil[a-z]|htt[a-z]*<' <target>UPDATE <t> SET <c> = replace(<c>, 'htt<server>', 'http://<server>') WHERE <c> ~ 'htt<server>';OAuth 用户 cookie 只 decodeURIComponent 未 JSON.parse:setUser 存进字符串,下游属性访问炸
登录后头部不显示用户名;typeof user === 'string'
跨云安全组 NAT 出口 IP 与公网 IP 不一致
119.45 → 47.102:15000 registry 端口始终 BLOCKED,即使加了 119.45.168.244/32 白名单
适配 {{DBUG_PROD_IP}} 实际环境
commit 383488934cc2 (2026-10-01) fix(deploy): 适配 {{DBUG_PROD_IP}} 实际环境
apply_to_yaml 正则误伤同名字段:strategy_selection/calibration.bounds 下的 capability 被一起改掉
校准后 weights.yaml 里 strategy_selection/bounds 段的值也变了;路由行为异常漂移
把常量名当字符串字面量比较 —— 'PORTAL_CLIENT_ID' 永远不等于 PORTAL_CLIENT_ID
微信登录回调里 portal 分支判断永远为 false,登录后不回官网首页而是走错分支
nginx 缓存容器名解析结果 —— 被依赖容器 recreate 后持续 502
上游容器重建后新 IP 生效、容器自身 healthy,但 nginx 仍持续返回 502,错误日志里 upstream 指向【旧 IP】。重启 nginx 后立刻恢复。
nginx -T 2>/dev/null | grep -n proxy_pass | grep -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+'; docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}} {{end}}' <container>docker restart <nginx-container> # 或 nginx -s reload(需 nginx 能重新解析)INSTR-594 批次2 — 前缀表补 A 型(小写d+workspace段)、删不可达正则回调、闸门改实时 relocatable 判定
commit 1aac24e586d3 (2026-10-05) fix(scripts): INSTR-594 批次2 — 前缀表补 A 型(小写d+workspace段)、删不可达正则回调、闸门改实时 relocatable 判定
frontend TS strict 零错误 — 17 个 strict 错误全部清零
commit f465a13e4802 (2026-09-12) fix: frontend TS strict 零错误 — 17 个 strict 错误全部清零
Tab 深链接不读 query 参数 —— 刷新/分享链接后 Tab 状态丢失
带 Tab 参数的链接打开后总停在第一个 Tab;分享/收藏/刷新全部失去 Tab 上下文。
grep -rn 'useState.*默认tab' <组件> | 核对初始化是否读 searchParamspytest FastAPI dependency_overrides 未生效 — auth 路由查生产 DB 而非测试 DB → 3 failing tests
3 failing auth tests (test_login_success 401, test_refresh_token_success KeyError, test_login_inactive_user 401≠403); 扩展到 test_knowledge_freshness.py 也有 auth 依赖 401; 全量 743 items 里至少 7 个 auth 相关 fail
6 处 SQL 把主表写成 question(实际表名 questions)
/api/stats/dashboard 永远返回 {"code":-1,...},而 HTTP 状态码是 200(被 GlobalExceptionHandler 兜底吞成成功语义)⇒ 看板长期不可用且监控看不出失败。
Docker 容器内 PostgreSQL 列缺失导致 FastAPI ORM 查询 500
MCP check_bug_exists / report_bug_knowledge 全部返回 500,飞轮生产端完全阻断
maybeAdvanceOrderAfterSorting 状态机逻辑缺陷
当订单所有明细行分拣完成后(`pending == 0`),`maybeAdvanceOrderAfterSorting` 将订单状态设为 `SORTING` 而非 `SHIPPED`,导致订单永远停留在分拣状态,无法进入发货流程。
归一化 Query 默认对象 —— 运维自检脚本直接调用时会把 Query(None) 带进 SQL(生产实测 DataError);与 list_bugs 同类问题,统一用 _plain() 兜住
commit fcd78a702512 (2026-10-03) fix(review): 归一化 Query 默认对象 —— 运维自检脚本直接调用时会把 Query(None) 带进 SQL(生产实测 DataError);与 list_bugs 同类问题,统一用 _plain() 兜住
修复 x64 INPUT 结构体尺寸导致的 SendInput 静默失效
commit e13b3233d07b (2026-10-03) fix(win_input): 修复 x64 INPUT 结构体尺寸导致的 SendInput 静默失效
Express 4 贪婪通配符 /:slug(*) 吞掉所有子路由,必须用 query param
访问 /repo/omnispark/project-52/branches 返回 404 或被 slug 路由吞掉返回 repo detail。
ignore startup options parameter for client statement timeout
commit 24475b1f0f6b (2026-04-16) fix(pgbouncer): ignore startup options parameter for client statement timeout
归一化 FastAPI Query 默认对象 —— 直接调用时形参是 Query(...) 而非解析值,导致 5 条 list_bugs 单元测试 TypeError
commit 0b0ea66796d5 (2026-10-03) fix(list_bugs): 归一化 FastAPI Query 默认对象 —— 直接调用时形参是 Query(...) 而非解析值,导致 5 条 list_bugs 单元测试 TypeError
LlmGatewayService 多构造器 Spring 无法选择注入点:主构造器补 @Autowired
Spring 上下文启动失败:Unable to determine... constructor
AdminReportService native SQL 列名错误 — refund_status→status, approved_at→complete_time, status IN→DONE
commit 2d97918c40d9 (2026-09-24) fix: AdminReportService native SQL 列名错误 — refund_status→status, approved_at→complete_time, status IN→DONE
profit-center tab 带 query.tab 参数时 activeTab 初始化不读 query
commit 016337f6af85 (2026-09-22) fix(finance): profit-center tab 带 query.tab 参数时 activeTab 初始化不读 query
Pydantic BugResponse 声明 list=[] 但 ORM JSON NULL 列返回 None 导致 ValidationError
search_bug / list_bugs / 任何返回 BugResponse 的 API 全部 500,飞轮消费端完全阻断
native SQL 与实体映射漂移 —— 改列名/枚举后报表接口集体失效
管理端报表接口报 SQL 异常:列不存在;或枚举值过滤条件静默匹配不到任何行。
grep -rn 'nativeQuery = true' --include='*.java' # 逐条核对列名与枚举字面量给返回 Page<T> 的方法加 @Cacheable —— 第二次命中直接 ClassCastException
商品分页接口首次请求正常,第二次开始抛 ClassCastException——反序列化缓存值得到 LinkedHashMap,无法 cast 回 PageImpl。
连续 curl 同一接口两次;第二次抛 CCE 即命中grep -rn '@Cacheable' --include='*.java' | grep -iE 'page|Page<' # 排查同类地雷Helm Chart values 恢复 postgresql/redis enabled=true + .gitignore 添加 coverage.xml
commit 348c73da7f41 (2026-09-14) fix: Helm Chart values 恢复 postgresql/redis enabled=true + .gitignore 添加 coverage.xml
AdminController Query 参数无 ParseIntPipe 导致 skip=NaN Prisma 500
GET /v1/admin/users 不带 query 参数时 Prisma 抛 500,带 page=1&limit=20 时正常
修复 admin.controller.ts 4 个预存 TS 错误 (Optional 不是 pipe,用 ParseIntPipe.optional 代替)
commit 1c34de3e31cf (2026-10-10) fix(admin): 修复 admin.controller.ts 4 个预存 TS 错误 (Optional 不是 pipe,用 ParseIntPipe.optional 代替)
Flyway 未启用 + ddl-auto:none 导致 V110/V111 生产库未执行
生产库调用 /api/pk/* 返回 relation does not exist 错误;PK 全链(后端代码已上线但 DB 缺表)在生产不可用
PowerShell 5 不支持 && 语法,写 bash 风格多命令会解析失败
PowerShell 执行 `ssh ubuntu@{{GITEA_IP}} "docker restart gitea && docker ps"` → PowerShell 本地解析 && 报错,SSH 连接还没发出去。
批次32-33 — 7子系统confidence梯度断裂全修复 + CosineAnnealing 突破训练平台
commit c55d87635376 (2026-09-17) fix: 批次32-33 — 7子系统confidence梯度断裂全修复 + CosineAnnealing 突破训练平台
apt 国内镜像源 + frontend TS 类型修复
commit 6f52f75841e4 (2026-09-16) fix: apt 国内镜像源 + frontend TS 类型修复
修复浅色主题黑底与深色主题刺眼白块 (B-20)
commit 69971564069b (2026-10-04) fix(theme): 修复浅色主题黑底与深色主题刺眼白块 (B-20)
Gitea 容器重建后 host key 变化:服务器 git pull 被 known_hosts 旧条目拒绝(MITM 警告)
服务器 git pull 突然失败并出现 MITM 警告;本地开发机却正常(走 gitea..cn:2222 域名且 key 未变或已更新)
recorrelate log + test baselines (dynamic, not hardcoded)
commit 24fa25c438d7 (2026-09-25) fix: recorrelate log + test baselines (dynamic, not hardcoded)
零数据不再渲染成 STATUS.md;保护人工补充段(两处,均有实测依据)
commit bbac60920d79 (2026-09-30) fix(status): 零数据不再渲染成 STATUS.md;保护人工补充段(两处,均有实测依据)
ruff format 3 files + refresh STATUS.md numbers (178 tests, 90.64% coverage, 23/23 smoke)
commit c8ce2f989870 (2026-09-16) fix: ruff format 3 files + refresh STATUS.md numbers (178 tests, 90.64% coverage, 23/23 smoke)
管理后台自检改走宿主 127.0.0.1:18001(实测容器内 wget localhost 被拒),并在产物缺失时真正失败而不是只告警
commit e9b1d36adb3e (2026-10-03) fix(deploy): 管理后台自检改走宿主 127.0.0.1:18001(实测容器内 wget localhost 被拒),并在产物缺失时真正失败而不是只告警
全产品线测试修复 + 文档同步 · 822 tests 全线通过
commit ebf7b29a56a6 (2026-09-14) fix: 全产品线测试修复 + 文档同步 · 822 tests 全线通过
迁移 7 文件模块级依赖覆盖到 autouse fixture,消除依赖污染
commit 490956fd86c0 (2026-08-13) fix(test): 迁移 7 文件模块级依赖覆盖到 autouse fixture,消除依赖污染
完工进度修复 — P0-P5 全链路补全
commit 8854d617814b (2026-09-10) fix: 完工进度修复 — P0-P5 全链路补全
紧急修复 146 项目 _shared 硬复制 → Junction 软链接
commit ce3080236cb4 (2026-09-20) fix(织识者): 紧急修复 146 项目 _shared 硬复制 → Junction 软链接
total_bugs 按行去重 —— by_key 每条目 3 个键,直接 len() 把生产 409 行报成 1227(运营会误判库容)
commit 829f36866a02 (2026-10-03) fix(data-quality): total_bugs 按行去重 —— by_key 每条目 3 个键,直接 len() 把生产 409 行报成 1227(运营会误判库容)
plot_curves 重写 — 优先检测 dialogue_rounds 画 S-curve 训练曲线 + 4子图布局
commit 81d25f14b164 (2026-09-17) fix: plot_curves 重写 — 优先检测 dialogue_rounds 画 S-curve 训练曲线 + 4子图布局
功能完整性收口——报表页真实核心对接(P0) + 调整分录/强制改密/导入预检/XBRL 四能力补齐,版本 2.32.0
commit dbf244ee72fd (2026-10-03) fix(桌面端): 功能完整性收口——报表页真实核心对接(P0) + 调整分录/强制改密/导入预检/XBRL 四能力补齐,版本 2.32.0
showAprPresets presets.forEach is not a function — 后端路由不存在导致 res.data 非数组
用户点击审批预设模板按钮时浏览器抛 TypeError: presets.forEach is not a function, 预设弹窗打不开 (空数据场景).
首登强制改密成功后作废会话,要求新密码重新登录
commit 162563c1f306 (2026-10-03) fix(auth): 首登强制改密成功后作废会话,要求新密码重新登录
counts() 漏统计 ADVISORY —— 修"™/® 减少永不告警"的自身缺陷
commit 07b487a17451 (2026-10-03) fix(guard): counts() 漏统计 ADVISORY —— 修"™/® 减少永不告警"的自身缺陷
LLM 模板批量生成的题目双盲审仅 66% 通过 —— 306 题同质化选项组 + 模板随机种子缺陷
题库上线后用户反馈干扰项荒谬(『正确答案过于明显』)、部分题目选项雷同形似送分题;抽检才暴露批次级系统性质量问题。
对题库 options 两两算 Jaccard 相似度聚类;按生成批次分组抽检统计通过率硬编码 sk-placeholder 替换为 settings.llm_api_keys
commit b5f272f75370 (2026-09-16) fix(llm_service): 硬编码 sk-placeholder 替换为 settings.llm_api_keys
激活 load_dotenv() 让 .env 环境变量生效
commit 3d4466142379 (2026-09-10) fix: 激活 load_dotenv() 让 .env 环境变量生效
boundary.no_gov 红线清理(8项目) + STATUS v6.3 纠正Cloudflare叙事 + portal rebuild
commit 7d7609cfdaef (2026-09-20) fix: boundary.no_gov 红线清理(8项目) + STATUS v6.3 纠正Cloudflare叙事 + portal rebuild
搜索质量评测不可复现 —— hash() 每进程随机化 + 仅 10 锚点
commit 22092722ceeb (2026-10-02) fix(craftforge): 搜索质量评测不可复现 —— hash() 每进程随机化 + 仅 10 锚点
治理套件随机触发进程级 access violation(0xC0000005),崩溃点漂移在 PyYAML 解析处;已用“每文件独立进程 + 崩溃重试”隔离缓解,根因未定位
根治理套件(40 文件 / 518 tests)随机整轮崩溃,退出码 `0xC0000005`(Python 侧 `rc=3221225477`);`Windows fatal exception: access violation` 出现在主线程;`pytest -n 4` 表现为 `worker 'gw0' crashed while running 'tests/test_smart_router_integration.py'`;崩溃点漂移,同一命令连跑 10 次约 3–4 次崩(三文件组合实测 4/10);崩溃后残留 CPU=0、工作集≈0.4MB 的僵死进程。
根因未定位,采用**工程隔离**(非修复):`scripts/test_ci.py` 把根套件改为**每个测试文件一个独立进程**(一次崩溃只废掉一个文件而不是整轮)、每个进程加超时(默认 300s,超时按失败处理并 kill)、对原生崩溃码 `0xC0000005` 自动重试并在汇总里**显式打印 FLAKY**(不静默吞掉)。
```bash
# 修复前:串行 ~55-60% 处整轮崩溃(约 40% 概率)
python -m pytest tests -q
# 修复后:每文件独立进程 + 超时 + 崩溃重试 + FLAKY 显式报告
python scripts/test_ci.py --suite root
```workspace 存在两个企业级运维系统半成品(infra-deploy 103 Python 文件 / deploy-pulse 19 Go 文件),但因绑定已退订 IP 8.134.64.92 完全未被使用
三台服务器手动 SSH + 手动 docker compose up -d,无 inventory / 无端口规划 / 无回滚机制 / 运维知识零沉淀到 Bug 飞轮
reset_for_new_match clear_bots + 15 regression tests (203 total)
commit 4b4df36f24dc (2026-09-12) fix: reset_for_new_match clear_bots + 15 regression tests (203 total)
INSTR-598/597 加固 — 590 防覆盖闸门 + 597 自排除 + 五口径实测更正
commit 8d151ccf416e (2026-10-05) fix(scripts): INSTR-598/597 加固 — 590 防覆盖闸门 + 597 自排除 + 五口径实测更正
生产服务器 47.102 docker.io 镜像拉取超时修复: registry-mirrors (daocloud/aliyun) 全容器 11 秒恢复
docker build / docker pull python:3.12-slim 报 TLS handshake timeout 或 DeadlineExceeded;docker compose up --build 失败;生产后端容器 rebuild 因拉不到镜像跳过(之前 session 里 BugUpdate schema 无法 rebuild 就是这个原因)
project-75 投递链两处缺陷 —— 同秒覆盖丢消息 + 丢弃静默
commit 0fbeae22625b (2026-09-30) fix(bus): project-75 投递链两处缺陷 —— 同秒覆盖丢消息 + 丢弃静默
content_fp 语义修复 —— 45.6% 的"内容指纹"其实是路径 md5
commit 37c9847ead7a (2026-10-02) fix(craftforge): content_fp 语义修复 —— 45.6% 的"内容指纹"其实是路径 md5
INSTR-598/597 加固 — 590 防覆盖闸门 + 597 自排除 + 五口径实测更正
commit 8d151ccf416e (2026-10-05) fix(scripts): INSTR-598/597 加固 — 590 防覆盖闸门 + 597 自排除 + 五口径实测更正
PROJECT_121 元枢 current_stage 校正为阶段十二 · 迭代演进
commit c4a0fb64fac3 (2026-10-02) fix(registry): PROJECT_121 元枢 current_stage 校正为阶段十二 · 迭代演进
返回官网跳转到 omnispark.cn 而非根路径
commit df84ddd554f9 (2026-09-10) fix: 返回官网跳转到 omnispark.cn 而非根路径
Docker 恢复 + payment shutdown + rider-app path + 订单状态机 + E2E PASS
commit f6a5a2a3993b (2026-09-20) fix: Docker 恢复 + payment shutdown + rider-app path + 订单状态机 + E2E PASS
Header JSON.parse user cookie + UC_INTERNAL_ORIGIN for container->UC HTTP
commit 298bce759dc1 (2026-09-16) fix(oauth): Header JSON.parse user cookie + UC_INTERNAL_ORIGIN for container->UC HTTP
fix+feat: 修复 revert 误伤残留 + M16 决策轨迹检测
commit ffff0163117d (2026-09-20) fix+feat: 修复 revert 误伤残留 + M16 决策轨迹检测
DB/Redis 口令暴露在 /proc/<pid>/cmdline(ExecStart 用 -D 传口令)
系统单元把口令以 --spring.datasource.password / --spring.data.redis.password / --app.jwt.secret / --cognx.uc.client-secret 形式放进 ExecStart;/proc/<pid>/cmdline 权限为 0444(与进程属主无关,任何本机用户可读),而正确的载体 /proc/<pid>/environ 是 0400 root。实测非特权用户可读到 2 行 password=。
根路径路由纠偏 — / = 官网, /admin = 管理后台
commit 9de87ab23c07 (2026-09-10) fix: 根路径路由纠偏 — / = 官网, /admin = 管理后台
SecurityConfig 回归:计费端点(agent/query、image-query)被 permitAll 暴露,匿名可烧 DashScope 配额
未登录可直接调 AI 端点成功;配额消耗异常
Gitea 批量推送静默失败:API 返回 success 但实际 refs 没写进去
批量脚本跑完显示 136 全 success,后来检查 project-07 在 Gitea 上是空的(有仓库但无 refs),dragoanscale/project-07/gic-core 等都缺 refs。重新 SSH push 才成功。
批量发布 draft 知识: 728 条 confidence>=0.70 从 is_published=false 变 true → 消费端 API 从 441 条变 984 条
飞轮知识生产(git_sweep 450+ 条入库)→ 消费(search_bug)管道堵死;AI Agent 调 search_bug 只能搜到 441 条 import/手动来源的,git_sweep 收割的全漏掉;search_bug('powershell') 之前命中 17 条(全是 import 来源),批量 publish 后命中 172 条
补上 fix_type 修正的【真实回滚数据】—— 原缺 ORIGINAL 表
commit cbbcba751b12 (2026-10-01) fix(data): 补上 fix_type 修正的【真实回滚数据】—— 原缺 ORIGINAL 表
sandbox_tasks → prompt_genes 外键约束导致进化新基因 upsert 必然 FK 冲突
进化产生的新基因还没在 prompt_genes 注册时,sandbox 创建任务引用它直接违反外键约束失败
赊账开单先入库后校验信用
`createManualOrder()` 中订单主表和明细行先入库,然后才执行 `validateCredit()` 信用校验。若信用额度不足,`BizException` 抛出,但订单和明细已写入数据库成为 DRAFT 脏数据。 ```java orderMapper.insert(order); // ← 先入库 // ... 插入订单明细 ... order.setTotalAmount(total); orderMapper.updateById(order); if (isCredit == 1) { validateCredit(customer, total, boothId); // ← 后校验 } ```
修崩溃 —— prev.get(health,100) 在值为 null 时返回 None ⇒ None-int 崩溃
commit 4dfca4d65431 (2026-09-30) fix(scan): 修崩溃 —— prev.get(health,100) 在值为 null 时返回 None ⇒ None-int 崩溃
drizzle 用 db.execute(sql`BEGIN;`) 手写事务 —— postgres driver 不允许直接执行事务控制
账号合并(迁移 binds + 删旧用户)执行时事务控制语句报错或语义失效,多条写操作无原子性
connector_client dry_run 模式仍把事件文件移到 archive,无法重跑 dry_run
python connector_client.py --dry-run 第一次处理了所有 inbox 文件,第二次再跑 --dry-run 显示 inbox=0。需要手动把 archive 里的文件移回 inbox 才能重跑 dry_run。
代码与知识库对齐 — dry-run-project-71.sh 补 -e、AI-ERROR_CHECK_LIST 改职责型描述、README 补全 9 个脚本 + 3 个 Certbot 脚本分两类
commit d13f2b763c62 (2026-09-17) fix: 代码与知识库对齐 — dry-run-project-71.sh 补 -e、AI-ERROR_CHECK_LIST 改职责型描述、README 补全 9 个脚本 + 3 个 Certbot 脚本分两类
backward compat shim + add WeCom/DingTalk unit tests
commit 5cfdd8ce0e67 (2026-09-16) fix(alert): backward compat shim + add WeCom/DingTalk unit tests
局部导入作用域错误 —— 函数内 import 不外泄,另一函数调用即 NameError
某后台线程启动成功、日志显示 scheduler started,但紧接着第一次扫描就报 NameError: name 'xxx' is not defined,功能实际不可用。而代码里【明明有】from .alerts import check_and_alert。
python3 -m pyflakes <module>.py | grep F821 # 或 rg -n 'def .*\n(.|\n)*?from .* import' 找函数内 importdef _scan_and_renew(...):
from .alerts import check_and_alert # 补上局部导入
...
# 更好的做法:把 import 移到模块顶层omniproject-71 29/29 角色加加载契约头部 Prompt v2.0+ — 织识者(18) 治理修复第二轮
commit 6f2b9c7dedde (2026-09-20) fix: omniproject-71 29/29 角色加加载契约头部 Prompt v2.0+ — 织识者(18) 治理修复第二轮
移除 ChatWidget 快捷提示里的 OmniSpark 写死内容
commit 3363592d14a7 (2026-09-23) fix(frontend): 移除 ChatWidget 快捷提示里的 OmniSpark 写死内容
Pipeline step runner self-healing — validate_tier / put_trust / put_genome / filter_verify 从项目状态或默认值填充 params
commit 925c8ca19ed8 (2026-09-17) fix: Pipeline step runner self-healing — validate_tier / put_trust / put_genome / filter_verify 从项目状态或默认值填充 params
9 项目 — 从 3 demo → 3 demo + 6 生产灯塔
commit 73720c13df7c (2026-10-05) fix(seed): 9 项目 — 从 3 demo → 3 demo + 6 生产灯塔
cache multi-key — workspace|topN|skipGit
commit 7915ac2d88bc (2026-09-17) fix(FleetScan): cache multi-key — workspace|topN|skipGit
pyproject.toml 包发现配置 — 让 pip install -e . 正常工作
commit 8d0a0881f492 (2026-09-12) fix: pyproject.toml 包发现配置 — 让 pip install -e . 正常工作
unindexed_scan 需 URL 解码 INDEX.md 链接,否则 %20 行被误计为缺失
commit f92cc3aee228 (2026-09-30) fix(kcp-ingest): unindexed_scan 需 URL 解码 INDEX.md 链接,否则 %20 行被误计为缺失
__post_init__ bridge + on_match_end fail-open + boundary scan
commit 7ddba076d958 (2026-09-12) fix: __post_init__ bridge + on_match_end fail-open + boundary scan
batch79 full subsystem conf audit + memory/workspace dense gradient
commit a59d308d2fbf (2026-09-20) fix: batch79 full subsystem conf audit + memory/workspace dense gradient
audit mock + glob pattern + streaming bridge lifecycle
commit 37ff658f5fda (2026-09-17) fix: audit mock + glob pattern + streaming bridge lifecycle
comprehensive audit - 12 fixes across pages, styles, API endpoints
commit be23699f84db (2026-07-12) fix(audit): comprehensive audit - 12 fixes across pages, styles, API endpoints
迁移 SQL 两处方言/约束 bug:CREATE TABLE 内联 INDEX 是 MySQL 方言,分区表 PK 缺分区列
psql 执行迁移报语法错误 / 主键定义错误;0 张表建成
INSTR-582 META-005 三处引用失效修正 + 全 docs/ 链接普查
commit 2c99a0e1c0f9 (2026-10-04) fix(docs): INSTR-582 META-005 三处引用失效修正 + 全 docs/ 链接普查
pass cursor to get_user_tenants in auth/me
commit 409a22493003 (2026-05-01) fix(auth): pass cursor to get_user_tenants in auth/me
allow get_user_tenants to reuse cursor
commit 8072bc30bfc4 (2026-04-30) fix(auth): allow get_user_tenants to reuse cursor
security audit - add @require_token to /api/status, /api/tasks, /api/tasks/<id> - These 3 read-only APIs leaked domain inventory + task history without auth - Updated test_dogfood S7: status/tasks now require token, health/ready still anon (k8s probe) - A
commit a171cb7803da (2026-09-12) fix: security audit - add @require_token to /api/status, /api/tasks, /api/tasks/<id> - These 3 read-only APIs leaked domain inventory + task history without auth - Updated test_dogfood S7: status/task
audit_insert UIP 侧自动维护独立哈希链
commit ad1aa6ac5504 (2026-09-20) fix(gas): audit_insert UIP 侧自动维护独立哈希链
R1+R2 trust chain — vault exempt removal + policy auth enable + wildcard hardening
commit cbefdd834969 (2026-09-11) fix(security): R1+R2 trust chain — vault exempt removal + policy auth enable + wildcard hardening
Gitea push unpacker error:强推能解决(可能与 Gitea Docker git 用户权限或 pack 大小有关)
批量推送 136 仓库中 audix 等少数仓库普通 push 报错 unpacker error。换 git push -f 成功。
解牛者角色跨 14 个项目萃取融合 → project-11 专属版本;所有原版都没有架构层穿透(Layer 0-7)
## 架构层标注 primary_layer: L5 框架层(Prompt 工程) crossing_layers: L5 → L3 → L7 ## 因果链 symptoms → Layer 5: 19 个项目的解牛者角色都停留在三层萃取(What/How/Why),无架构层穿透 → Layer 3: 角色设计时没有架构层分类(只有 fix_type 业务域分类:backend-logic/frontend-ux/deploy-config) → Layer 4: 所有解牛者 prompt 都是'项目定制版',无跨项目共享的架构穿透模型 → Layer 7: 14 个项目各自解牛者有 14 套模板,无统一基座 ## 系统风险 所有解牛者的输出只能回答'这个项目是什么',不能回答'这个 bug 暴露了哪层架构的什么特征'——这正是 project-11 深度萃取需要的能力。
dev 密钥硬编码安全加固 + P3 共享 fixture 重构
commit caafc4a1a354 (2026-09-12) fix(auth): dev 密钥硬编码安全加固 + P3 共享 fixture 重构
audit_verify_chain 重写 + CAE 默认 fail-closed + UIP PID 文件
commit d8a7c285adbf (2026-09-20) fix(gas+security): audit_verify_chain 重写 + CAE 默认 fail-closed + UIP PID 文件
Git push 自动打包损坏对象导致 fatal: data stream error,无法跳过坏 blob 单独推好的提交
批量推送 bloomwish/project-23-core 等仓库报 inflate: data stream error。git fsck 报 missing blob 或 dangling blob。push 失败但 git rev-parse HEAD 正常(HEAD 不依赖那个坏对象)。
assistant.chat timeout 15s→60s + cs page error 分类提示
commit ebf8a214a4a5 (2026-09-17) fix(ai): assistant.chat timeout 15s→60s + cs page error 分类提示
移除 /api/user/assistant/** permitAll 裸奔
commit cd174ca03be9 (2026-09-17) fix(security): 移除 /api/user/assistant/** permitAll 裸奔
Zustand Auth Store 无 persist middleware 刷新丢失登录态
浏览器登录 {{EMAIL}} 成功 但访问任何需要 user 的页面都报 请先登录
fact crate 简化 MerkleChain 不符合 OmniTruth 规范
fact crate 中的 MerkleChain 仅为文件写入简化版,缺少链式哈希验证和 Ed25519 签名,无法提供可验证的加密证据链。
(v1.1.0):集成真实 `omnitruth-chain-hash::ChainHasher`(SHA-256(prev_hash \|\| event_bytes) + Ed25519 签名)和 `omnitruth-merkle::MerkleTree`(批量默克尔根哈希聚合)到 vendor/ 目录下。治理层自身的治理系统升级 — AGENTS.md + 治理命中台账
commit 6f87ba258e42 (2026-10-07) fix(self): 治理层自身的治理系统升级 — AGENTS.md + 治理命中台账
redirect_uri 动态化 — 前端 window.location.origin 覆盖后端硬编码
commit 4b95076d0537 (2026-09-25) fix(sso): redirect_uri 动态化 — 前端 window.location.origin 覆盖后端硬编码
systemd EnvironmentFile 不剥行内注释,且 CRLF 会带入 \r —— 配置静默失效
某守护功能(OmniCert 的 auto-renew)从未启动过。配置项 OMNICERT_ENABLE_AUTO_RENEW=true 看起来已开启,但应用读到后判断『未启用』。锁文件 auto-renew.lock 从未生成。
grep -nE '^[A-Za-z_][A-Za-z0-9_]*=.*#' /etc/default/*; file /etc/default/* | grep CRLFpython3 - <<'EOF'
import re
p='/etc/default/<svc>'
out=[]
for ln in open(p,encoding='utf-8').read().split('\n'):
ln=ln.rstrip('\r')
m=re.match(r'^([A-Za-z_][A-Za-z0-9_]*)=(.*?)(\s+#.*)$', ln)
if m: out += ['%s=%s' % (m.group(1), m.group(2).strip()), m.group(3).strip()]
else: out.append(ln)
open(p,'w',encoding='utf-8').write('\n'.join(out))
EOF
systemctl daemon-reload && systemctl restart <svc>route.ts cookieDomain → .omnispark.cn 跨子域共享
commit dd8902121f82 (2026-09-24) fix(uc): route.ts cookieDomain → .omnispark.cn 跨子域共享
移除 route.ts 重复 domain,让 ctx.cookieDomain 统一处理
commit b15ca1b696e0 (2026-09-24) fix(uc): 移除 route.ts 重复 domain,让 ctx.cookieDomain 统一处理
uc_session cookie domain='.omnispark.cn' — 跨 accounts/cognx/cpa 等所有子域共享
commit ee00aa160b0b (2026-09-24) fix(uc): uc_session cookie domain='.omnispark.cn' — 跨 accounts/cognx/cpa 等所有子域共享
run_acceptance.ps1 ASCII output for Windows PowerShell encoding
commit 038a5df40aab (2026-06-07) fix: run_acceptance.ps1 ASCII output for Windows PowerShell encoding
EX-58/EX-31 修复 8 个 broken links
commit 00118c712c0b (2026-09-20) fix(hub): EX-58/EX-31 修复 8 个 broken links
EX-60 修复 4 个 broken links — EX-64 在 data 域不是 platform 域
commit d7c5aa59b5ca (2026-09-20) fix(hub): EX-60 修复 4 个 broken links — EX-64 在 data 域不是 platform 域
syncCrossPlatform 用 slug 分组导致跨平台 compareMultiplePlatforms 被跳过
跨平台同步时 compareMultiplePlatforms 返回空数组,日志显示 skipped: no matching repos found 但两个平台都有同名仓库。
GiteeAdapter platform 字段硬编码为 gitee 导致 SyncRunner 按 platform 路由失败
Gitee 新建的仓库在 SyncRunner 里被当成 GitHub 仓库,sync 时调 GitHub API 404。
align pm.conf with om-dataplatform-v1.1 root and API 8011
commit 7e5afd678db5 (2026-04-02) fix(nginx): align pm.conf with om-dataplatform-v1.1 root and API 8011
修复 DEMO_ACCOUNTS 2 个被 Rotate 的 secret + 新增 IPHub/Jingwei
commit 8aa006802d9c (2026-09-17) fix(P4): 修复 DEMO_ACCOUNTS 2 个被 Rotate 的 secret + 新增 IPHub/Jingwei
默认 modules 仅保留 compose 部署的 7 个,cultural/config/platform 移入 profile all-modules,解决服务器 Docker 构建 Child module does not exist
commit e0a6ee63d085 (2026-03-05) fix: 默认 modules 仅保留 compose 部署的 7 个,cultural/config/platform 移入 profile all-modules,解决服务器 Docker 构建 Child module does not exist
Dockerfile 补充 cultural/config/platform-service 以修复 Maven 构建
commit 830515035b5a (2026-03-05) fix: Dockerfile 补充 cultural/config/platform-service 以修复 Maven 构建
MCP tool 输入参数名必须与 Zod schema 字段名完全一致,否则 Input validation error
Agent 调用 project-52_sync_run 传 { sourcePlatform: 'gitea', targetPlatform: 'github' } → Zod validation error,重试 3 次后放弃。正确字段应该是 source 和 target。
删除重复 CORS middleware + SSE bootstrap 从 Postgres outbox 取
commit 1525e4158b72 (2026-09-16) fix(api): 删除重复 CORS middleware + SSE bootstrap 从 Postgres outbox 取
JWT 2h→7d 防频繁掉线 + rewrite EX-53 为 portal cockpit (legacy SPA→真实 href)
commit 466e0db4dd2b (2026-09-20) fix(auth): JWT 2h→7d 防频繁掉线 + rewrite EX-53 为 portal cockpit (legacy SPA→真实 href)
Controller 对不存在的资源返回 200 + null body —— 契约上 404 缺失导致客户端误判成功
前端拿到 HTTP 200 但 body 是 null/空对象,只能靠判空猜测失败原因;重试逻辑无法基于状态码工作
构建前 sed 移除 pom 中 cultural/config/platform 三模块,以 COPY 7 个部署模块,保证服务器无论代码新旧都能构建通过
commit 10065a9a2029 (2026-03-05) fix(docker): 构建前 sed 移除 pom 中 cultural/config/platform 三模块,以 COPY 7 个部署模块,保证服务器无论代码新旧都能构建通过
cloneUrl fallback to html_url + add 3-platform describe.each matrix
commit 36a132fafb46 (2026-09-12) fix(gitee): cloneUrl fallback to html_url + add 3-platform describe.each matrix
SyncRunner SHA 字段名不统一:GitHub 返回 c.sha 但 Gitea/GitLab 返回 c.id
跨平台 sync 时 CompareMultiplePlatforms 报告 100% commit 为新增但实际都存在。增量同步失效每次全量 clone + push。
Prisma 复合 @@unique map 参数不影响 TypeScript 生成的 WhereUniqueInput key
写 prisma.user.findUnique({ where: { user_platform_unique: { ... } } }) → TS red underline。必须用 userId_platform 当 key。
MCP Server 是 Trae session 启动时挂载的静态工具列表 —— session 中途启动后端 API 无法让 MCP 自动挂载
project-14 项目 session 里 AI 发现 dbug-wiki 工具不在可用列表 → AI 手动 uvicorn 启动后端 → curl 验证 API 通 → 但 session 内工具列表不变,MCP 仍不可用 → 必须重启 Trae session 才能挂上
4 bugs fixed + 1 environment-level closed — DS-017/025/027/028 + DS-038
commit 6a1d11707538 (2026-10-07) fix: 4 bugs fixed + 1 environment-level closed — DS-017/025/027/028 + DS-038
跨项目 MCP 配置指向 localhost + 占位符 API key 导致飞轮不转
飞轮规则和 MCP Server 都在项目里,但 AI Agent 修完 bug 后 report_bug_knowledge 静默失败,生产库非 project-12 项目入库为 0(omspark 等新项目)
补挂 scripts/(否则 test_dbug_transport 在容器里收集阶段就 FileNotFoundError 并中断整个 pytest)+ 后台步骤缺依赖时自动 npm ci(此前在服务器上一直静默跳过,等于后台从未被门禁覆盖)
commit 9dd73f092d46 (2026-10-03) fix(gate): 补挂 scripts/(否则 test_dbug_transport 在容器里收集阶段就 FileNotFoundError 并中断整个 pytest)+ 后台步骤缺依赖时自动 npm ci(此前在服务器上一直静默跳过,等于后台从未被门禁覆盖)
MEDIUM — 生产日志使用 debugPrint 无分级日志
暂无描述
开发调试标记泄漏到生产 HTML —— vite 构建未剥离 inspector 属性
线上页面源码暴露内部开发工具痕迹(技术栈指纹、调试入口),既是信息泄露也给扫描器递枚举线索。
curl -s https://<site>/ | grep -c 'trae-inspector\|dev-locator'vite.config.ts 条件化插件加载后重建download CMake 3.28 binary instead of pip
commit b0b3b1d785aa (2026-07-06) fix(ci): download CMake 3.28 binary instead of pip
错误捕获钩子用 trap ERR + ${BASH_COMMAND} —— 记录到的是 trap 自身的命令
一个用于记录「哪条命令失败了」的 bash 钩子,产物里大量出现自指记录:记录的命令内容是 local __cmd="${BASH_COMMAND:-unknown}"、__cmd="${BASH_COMMAND:-unknown}" 等 —— 那正是钩子自身的语句。实测 5 条记录里 3 条是这种噪声(60%)。
grep -cE '__dbug|BASH_COMMAND' ~/.dbug/errors.jsonl # 自指记录数# 用 PROMPT_COMMAND 替代 trap ERR
__dbug_on_prompt() {
local __ec=$?
[ "$__ec" -eq 0 ] && return 0
[ -n "${DBUG_HOOK_OFF:-}" ] && return 0
local __raw; __raw="$(HISTTIMEFORMAT= builtin history 1 2>/dev/null)"
if [[ "$__raw" =~ ^[[:space:]]*[0-9]+[[:space:]]+(.*)$ ]]; then __cmd="${BASH_REMATCH[1]}"; fi
...
}
PROMPT_COMMAND="__dbug_on_prompt${PROMPT_COMMAND:+;$PROMPT_COMMAND}"backend Dockerfile 改多阶段构建, compose 切换 Dockerfile
commit fba40c68f342 (2026-10-09) fix(project-71): backend Dockerfile 改多阶段构建, compose 切换 Dockerfile
highlight.js CSS @import from globals.css instead of client component
commit 55c792774cb9 (2026-09-13) fix(ui): highlight.js CSS @import from globals.css instead of client component
upgrade CMake to >=3.20 via pip
commit 6175d1770978 (2026-07-06) fix(ci): upgrade CMake to >=3.20 via pip
use pip3 with aliyun mirror for cmake (avoid github slow download)
commit 5f308c3ae4b5 (2026-07-06) fix(ci): use pip3 with aliyun mirror for cmake (avoid github slow download)
M13 Core 纯度硬编码路径消除 + P1 参考模板(6 份 references/)
commit aa9ef0d692fc (2026-09-20) fix: M13 Core 纯度硬编码路径消除 + P1 参考模板(6 份 references/)
analytics 4 endpoints wrong path /analytics/xxx -> /users/xxx (backend users.controller)
commit 3cae4204c1fd (2026-09-24) fix(api-client): analytics 4 endpoints wrong path /analytics/xxx -> /users/xxx (backend users.controller)
register-ops-task.ps1 第103行用反引号转义引号(原 " 导致解析失败,月度任务注册不可用)
commit ee7897d698f6 (2026-09-30) fix(ps1): register-ops-task.ps1 第103行用反引号转义引号(原 " 导致解析失败,月度任务注册不可用)
DB/Redis 口令经 systemd ExecStart -D 参数暴露在 /proc/<pid>/cmdline(世界可读 444)
任意非特权用户可直接读取数据库与 Redis 口令(实测能读到 2 行 password=)。
capture java version via cmd to avoid PowerShell stderr error; keep splash/camera fixes
commit ce4605aa50af (2026-02-11) fix: capture java version via cmd to avoid PowerShell stderr error; keep splash/camera fixes
fix Slack transformer + add P0-fix unit tests
commit e67be331de49 (2026-08-13) fix(oauth): fix Slack transformer + add P0-fix unit tests
build_windows.bat 环境变量 `%UNITY_EXE%` 被 cmd 错误解析
([README_build.md: 故障排查](file://d:/ai_mirror/README_build.md#L135)):在 Windows cmd 中运行 `build_windows.bat` 时报错: ``` 'ITY_EXE' 不是内部或外部命令 ```
(已在 `build_windows.bat` 和 `README_build.md` 中修复):
1. `build_windows.bat` 使用 `setlocal EnableDelayedExpansion` 和 `!UNITY_EXE!` 延迟展开
2. 移除注释行中的 `%UNITY_EXE%` 引用(注释中的百分号也会被解析)
3. 在 README_build.md 故障排查中明确说明此问题及 `set UN=` 解法
4. 推荐优先使用 `build_windows.ps1`(PowerShell 无此问题)analytics 4 个接口前端路径凭想象写 —— 后端实际挂在 /users 下,404 挂了整块看板
学习报表/统计看板整块无数据,接口 404;前端代码里找不到后端路由定义,两边各说各话没人对过账。
从前端抽全部 API 路径集合,与后端路由注册表 diffuvicorn watchfiles reload Windows 不稳定
([cursor_202606072236.md:582-741](file://d:/chemindra/cursor_202606072236.md#L582),至少 **5 次** 重现): `uvicorn --reload` 下修改代码文件后出现大量 `KeyboardInterrupt` 及子进程崩溃,典型的 WatchFiles 触发链: ``` WatchFiles detected changes in 'app/models/project.py'. Reloading... → KeyboardInterrupt (子进程启动阶段) → INFO: Started server process [xxx] (短暂恢复) → WatchFiles detected changes in 'app/schemas/molecule.py'. Reloading... → KeyboardInterrupt (再次崩溃) ``` 每次 auto-reload 约 1~3 次崩溃后才能稳定。
模块导入顺序导致 ImportError
([cursor_202606072236.md:690](file://d:/chemindra/cursor_202606072236.md#L690)): ``` ImportError: cannot import name 'ProjectMember' from 'app.models.project' (D:\chemindra\apps\server\app\models\project.py) ``` 在阶段 2 开发(项目与分子库 CRUD)期间,`uvicorn --reload` 热重载后出现。
调整 `project.py` 中 `ProjectMember` 类定义位置,确保在 `__init__.py` 导入前类已定义。同时在热重载后 `Ctrl+C` 停止并重新启动即可临时解决。Docker Desktop 未运行阻断基础设施
([cursor_202606072236.md:346](file://d:/chemindra/cursor_202606072236.md#L346)): ```powershell cd D:\chemindra\docker docker compose up -d postgres redis unable to get image 'postgres:16-alpine': error during connect: Get "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine/v1.51/...": open //./pipe/dockerDesktopLinuxEngine: The system cannot find the file specified. ```
(`commit 1d6a90d`):
1. 新增 `scripts/setup_local_db.ps1` — 一键检测本机 PostgreSQL 18 服务状态、建库、写入 `.env`
2. 新增 `docs/LOCAL_DEV_WINDOWS.md` — Windows 本地开发排错完整指南
3. 更新 `.env.example` — 默认 `DATABASE_URL` 指向本机 PostgreSQL(免 Docker 模式)
4. 更新 `README.md` — 增加"方式 A:本机 PostgreSQL"和"方式 B:Docker"双路径说明端口 8000 被 ChemIndra 占用
([cursor_202606072237.md: Section 52](file://d:/ai_mirror/cursor_202606072237.md)): ```powershell .\scripts\smoke-test-api.ps1 ==> ai_mirror API smoke @ http://127.0.0.1:8000 FAIL: GET / — 无法连接到远程服务器 ```
1. `start-api-only.ps1` 自动检测 8000 端口占用情况,被占用则切换到 8001
2. `verify-stack.ps1` 自动检测 ai_mirror 实际运行端口
3. README 添加 `--port 8001` 说明和「一键启动」小节
4. `start-dev-local.ps1` 添加 Docker 未启动时的 graceful fallbackWindows PostgreSQL 默认用户不匹配
Windows 本地 PostgreSQL 连接失败: ``` FATAL: password authentication failed for user "chemindra" ```
(`commit 1d6a90d`):
- 默认 `database_url` 改为 `postgresql+psycopg2://postgres@localhost:5432/chemindra`
- `.env.example` 相应更新,并添加注释说明 Docker 用户如何切换回 `chemindra`
- `scripts/setup_local_db.ps1` 自动写入正确的 Windows 本地连接串pnpm url.parse() 弃用警告
([cursor_202606072236.md:765](file://d:/chemindra/cursor_202606072236.md#L765)): ``` (node:31812) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. ```
PKCE 校验对 confidential client 一刀切 hard fail —— 老客户端全部被挡
升级 PKCE 强制后,存量未改造的 confidential 客户端登录全部失败——服务端升级一次性打挂所有未同步升级的调用方。
token endpoint 日志统计 code_verifier 缺失率与 client 类型分布InfrastructureError code/message args + WS测试清理(Redis skip)
commit 121f3631376d (2026-10-05) fix: InfrastructureError code/message args + WS测试清理(Redis skip)
cleanup dead lookup_result code + simplify tags filter
commit e8aadc1fb655 (2026-09-25) fix(domains): cleanup dead lookup_result code + simplify tags filter
答题链路静默断裂:路径不匹配 + 事件总线零调用 + 前端仅 console + 404 被改写成 200
用户答题后无任何记录入库:answer_records 不增长、user_ability.ability_theta 不更新、学习报告数据为 0。前端无报错,接口返回 200 {'code':-1,'message':'系统繁忙'},从状态码到日志都看不出问题。
api-gateway 端口硬编码 + ai-caller 端点增强
commit 458ab6fe9430 (2026-09-20) fix(BUG-0094): api-gateway 端口硬编码 + ai-caller 端点增强
Nginx 嵌套 auth location proxy_pass 剥前缀导致 NestJS 路由 404
send-code/forgot-password/reset-password 所有 auth 新端点 nginx 代理后返回 404,但容器内 wget 直连完全正常
清零 check 警告 — M9 input 业务文件迁移 + M7 cursor-export .gitignore
commit 8d5bca8a3290 (2026-09-20) fix: 清零 check 警告 — M9 input 业务文件迁移 + M7 cursor-export .gitignore
share.py 写入路径错误
([cursor_202606072237.md: Section 46](file://d:/ai_mirror/cursor_202606072237.md)):分享快照 URL 返回 404,图片未生成在预期路径。
- 修正 `share.py` 中路径计算,改为 `backend/static/shares/`
- 确认 FastAPI `StaticFiles` 挂载与写入路径一致
- 新增 `test_share_create_and_view` 测试用例覆盖catch-all 返回 HTTP 200 + “系统繁忙”,把任何异常当成功
全局兜底异常处理器把未预期异常渲染为 HTTP 200 + {"code":-1,"message":"系统繁忙,请稍后重试"} ⇒ 任何路径写错、DB 异常、代码缺陷都表现为「系统繁忙」且状态码 200。后果:监控、AI、人三方都被骗(监控看不到 5xx、AI 无法从状态码判断失败、用户只看到中性文案)。
gap-state guard on done-timeout
commit 71ce99402bf9 (2026-10-06) fix(stream): gap-state guard on done-timeout
OAuth 回调硬编码 client_id='cognx' —— 多产品 auth_code 换票全部 invalid_grant 死循环
project-13/project-07/project-14 等独立 client 发起的 SSO,回调后报 invalid_grant,页面在登录循环里打转
run against local PG 18 on 5432 + vault demo seed bugs
commit 89c8b7eb8cf8 (2026-09-16) fix(integration): run against local PG 18 on 5432 + vault demo seed bugs
implement 4.1 checklist - theme/brand/touch/i18n and mark doc
commit 7cd2607e36e4 (2026-02-14) fix: implement 4.1 checklist - theme/brand/touch/i18n and mark doc
全栈构建修复 - Java 21/Spring Boot 3 + Node 24 + Vue3 兼容
commit a07fe1852d65 (2026-09-16) fix: 全栈构建修复 - Java 21/Spring Boot 3 + Node 24 + Vue3 兼容
打破写审计中间件与业务事务的 SQLite 死锁
commit 96e1dbaff6cd (2026-10-03) fix(backend): 打破写审计中间件与业务事务的 SQLite 死锁
_detect_matrix_type 精确化,误判从 83% 降到 1%
commit 6104407046f0 (2026-09-13) fix(matrix): _detect_matrix_type 精确化,误判从 83% 降到 1%
三个 P0 阻塞补丁 — 死亡/重生/战斗系统
commit 1cc5c28147b9 (2026-09-12) fix: 三个 P0 阻塞补丁 — 死亡/重生/战斗系统
移除 ProductService.page() 的 @Cacheable — Page<T> Jackson 序列化成 LinkedHashMap 反序列化 CCE
commit d1488c902cbb (2026-09-24) fix: 移除 ProductService.page() 的 @Cacheable — Page<T> Jackson 序列化成 LinkedHashMap 反序列化 CCE
删除清单 fail-closed 收口(防删设置/登录态)+ 测试不再真清系统 Temp
commit beba963b782a (2026-10-02) fix(cleanup): 删除清单 fail-closed 收口(防删设置/登录态)+ 测试不再真清系统 Temp
非 cacheable tool 不再打 cache=miss 标记
commit 9c71860e0d05 (2026-09-20) fix(agent_tools): 非 cacheable tool 不再打 cache=miss 标记
restore solo_*.md tracking, keep other .gitignore rules
commit 899c10f44bd5 (2026-06-23) fix: restore solo_*.md tracking, keep other .gitignore rules
Windows Docker Desktop oom-tracer panic: kallsyms 解析失败 %px invalid syntax → 彻底关重开恢复
Docker Desktop GUI 弹 'Docker Engine stopped unexpectedly' + 'service oom tracer failed...'; docker ps 报 'Error response from daemon: Docker Desktop is unable to start'; 但 com.docker.backend 进程还在跑(CPU 低);docker run hello-world 全正常——容器引擎没坏,只是 GUI 误导
Service Worker Stale-While-Revalidate + 恒定 VERSION = 部署后用户永远看到旧版
'我改了代码但用户看不到'、'刷新两次才对'、'用户报告页面永远是旧版'
管理后台构建的基础镜像兜底 + 记录本轮踩到的三个真实坑
commit 2bc538a191f3 (2026-10-03) fix(deploy): 管理后台构建的基础镜像兜底 + 记录本轮踩到的三个真实坑
Dockerfile.prod 假设 fat jar 但 mvn package 没 repackage → no main manifest attribute
sudo bash project-13-prod-backend.sh 启动新容器后 CrashLoopBackOff,docker logs 显示 'no main manifest attribute, in app.jar'
.gitignore 行内注释导致 data/ logs/ 忽略规则整体失效 —— 39 个日志和数据库文件(含明文 API Key)已入库
仓库里出现生产服务器日志、多个 SQLite 数据库文件(_old_db.db 等 39 个),bootstrap 日志里含明文 API Key——任何拿到 repo 的人都拿到了
以关键词正则判定凭据泄露 —— 命中项全是提交信息与标识符
用 (token|password|secret|credential|passwd) 扫描仓与日志,命中大量结果,据此判定存在凭据泄露。
grep -rEo 'AKIA[0-9A-Z]{16}|LTAI[a-zA-Z0-9]{12,20}|ghp_[A-Za-z0-9]{20,}|sk-[a-zA-Z0-9]{20,}|-----BEGIN [A-Z ]*PRIVATE KEY-----' <target>Docker 容器重启后 bridge IP 变化导致 nginx 硬编码 upstream 失效
服务器重启或容器重建后 nginx 报 host not found in upstream 或 502
Flyway migration 未初始化 → knowledge_vectors 表不存在 → PostgreSQL 事务 aborted
Companion 陪练发消息 500 Internal Server Error;Spring Boot 日志里 knowledge_vectors does not exist + current transaction is aborted;同一 @Transactional 方法里其他正常表的查询也一起挂
i18n locale key 与代码不同步 → 页面显示翻译 key 原文而非中文
自适应练习页面显示 adaptivePractice.coldStartHint、adaptivePractice.modeAdaptive 等英文 key 而非中文文案,影响用户体验但不阻塞功能
Spring Security hasAnyRole(USER,ADMIN) 漏 GUEST 角色 → 游客 JWT 认证后仍 403
游客登录成功后,/stats/*、/creation/*、/irt/*、/progress/* 等全部返回 403,只有 /auth/** 和 /questions/** 等 permitAll 路径能通;前端首页能加载但个人中心/学习报告/AI推荐全部数据为空
certbot Docker 容器 root 运行导致宿主证书文件权限 root-only,非 root 用户无法读取
证书已成功签发,`ls -la` 显示 root:root,但非 root 用户 `openssl x509 -in /path/fullchain.pem` 报 Permission denied,nginx -t 或 reload 报 cannot load certificate
nginx conf 冲突 + rewrite bug → Docker 内部版 default.conf
commit 6ea1a617023a (2026-09-20) fix(P6): nginx conf 冲突 + rewrite bug → Docker 内部版 default.conf
certbot CATEGORY key 对齐 install/request/renew,零 unknown
commit b35e799e57a8 (2026-09-17) fix: certbot CATEGORY key 对齐 install/request/renew,零 unknown
bk_reports_api.py 引用 bk_ledger_balances 不存在列导致 4 报表 500
资产负债表 500 Internal Server Error / 现金流量表 500 / 利润表和试算平衡也可能受影响
文档管理 doc_type 中英文混合 + 日期裸渲染 GMT 字符串
文档管理页面第一列 doc_type 部分显示英文 (bank_statement/tax_return) 部分显示中文 (发票/合同), 日期列显示 'Wed, 30 Sep 2026 00:00:00 GMT' 而不是 '2026-09-30'.
app.js 有 20 处 fmtDate() 调用但完全没有定义 — annual checks 崩
年度检查 (annual-checks) 页面白屏 + Console ReferenceError: fmtDate is not defined. 其他有 fmtDate 调用的页面 (CRM/工资/douyin 等) 也会首次访问时崩.
双修复: vouchers/{id} 500 ORDER BY entry_sequence 不存在 + documents schema 与后端代码字段名不对齐
① 凭证卡片点击展开 500 (voucher-review.js _toggleCard). ② 文档管理页面显示 5 行空 (doc_type 显示"-", 金额 ¥0.00, 供应商空) + status 显示英文 active 没转中文.
POST /notifications/{id}/read 404 + bk_notifications 缺 read_at 列
① 通知中心点单条已读 → 404 (后端路由不存在); ② 点全部已读 → 可能 UndefinedColumn (缺 read_at); ③ 预设审批流模板按钮 → TypeError: presets.forEach is not a function (AG-030).
bk_tasks 缺 due_date/task_type/completed_at/updated_at — PUT 更新 500
PUT /api/bk/tasks/{id} 返回 500, 任务状态不能更新 (不能标记完成/领取/改详情).
bk_lead_activities 表缺失导致 CRM leads/{id} 详情页 500
浏览器访问 /api/bk/crm/leads/{id} 返回 500 Internal Server Error, CRM 线索详情弹窗打不开.
accounts/tree 缺 book_id 过滤导致 680 条跨 book 科目混合显示
科目管理页面显示"非常多重复科目"。DB 同 book 内实际无重复 (UNIQUE(book_id, account_code) 已保护),是跨 book 混在一起。
voucher-review.js _toggleCard const detail 二次赋值
用户点击凭证卡片展开/折叠时浏览器控制台刷 TypeError: Assignment to constant variable,卡片无法展开。
3 schema gap 定时任务 warning — DLQ handler_name / automation trigger_config / douyin sync_frequency
后端日志持续每分钟/每小时刷 UndefinedColumn warning 污染日志, 影响可观测性。不影响主业务流程但掩盖真正的错误。
transfer-profit-loss 500 — bk_account_books 缺 current_period 列 + 跨 book 科目缺失
POST /api/bk/books/2/transfer-profit-loss 返回 500。后端日志: psycopg2.errors.UndefinedColumn: column "current_period" does not exist。前端 period-close.js 调 _post 失败。
双 bug: AbModules.get() 缺失 + crm/segmentation KeyError company_type
浏览器控制台: TypeError: AbModules.get is not a function (clients.js:193)。Network 面板: /api/bk/crm/segmentation/1-10 连续 13 个 500。后端日志: KeyError: 'company_type' at bk_crm_api.py L290。
全库枚举字段前端裸渲染审计 — 6 新 helper + 8 内联硬编码
用户反馈:CRM 仪表盘🏭行业分布显示 automotive/catering(英文)、客户价值分层表 industry 列英文、通知中心类型标签英文、银行流水收入/支出仅 credit vs expense 两态判断漏 debit。
bk_bank_api DELETE 端点 from_args=True 取到 None 导致 extractor 放行
未授权 junior 用户知道 trans_id 可直接 DELETE 银行流水(无 403 拦截),绕过 require_permission('bank:write') 之外的客户级权限检查
ACL 缺失时未授权用户可通过 403 vs 404 区分资源存在性
未授权 junior 用户探测 voucher_id,通过响应码 403(有ACL)/404(无ACL但不存在)/200(无ACL且存在) 区分资源状态,形成资源枚举漏洞
tempfile 残留根因是 EnvelopeLogger 单例跨测试保留状态:缺 reset(),用 conftest autouse 兜底
测试跑完留下临时文件;单测偶发失败且与执行顺序相关
FastAPI 0.141+ 路由递归遍历 + LLM 供应商预置表
commit 0a77c5ddd930 (2026-10-05) fix(tests): FastAPI 0.141+ 路由递归遍历 + LLM 供应商预置表
pytest conftest 多 fixture 独立 session + 依赖方向反了 → UNIQUE 爆炸 + detached 对象
pytest tests/test_auth.py 混跑时 20/23 tests 报 UNIQUE 或 fixture ERROR;单跑部分 test 又 PASS(fixture 顺序不确定);test_login_inactive_user 修改 is_active 后 login 仍返回 200 而非 403
最终 2 修 — module gate skip + cost_summary assertion 宽松化
commit f3792da9d58d (2026-09-23) fix(test): 最终 2 修 — module gate skip + cost_summary assertion 宽松化
test_metrics_history.py 使用 sys.path.insert 而非标准 pytest 导入
`test_metrics_history.py` 在文件开头使用 `sys.path.insert(0, ".")` 手动设置 Python 模块搜索路径,而非依赖 pytest 的运行环境或 conftest.py。
pytest monkeypatch 必须 patch 每个模块自己的 LOCAL namespace reference
Mock 层测试看似正确但业务链 KeyError/TypeError/400/404,因为 execute_query 仍查真实 DB 或返回空
require_auth 不注入 user_id/username 到 kwargs → acl_required admin 豁免从未生效
所有带 @acl_required 装饰器的端点 (bk_tax_draft_api 等),即使当前登录用户是 admin/super_admin,仍必须过 DB 查 bk_user_client_permission 才能访问
bk_tax_draft_export sheets 参数格式错误:tuple vs _build_xlsx 期望的 dict
调用 /api/bk/tax-draft/vat/<client_id>/<period>/export 端点返回 500 Internal Server Error,无法导出 xlsx
pytest test_knowledge_freshness.py 有 UTF-8 BOM 导致 collection error SyntaxError
pytest collection error 中断全量测试;743 items collected 但 1 error 导致 --maxfail=1 时整个 session 停;test_knowledge_freshness.py 的 9 个测试从来没跑过
后端 pytest 整体覆盖率 38% — services 层最薄 (data_quality 12%, search 20%)
pytest 跑 743 items 有 3 fail + 1 collection err;collection err 是 test_knowledge_freshness.py 依赖外部模块;3 个 fail 在 test_api_routes.py (2) 和 test_api_units.py (1);services 层最容易出 bug 但最没测试覆盖
compose --env-file 与实际凭据文件漂移:backend 重建后 PostgreSQL 认证失败
docker compose up -d --force-recreate backend 后容器反复重启;日志报 FATAL: password authentication failed for user "postgres";.env.prod 明明有密码却认证失败
Fix verification logic in nginx config script
commit 758f3a2097d3 (2026-02-12) Fix verification logic in nginx config script
wire up scheduler — add DB tables, JobRepository, startup/shutdown, and close circular dep
commit ceca44d7eea5 (2026-09-17) fix: wire up scheduler — add DB tables, JobRepository, startup/shutdown, and close circular dep
admin Docker 构建修复 — package-lock + vite-env.d.ts + useMemo deps
commit 3651152e7c08 (2026-09-12) fix: admin Docker 构建修复 — package-lock + vite-env.d.ts + useMemo deps
MySQL 僵死锁
MySQL InnoDB 出现长时间未提交的僵死事务(常见于 Flyway 迁移中断、长 SQL 未 commit、backend 异常退出遗留的连接),导致: - `ERROR 1205` Lock wait timeout - 写操作(INSERT/UPDATE)挂起超时 - 用户不可见的后台数据写入失败
`sudo bash deploy/kill-mysql-app-locks.sh`
- Step 1:`docker compose stop backend` + `docker rm -f app-backend`(停止连接来源)
- Step 2:`SELECT innodb_trx` 列出所有活跃事务
- Step 3:逐一 `KILL <trx_mysql_thread_id>` 所有 innodb_trx 中的线程
- Step 4:`KILL <id>` 所有 processlist 中涉及 `app_db` / `flyway_schema_history` 的连接(排除 Daemon)
- Step 5:若仍有残留事务 → `docker compose restart mysql` 强制重启
- Step 6:重启后验证 `innodb_trx` 事务数为 0把 ACME 挑战路径配在 server 级 return 301 之后导致证书申请与自动续期失败(Timeout during connect)
certbot 反复报 Timeout during connect,看着像安全组/端口问题;即使确认 80 端口已放行、DNS 正确、nginx 正常,仍然失败。
copy schema.sql into dist/db so backend can start
commit 8034989bbb39 (2026-03-08) fix(docker): copy schema.sql into dist/db so backend can start
Docker Compose 本地部署修复 — 7 容器全 Healthy + 全链路打通
commit 0fa7b30bacfe (2026-09-12) fix: Docker Compose 本地部署修复 — 7 容器全 Healthy + 全链路打通
docker-compose v1 recreate KeyError ContainerConfig
docker-compose up -d --force-recreate 报错退出,容器无法 recreate
avoid gcr.io distroless in core image
commit 051cff4452f5 (2026-03-31) fix(project-71): avoid gcr.io distroless in core image
multi-stage build so tsc available in build stage, runtime stage omit dev
commit eae401b82a94 (2026-03-05) fix(docker): multi-stage build so tsc available in build stage, runtime stage omit dev
dead code removal + port done-timeout to canonical hook
commit 8dc8aaee345b (2026-10-06) fix(stream): dead code removal + port done-timeout to canonical hook
backend Docker 镜像缺少 migrated_bugs.json:.dockerignore 误伤导入数据,容器内数据导入静默失败
容器内运行数据导入脚本报文件不存在;本地正常(文件在宿主)
Trae skill 注册验证成功: 飞轮 115 个项目 7 天内自然入库,不是 git_sweep 批量
session 结束时担心 'Trae 自动加载机制是闭源的,短期内不用死磕';4 天后生产库 7 天新入库分布显示 115 个不同项目——包括 project-48/project-65/project-02 等 session 中从未 git_sweep 过的新项目;Trae 重启验证 (project-30 session 5 agent 全挂载 mcp_project-69-wiki) 是 10-11 做的,10-15 才确认飞轮真在跑
Windows Docker Desktop WSL2 ext4 数据盘挂载坏: mounting disk bad message / invalid argument
docker ps 报 failed to connect to docker API at npipe:////./pipe/dockerDesktopLinuxEngine; com.docker.service Stopped; WSL distro docker-desktop 启动失败; Docker Desktop GUI 弹 There was a problem with WSL; wsl.exe -d docker-desktop wsl-bootstrap run provisioning data /dev/sdx: mounting disk: bad message
6 种零散 fix_type guardrail 0% 覆盖: frontend-ux/security-cors/data-consistency/project-71/config
get_guardrails('security-cors') 返回空;get_guardrails('frontend-ux') 返回空;search_bug 命中零散 fix_type 条目但无护栏可消费
@acl_required 装饰器从未在任何业务端点使用, 客户级隔离形同虚设
多客户账套场景下无客户级隔离; bk_user_client_permission 写入也不改变行为
STATUS.md 成熟度 93/100 标注歧义(治理完备度 vs 商用就绪度)
审计报告成熟度 93/100 容易被解读为整体项目成熟度,但实际测试覆盖率仅 50%
IDE .trae/mcp.json 含线上 API Key 被 git 跟踪
git diff 显示 project-69_API_URL=https://project-11 + 64 字符 API Key 硬编码;推送远端仓库即泄漏
测试脚本模块级 sys.exit(1) 导致 pytest 全套件 INTERNALERROR
运行 pytest 时出现 INTERNALERROR,全套测试无法执行;错误链末尾是 SystemExit: 1 来自 test_ai_permission_matrix_standalone.py
dingtalk-stream SDK register_callback_handler 不能接收审批事件, 必须用 register_all_event_handler
Stream 连接成功, 钉钉后台事件开关已开, 但发审批后 Stream 完全没有任何 bpms_instance_change 消息到达
钉钉旧版 oapi topapi/processinstance/get 对 DDBizSuite 模板不返回表单填写值
审批详情拉取成功 errcode=0, 但 formComponentValues 只有 DDBizSuite 模板元数据 (30 个字段定义), operation_records 只有操作历史, 实际填写金额/类型/日期全部拿不到, parser 报 "缺少必填字段金额"
docker compose recreate 后 API 报 P1000 DB 认证失败
clairie-api 容器陷入 restart loop,所有 HTTP 请求 502
project-93a seed.ts 的 images 字段 JSON.stringify 导致双重引号,product.service.ts JSON.parse 炸数组
GET /api/v1/products 返回 500 Internal Server Error,前端产品列表全空,控制台有错误
Python **kwargs 函数收到位置参数 TypeError — locals() 作为位置参数传递
运行到 fallback 分支(DB 失败 / 参数缺失 / 非法 error_type)时立即 TypeError 崩溃,fallback JSONL 完全失效,主流程审计链路断裂
APP配置无单一来源 — 硬编码散落15处导致反复出错
User downloaded 9 APK versions because each fix was silently reverted. Future brand/domain changes = edit ONE YAML file.
Jest 4 suites parse fail — 3 files绕过env.ts抽象层直接用import.meta.env
Jest crashed on 4 suites with parse error. Production vite build works fine (Vite handles static replacement). Dev/test tooling using SWC CommonJS transform breaks.
'后续再做' 等于'永远不做' — 每次会话都重复踩同一个坑
User frustration multiple times in this session: '那时候早忘了' (we'll forget by then). The Ledgent package name bug alone caused 9 APK downloads because each individual fix 'forgot' that another location also hardcoded the old brand name. 'Do later' without trigger conditions is effectively 'do never'.
Android APP 反复显示 Ledgent 而非智点刷题 — capacitor.config.ts 硬编码 + Huawei 安全中心包名缓存双因
User downloaded 9 APK versions; every installation showed 'Ledgent + default icon' on Huawei security detection page despite strings.xml showing '智点刷题' — because cap sync silently reverted strings.xml and Huawei security center had the old package cached.
fix_type 关键词推断误分类: 含 docker 关键词的 Gitea volume bug 被归为 docker-registry
get_guardrails('docker-registry') 第一条护栏内容是 '改 volumes 为精确映射:- /data/gitea/gitea:/data/gitea'——完全不是 docker registry mirror 范畴;search_bug('docker registry') 返回的 14 条里有 1-2 条是噪音
shutdown 清理 EventBus + StreamingBridge 定时器防泄漏
commit 3ae16708e4c9 (2026-09-17) fix: shutdown 清理 EventBus + StreamingBridge 定时器防泄漏
阿里云快照回滚后 Docker volume 元数据在但 _data 内容全丢
Gitea DB 里 153 个仓库记录完整、用户完整、元数据完整,但 /data/git/repositories/ 目录只剩 4KB 空壳。docker volume ls 显示 volume 存在但容器内 /data/repositories/ 空。
态势中心 `ReferenceError: router is not defined`
暂无描述
`docker compose build --no-cache frontend`Gitea Docker volumes mount 错路径导致容器读空 DB
docker restart gitea 后登录正常但所有仓库列表空、注册历史全丢、API 返回 500。docker exec gitea ls /data/gitea/gitea/ 显示空目录。
境内服务器 docker build 拉不到 docker.io 基础镜像(i/o timeout):daocloud 镜像站 pull + tag 绕过
build 阶段报 failed to solve: DeadlineExceeded;docker pull python:3.12-slim 同样超时
让完整管道可训练 - Consciousness softmax可微路径 + Affective保持计算图
commit 41842ad6acd0 (2026-09-16) fix: 让完整管道可训练 - Consciousness softmax可微路径 + Affective保持计算图
UTF-8 encoding and English error messages for Windows build
commit 1aeb5d993b00 (2026-06-05) fix: UTF-8 encoding and English error messages for Windows build
远程 smoke 脚本参数名避免与 PowerShell Host 冲突
commit 950734b3974f (2026-06-07) fix: 远程 smoke 脚本参数名避免与 PowerShell Host 冲突
verify-visual-trace.ps1 PowerShell encoding
commit ce44a6fc294d (2026-06-05) fix: verify-visual-trace.ps1 PowerShell encoding
Windows Python 脚本 Unicode box-drawing 符号在 Trae/PowerShell 子进程输出中乱码
后台运行 batch_git_sweep.py 时,Trae 工具输出显示大量乱码字符;但直接前台 python -c print() 显示正常
PowerShell 5.1 按 GBK 读无 BOM 的 .ps1 —— 中文字面量静默损坏
推送脚本里的中文提示/匹配串在目标机器上变成乱码,含中文的正则匹配与文案输出全部失效,但脚本不报错。
head -c 3 <script.ps1> | xxd | grep -q 'efbb bf' && echo BOM-OK || echo BOM-MISSINGpython -c "p='<script.ps1>';d=open(p,'rb').read();open(p,'wb').write(b'\\xef\\xbb\\xbf'+d) if not d.startswith(b'\\xef\\xbb\\xbf') else None"project-56 7 个含非 ASCII 的 .ps1 补 UTF-8 BOM(PS 5.1 静默损坏根因)
commit 120244733f4c (2026-09-30) fix(encoding): project-56 7 个含非 ASCII 的 .ps1 补 UTF-8 BOM(PS 5.1 静默损坏根因)
Xshell 不认某些 OpenSSH ed25519 私钥格式,PowerShell ssh 却正常
Windows PowerShell ssh ubuntu@target 直接通、但 Xshell 连不上同一台机器,报 Permission denied 或 无法加载用户密钥。用 id_rsa 私钥一切正常。
resolve path bug — cross-project atoms never source_available=False
commit aebc5d9b28c1 (2026-10-04) fix(quality_scorer): resolve path bug — cross-project atoms never source_available=False
移除 requirements.txt UTF-8 BOM
commit 5c1d8d89535f (2026-09-12) fix: 移除 requirements.txt UTF-8 BOM
use ASCII in build_apk_versioned.ps1 to avoid encoding parse error
commit 574d9df32977 (2026-02-10) fix(release): use ASCII in build_apk_versioned.ps1 to avoid encoding parse error
字典中文乱码(latin1 回退)
MySQL 连接未强制 UTF-8,latin1 回退导致中文写入乱码。
JDBC URL 强制 `characterEncoding=UTF-8` + `connectionCollation=utf8mb4_unicode_ci` + sessionVariablesrun_acceptance.ps1 ASCII output for Windows PowerShell encoding
PowerShell 5.x 在执行 `run_acceptance.ps1` 时,因 `Write-Host` 包含中文非 ASCII 字符导致 UTF-8 解析错误,脚本无法运行。
(`038a5df`):将所有 `Write-Host` 消息改为纯 ASCII 英文,避免 UTF-8 解析错误。Windows 构建 UTF-8 编码与中文错误消息乱码
Windows 环境下 Maven 编译时因未指定 sourceEncoding 产生编码警告;API 返回的中文错误消息在 Windows 终端显示为乱码。
**提交**:`1aeb5d9`
```xml
<!-- pom.xml 添加 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
```
错误消息改为纯英文:
- `"参数校验失败"` → `"validation failed"`
- `"服务器内部错误"` → `"internal server error"`
- `"用户名或密码错误"` → `"invalid username or password"`
- `"用户不存在或已禁用"` → `"user not found or disabled"`PowerShell 5.1 默认 GBK 读 UTF-8 无 BOM .ps1 — 中文字面量静默损坏
脚本跑通但输出的中文字段是乱码;或者更隐蔽 — 中文提示含换行导致脚本行为与预期不一致
lombok, UTF-8, PathVariable names for Windows build
commit e221af9e2831 (2026-06-05) fix: lombok, UTF-8, PathVariable names for Windows build
translations.py utf-8-sig 防御 BOM locale 文件
commit 3bd61f86fc29 (2026-09-23) fix(i18n): translations.py utf-8-sig 防御 BOM locale 文件
get_secret plaintext auto-encrypt migration (INSTR-285衍生)
commit bc64b6f3bafe (2026-10-11) fix(core): get_secret plaintext auto-encrypt migration (INSTR-285衍生)
git_sweep GUARDRAIL_TEMPLATES 漏 backend-logic 兜底模板 → 365 条 backend bug 无护栏
飞轮 guardrail 覆盖从 8 种 fix_type 各 100% 但兜底 fix_type 全空;backend-logic 365 条仅 20 条有 guardrail(AI 手动上报的 BUG-0578/068 那些);backend-config 58 条仅 2 条有
修复 APP 图标和名称不更新的根因
commit c68e8d4a0d3c (2026-10-10) fix(android): 修复 APP 图标和名称不更新的根因
appName Ledgent → 智点刷题(根因修复)
commit d51a29346318 (2026-10-10) fix(capacitor): appName Ledgent → 智点刷题(根因修复)
改包名 com.project-13.mobile → com.zhidian.shuati
commit 4af1c87ec136 (2026-10-10) fix: 改包名 com.project-13.mobile → com.zhidian.shuati
git_sweep.py FIX_TYPE_PATTERN 只认 conventional commit 开头 → 379 条混合 commit 真修复漏上报
飞轮被动采集覆盖率仅 ~60%(1063 strict vs 1084 potential);大量真修复藏在 feat/refactor/chore subject 里;过去 30 天 workspace 148 repo 共 379 条真修复漏入库
PostgreSQL json 类型无相等操作符——回填 guardrail_rules 时 = '[]'::json 报错
backfill_guardrails.sql 直接在 json 列上做 = '[]' 过滤 → operator does not exist 报错 → 无法判断哪些是空数组需要回填
Alembic migration 上线前 git_sweep 入库 363 条 → guardrail_rules 列不存在被 ORM 静默丢弃
批量 git_sweep 入库 363 条,每条 payload 都带 1-N 条 guardrail_rules(git_sweep.py 按 fix_type 模板生成),但生产 API 返回全是空数组;BUG-1179 (migration 后入的) 同路径直接 POST 存住 3 条
create_file 工具在 veritas-core/ 下不持久化
通过 create_file 工具创建的 veritas-core 源文件在保存后消失,直接导致 Phase 3 多个 Rust 源文件的编写进度浪费。
改用 PowerShell `[System.IO.File]::WriteAllText` 或 Node.js `fs.writeFileSync` 替代 create_file 工具写入。PowerShell 5.1 按 GBK 读无 BOM 的 .ps1:含中文的脚本字面量静默损坏
脚本输出/写入的中文字符串乱码;本地正常、服务器乱码(或反之)
Python json.load 遇 UTF-8 BOM 直接抛错 —— BOM 系列第四个生态坑
i18n locale 文件带 BOM 时翻译加载整体失败。至此 BOM 已在四个生态各咬一口:bash shebang 失效、PowerShell 5.1 GBK 误读、Java 编译报错、Python json 抛错。每个生态对 BOM 的处理各不相同,没有统一免疫。
head -c 3 <locale 文件> | xxd | grep efbbbf;grep -rn "encoding='utf-8'" <i18n 加载> | 核对是否用 utf-8-sig小程序页面被多重有损编码转换(75 个私用区占位符 + 48 处被吞字符)→ 12 个页面 JS 语法非法、界面文案全乱码
界面文案乱码(审批通过→`瀹℃壒閫氳繃`、加载中→`鍔犺浇涓?`、待审核→`寰呭鎵?`);39 个 `.js` 中 **12 个 `node --check` 失败**(在 HEAD 上即失败):`SyntaxError: Invalid or unexpected token`;wxml 模板标签不配平(7 文件 13 处缺 `<`);3 条仅存损坏实现的路由(`clients/detail`、`reports/income`、`vouchers/detail`)运行期打不开。
三类处置并全部验证:(1) 可逆部分(段 GBK 字节数为 3 的倍数)批量反解;(2) 不可逆部分(PUA/被吞字符)用**锚点重建** —— 按 ASCII 字段锚点定位后替换为按上下文推断的中文,被吞的闭合引号自动补回;能反向校验的一律校验(借方科目先猜 `银行存款`,用前缀解码得到 `应收账` 后纠正为 **应收账款**);(3) 有合法扁平同名实现的 4 个影子副本**直接复制扁平文件为权威内容**,不做推断。另补 wxml 缺失的 `<`。最后补 CI 门禁防复发。
```python
# 不可逆乱码的判据(按可靠性)
PUA = r'[\ue000-\uf8ff]' # ① 私用区占位符
'€' in s and 中文字数 >= 2 # ② € 夹在中文里(UTF-8 被 CP936 误解的产物)
r'[\u2e80-\u9fff]\?' # ③ 中文后紧跟半角 ?(后随字符被吞)
s.encode('gbk') # ④ 长度为 3 的倍数 → 可 decode('utf-8') 还原
.NET Regex.Replace 的替换串里 $ 不是字面量 —— $' 会插入匹配后的全部文本
一个「用正则替换配置文件中 marker 块」的安装脚本,每执行一次产物就变长一点(实测每次 +113 字符)。长期反复执行后,目标文件从 187 字节膨胀到 29,664,059 字符 / 703,086 行,语法错误 21,014 个。而脚本注释一直写着「幂等」;且膨胀产物里原文件的每一行都被复制了上万次。
grep -nE "Replace\(.*," <script> | grep -v 'MatchEvaluator\|param(\$m)'# PowerShell/.NET
$evaluator = [System.Text.RegularExpressions.MatchEvaluator] { param($m) $replacement }
$new = [regex]::Replace($content, $pattern, $evaluator)
# 或转义
$escaped = $replacement -replace '\$', '$$'PowerShell $PROFILE 膨胀至 29MB:Regex.Replace 替换串 $ 未转义 + 替换范围不含 hook 注释,每次安装复制整份 profile
每次打开 PowerShell 报海量语法解析错误;$PROFILE 文件 29MB;marker 成对出现上万次
远程 smoke 脚本参数名 $Host 与 PowerShell 内置冲突
`test-e2e-prod-remote.ps1` 中参数名称 `$Host` 与 PowerShell 内置自动变量 `$Host`(代表 PowerShell host 实例)冲突,导致传入的主机地址无法正确传递。
(`950734b`):将参数名 `$Host` 改为 `$SshHost`,同步更新所有调用点。watchdog killExisting 杀所有 node 进程 —— PID 文件方案只杀自己的 bridge 子进程
watchdog 重启 bridge 时把机器上其他无关 node 进程一起杀了(其他项目/服务莫名死亡);端口 9487 竞争导致 Connection Reset
脚本「打印成功但实际没有修改」:方法重载参数错误被静默吞掉,是最危险的失败模式
自动化改写脚本报告成功,但目标文件未变;若未复核,会基于「已修复」的假设继续后续工作(本例据此误报过一次修复成功)。
PowerShell+SSH+bash+sed/psql 多层引号嵌套必崩 —— 远端配置变更改为原子 patch 模板
通过 PowerShell 发起 SSH 在远端执行 sed/psql 时引号层层转义后语义全变,Nginx 正则/alias 无法直接 sed,psql seed 引号嵌套必炸
AppTypography and PdfPreview onError for release build
commit bc8f4eeece40 (2026-02-10) fix: AppTypography and PdfPreview onError for release build
project-110 rename 09_项目总管 -> 09_总工程师
commit da1a51c98d04 (2026-07-07) fix: project-110 rename 09_项目总管 -> 09_总工程师
extend unified KPI cards to knowledge and perception dashboards
commit d2859b3ab900 (2026-06-05) fix: extend unified KPI cards to knowledge and perception dashboards
favicon under /zhiyin, voice WS HTTP fallback, nginx WS notes
commit f7e01fe26ee9 (2026-06-05) fix: favicon under /zhiyin, voice WS HTTP fallback, nginx WS notes
AgentList.vue garbled Chinese labels on agents page
commit 12e73afa5353 (2026-06-05) fix: AgentList.vue garbled Chinese labels on agents page
API 镜像打包 demo_data 脚本,补充生产 exec 说明
commit bf2a03c8a7f4 (2026-06-05) fix: API 镜像打包 demo_data 脚本,补充生产 exec 说明
恢复 AgentList 页面中文文案(UTF-8 BOM)
commit cbc87039b9e2 (2026-06-05) fix: 恢复 AgentList 页面中文文案(UTF-8 BOM)
project-109 治理补缺 + Gitea远程
commit fff57bf8f76f (2026-07-06) fix: project-109 治理补缺 + Gitea远程
httpx.Timeout set all four params to fix 502
commit 1d6b0939e9dd (2026-02-26) fix(ollama): httpx.Timeout set all four params to fix 502
exclude own PID + gamma fix + bootstrap gate
commit 5219bf68e71c (2026-09-17) fix(watchdog): exclude own PID + gamma fix + bootstrap gate
替换 spawnSync 为 Node 原生 http.request — 根治进程泄漏
commit 76131ecac936 (2026-09-19) fix(cae): 替换 spawnSync 为 Node 原生 http.request — 根治进程泄漏
PID 文件根治进程泄漏 — killExisting 只读自己的 bridge PID
commit e7aca776ea83 (2026-09-19) fix(watchdog): PID 文件根治进程泄漏 — killExisting 只读自己的 bridge PID
watchdog killExisting taskkill /F /PID 兜底
commit 4cce8540b91c (2026-09-20) fix(windows): watchdog killExisting taskkill /F /PID 兜底
h2_plus 单一事实源 + 4-Gate Gate 1b + 测试产物隔离 + 治理记录闭环
commit d22f936c9ec2 (2026-10-02) fix(contract): h2_plus 单一事实源 + 4-Gate Gate 1b + 测试产物隔离 + 治理记录闭环
环境敏感 flaky 根治 —— 随机源不得作为等值断言对象
commit 6e922ac12e7f (2026-10-03) fix(dogfood-20): 环境敏感 flaky 根治 —— 随机源不得作为等值断言对象
BUG-0170 α 量纲修正式(门控默认关)+ 机理复核更正 + BUG-0059 登记
commit efa53a65de27 (2026-10-03) fix(alpha): BUG-0170 α 量纲修正式(门控默认关)+ 机理复核更正 + BUG-0059 登记
BUG-0059 inference_id 唯一性修复 —— 单调计数器 + crypto 随机段
commit 67ada7de2603 (2026-10-03) fix(id): BUG-0059 inference_id 唯一性修复 —— 单调计数器 + crypto 随机段
llm_adapter env 变量名不一致 + LLM 接入成功
commit e5fb49967554 (2026-09-20) fix(BUG-0187): llm_adapter env 变量名不一致 + LLM 接入成功
gene_evolution UUID 类型修复 + 活水自我演化真跑通!
commit 1d07db5c518b (2026-09-20) fix(BUG-0080): gene_evolution UUID 类型修复 + 活水自我演化真跑通!
3 个假阳性 ✅ 修复 — intent-router 路由 OK (审计脚本用 GET), user-auth permissions pool 修复, plant-nerve sandbox API 契约对齐
commit a26947e8365f (2026-09-20) fix: 3 个假阳性 ✅ 修复 — intent-router 路由 OK (审计脚本用 GET), user-auth permissions pool 修复, plant-nerve sandbox API 契约对齐
user-auth 启动重试 DB 连接 (最多 10x30s, 避免 postgres 未 ready 时 permissionRepo=nil) + e2e 21/21 全绿
commit d0c28277dac0 (2026-09-21) fix: user-auth 启动重试 DB 连接 (最多 10x30s, 避免 postgres 未 ready 时 permissionRepo=nil) + e2e 21/21 全绿
rate-limit 白名单 /health + /v1/monitor/health + /v1/genes/quality-stats (compose healthcheck 不再 429) + migration 004 sandbox FK 删除持久化 + 前端 helpPage top-scored 已部署
commit 4dc199540d40 (2026-09-21) fix: rate-limit 白名单 /health + /v1/monitor/health + /v1/genes/quality-stats (compose healthcheck 不再 429) + migration 004 sandbox FK 删除持久化 + 前端 helpPage top-scored 已部署
fallback to /opt/server92/gateway/scripts/project-71_project.sh when nginx-gateway path missing
commit 0bd70962828a (2026-03-05) fix(project-71): fallback to /opt/server92/gateway/scripts/project-71_project.sh when nginx-gateway path missing
project-44 rename 09_项目总管 -> 09_总工程师
commit c27d383ae08e (2026-07-07) fix: project-44 rename 09_项目总管 -> 09_总工程师
project-106 rename 09_项目总管 -> 09_总工程师
commit fbc184911a5f (2026-07-07) fix: project-106 rename 09_项目总管 -> 09_总工程师
starter 打包 jjwt-impl 运行时依赖
commit b2c9255257a4 (2026-06-05) fix: starter 打包 jjwt-impl 运行时依赖
V3 去重演示订单并为 order_no 加唯一索引
commit a9629b0bc553 (2026-06-07) fix: V3 去重演示订单并为 order_no 加唯一索引
Maven 任务改用 plain 命令以通过 Gitee Go UI 校验
commit 2e8b42b317a5 (2026-06-08) fix(ci): Maven 任务改用 plain 命令以通过 Gitee Go UI 校验
声明 global 变量并合并 clone+mvn 命令
commit a69643b4a163 (2026-06-08) fix(ci): 声明 global 变量并合并 clone+mvn 命令
合并 common install 与 lightning 构建为单 Maven 任务
commit b02393c6f276 (2026-06-08) fix(ci): 合并 common install 与 lightning 构建为单 Maven 任务
project-43 rename 09_项目总管 -> 09_总工程师
commit 338ab442e882 (2026-07-07) fix: project-43 rename 09_项目总管 -> 09_总工程师
install-nginx-path 用 awk 注入,兼容路径与 default_server
commit f7f23432590c (2026-06-05) fix: install-nginx-path 用 awk 注入,兼容路径与 default_server
chain 容器启用 SPRING_PROFILES_ACTIVE=prod
commit 7dc489244391 (2026-06-07) fix: chain 容器启用 SPRING_PROFILES_ACTIVE=prod
finalize-gitee-rename 仓库路径计算
commit 1fc8add35b5f (2026-06-08) fix: finalize-gitee-rename 仓库路径计算
MySQL 应用用户授予 xianzhi_base/chain 权限脚本
commit 6f6979d656a1 (2026-06-08) fix: MySQL 应用用户授予 xianzhi_base/chain 权限脚本
project-71 校验改用 build@nodejs,CI 无 docker 时跳过 compose
commit f0b4d0e31ea6 (2026-06-08) fix(ci): project-71 校验改用 build@nodejs,CI 无 docker 时跳过 compose
现网部署拉代码统一 SSH,新增 remote 迁移脚本
commit d4916561e8a1 (2026-06-08) fix: 现网部署拉代码统一 SSH,新增 remote 迁移脚本
project-42 rename 09_项目总管 -> 09_总工程师
commit 93f80d77131f (2026-07-07) fix: project-42 rename 09_项目总管 -> 09_总工程师
统一 triggers 格式与 base 流水线
commit 2e31068f8756 (2026-06-08) fix(ci): 统一 triggers 格式与 base 流水线
project-41 rename 09_项目总管 -> 09_总工程师
commit ed6979b3fadf (2026-07-07) fix: project-41 rename 09_项目总管 -> 09_总工程师
starter 打包 jjwt-impl 运行时依赖
commit 4283c8dced57 (2026-06-05) fix: starter 打包 jjwt-impl 运行时依赖
单 Maven 任务构建(含 project-41)
commit 24455729d94b (2026-06-08) fix(ci): 单 Maven 任务构建(含 project-41)
project-40 rename 09_项目总管 -> 09_总工程师
commit 95e15ca27655 (2026-07-07) fix: project-40 rename 09_项目总管 -> 09_总工程师
父 POM 跳过 spring-boot:run 避免无 mainClass 报错
commit a41e00bbd5cc (2026-06-05) fix: 父 POM 跳过 spring-boot:run 避免无 mainClass 报错
brain-starter 显式 skip=false 使 spring-boot:run 真正启动
commit d1c2ebc151a7 (2026-06-05) fix: brain-starter 显式 skip=false 使 spring-boot:run 真正启动
单 Maven 任务构建(含 project-41)
commit 2066a8f9ca34 (2026-06-08) fix(ci): 单 Maven 任务构建(含 project-41)
私有 common clone 凭证与 Maven 工作目录
commit 67ae07cb9594 (2026-06-08) fix(ci): 私有 common clone 凭证与 Maven 工作目录
简化 common clone 命令并拆分两阶段 Maven
commit 686bb86621c0 (2026-06-08) fix(ci): 简化 common clone 命令并拆分两阶段 Maven
clone 前校验 XIANZHI_GITEE_TOKEN 非空
commit e4c1996516ff (2026-06-08) fix(ci): clone 前校验 XIANZHI_GITEE_TOKEN 非空
单 Maven 任务构建(含 project-41)
commit e229e3374e6d (2026-06-08) fix(ci): 单 Maven 任务构建(含 project-41)
apis.ts attachAuth 使用 InternalAxiosRequestConfig 修复生产构建
commit c1b5636a51f4 (2026-06-05) fix: apis.ts attachAuth 使用 InternalAxiosRequestConfig 修复生产构建
Vue Router 使用 BASE_URL 修复 /xianzhi/admin/ 子路径白屏
commit 3499ec75f5cd (2026-06-06) fix: Vue Router 使用 BASE_URL 修复 /xianzhi/admin/ 子路径白屏
订单与仪表盘时间格式化为本地可读
commit 16a0b600a5e4 (2026-06-07) fix: 订单与仪表盘时间格式化为本地可读
build@shell 安装 Node 20 构建 admin
commit afc9d7a164fa (2026-06-08) fix(ci): build@shell 安装 Node 20 构建 admin
build@shell 使用 commands 列表并增加 CI 日志标识
commit 4d93e25eb661 (2026-06-08) fix(ci): build@shell 使用 commands 列表并增加 CI 日志标识
改用 build@nodejs 调用 ci-build.sh 规避 shell 插件校验
commit f4c2d2a6c83a (2026-06-08) fix(ci): 改用 build@nodejs 调用 ci-build.sh 规避 shell 插件校验
project-36 rename 09_项目总管 -> 09_总工程师
commit 134e3737575f (2026-07-07) fix: project-36 rename 09_项目总管 -> 09_总工程师
HEALTHCHECK path base=/studio → /studio/api/health
commit ee2e6d6b59b6 (2026-09-14) fix(project-71): HEALTHCHECK path base=/studio → /studio/api/health
trading_cockpit 治理补缺 — attention + hooks + git初始化
commit 5c2442359aa8 (2026-07-06) fix: trading_cockpit 治理补缺 — attention + hooks + git初始化
try conf.d/default.conf and relax server block pattern
commit c352f7829146 (2026-02-21) fix: try conf.d/default.conf and relax server block pattern
project-71-server92.sh use script dir as repo root, /opt/project-101 and server92 rules doc
commit eb0ee3c2abdd (2026-03-06) fix: project-71-server92.sh use script dir as repo root, /opt/project-101 and server92 rules doc
素材命名规范对齐 + 产品数据修复 + 治理框架入库
commit b4a12209d652 (2026-09-12) fix: 素材命名规范对齐 + 产品数据修复 + 治理框架入库
project-71-server92.sh use script dir as repo root, /opt/project-101 and server92 rules doc
commit eb0ee3c2abdd (2026-03-06) fix: project-71-server92.sh use script dir as repo root, /opt/project-101 and server92 rules doc
真相源对齐 — gic-core 4产品状态从已完成修正为进行中 + 项目索引补入 + README 进度表同步
commit 471c4b480c68 (2026-09-10) fix: 真相源对齐 — gic-core 4产品状态从已完成修正为进行中 + 项目索引补入 + README 进度表同步
60页兜底 + gic-core ×4 源程序PDF自动生成 + 7个project.yaml补全配置段
commit db0e5e9999f3 (2026-09-10) fix: 60页兜底 + gic-core ×4 源程序PDF自动生成 + 7个project.yaml补全配置段
修复Gateway路径转发问题 - 将StripPrefix改为1,EventController路径改为/event
commit 5a3eac6e4b09 (2026-02-18) fix: 修复Gateway路径转发问题 - 将StripPrefix改为1,EventController路径改为/event
event-service Flyway 配置与 500 诊断(validate-on-migrate、表与历史一致性检查、方案 A/B/C 与部署流程)
commit 27392910a2a2 (2026-02-18) fix: event-service Flyway 配置与 500 诊断(validate-on-migrate、表与历史一致性检查、方案 A/B/C 与部署流程)
WarningRuleServiceImpl 补充 Map/HashMap import 修复编译错误
commit 2e211a34d047 (2026-03-05) fix(agriculture): WarningRuleServiceImpl 补充 Map/HashMap import 修复编译错误
build with vite only, add typecheck script
commit a1c817f69182 (2026-03-05) fix(admin-web): build with vite only, add typecheck script
disable eslint plugin in production build to avoid ESLint config error
commit 683a20c908f7 (2026-03-05) fix(admin-web): disable eslint plugin in production build to avoid ESLint config error
use lowercase drone path for Linux; add Mission.vue placeholder
commit 7975ef762611 (2026-03-05) fix(admin-web): use lowercase drone path for Linux; add Mission.vue placeholder
reset reportForm by method to avoid const assignment in Event List
commit cddecaa94f5d (2026-03-05) fix(admin-web): reset reportForm by method to avoid const assignment in Event List
Footer 绠€浣撲腑鏂囧厹搴?- 鍏充簬/甯姪/闅愮/鏉℃/鑱旂郴鎴戜滑/璇█/鐗堟潈
commit 5c8ce444dd97 (2026-02-11) fix(i18n): Footer 绠€浣撲腑鏂囧厹搴?- 鍏充簬/甯姪/闅愮/鏉℃/鑱旂郴鎴戜滑/璇█/鐗堟潈
APK download 404 - API return /downloads/ path, frontend use native a with buildApkHref
commit 540eac7c17fd (2026-02-12) fix: APK download 404 - API return /downloads/ path, frontend use native a with buildApkHref
buildApkHref use filename only to avoid double scanflow from cache
commit b1057e18f557 (2026-02-12) fix: buildApkHref use filename only to avoid double scanflow from cache
use relative path ../downloads/ for APK to avoid Next router adding basePath again
commit 5dcccb2255e6 (2026-02-12) fix: use relative path ../downloads/ for APK to avoid Next router adding basePath again
APK download via button onClick to avoid href being rewritten
commit 44aa86da24c6 (2026-02-12) fix: APK download via button onClick to avoid href being rewritten
hardcode origin for 8.134.64.92 to force correct APK URL
commit 1b368216974a (2026-02-12) fix: hardcode origin for 8.134.64.92 to force correct APK URL
APK 涓嬭浇 404 - 涓?CTA 鏀逛负 button+onClick 缂栫▼璺宠浆锛屾枃妗d笌 Nginx 娉ㄩ噴
commit 15f81e76d419 (2026-02-12) fix(download): APK 涓嬭浇 404 - 涓?CTA 鏀逛负 button+onClick 缂栫▼璺宠浆锛屾枃妗d笌 Nginx 娉ㄩ噴
按钮跳转用 window.location.origin 即时拼 URL,彻底避免双 scanflow
commit 52ca026e374d (2026-02-12) fix(download): 按钮跳转用 window.location.origin 即时拼 URL,彻底避免双 scanflow
scanflow_website 治理补缺 + Gitea远程
commit f2a01deba1f9 (2026-07-07) fix: scanflow_website 治理补缺 + Gitea远程
AppTypography and PdfPreview onError for release build
commit aedd21a8aeb0 (2026-02-10) fix: AppTypography and PdfPreview onError for release build
remove duplicate backgroundColor in splash_screen, use titleLarge in camera_screen
commit ebd4c7482026 (2026-02-11) fix: remove duplicate backgroundColor in splash_screen, use titleLarge in camera_screen
Android adaptive icon dark bg, 8-point crop, i18n and OCR fixes
commit 8a943dbbab2b (2026-02-15) fix: Android adaptive icon dark bg, 8-point crop, i18n and OCR fixes
remove double semicolon in image_edit_screen
commit 0166e5ef45b6 (2026-02-15) fix: remove double semicolon in image_edit_screen
multi-image save as image crash - sync current page file, storage init and thumbnail safety
commit 5c850a88fe66 (2026-02-15) fix: multi-image save as image crash - sync current page file, storage init and thumbnail safety
鎵弿鐣岄潰涔辩爜銆乻torage_service 涔辩爜銆佹棤闅滅 Semantics銆佸崟鍏冩祴璇曚笌 analyzer 浼樺寲
commit 44a2837f65ea (2026-02-15) fix: 鎵弿鐣岄潰涔辩爜銆乻torage_service 涔辩爜銆佹棤闅滅 Semantics銆佸崟鍏冩祴璇曚笌 analyzer 浼樺寲
continueAdding 鐘舵€佸湪缁х画娣诲姞鏃舵纭繚鎸佷笌鎭㈠
commit 414a45ced71e (2026-02-15) fix(preview): continueAdding 鐘舵€佸湪缁х画娣诲姞鏃舵纭繚鎸佷笌鎭㈠
prevent crash on recognize - messenger capture, file size check, ML Kit guard (standard/pro/team)
commit b93758b2b79f (2026-03-02) fix(ocr): prevent crash on recognize - messenger capture, file size check, ML Kit guard (standard/pro/team)
CI/CD 添加 pip 国内镜像源加速
commit bb5788f79459 (2026-07-11) fix: CI/CD 添加 pip 国内镜像源加速
移除 paths 过滤,master 推送即触发部署
commit 66abab482afd (2026-07-11) fix: 移除 paths 过滤,master 推送即触发部署
python-docx 改为 pip 安装,Deiban Bullseye 无此 apt 包
commit 642a93376cb2 (2026-07-11) fix: python-docx 改为 pip 安装,Deiban Bullseye 无此 apt 包
修复JS注释语法错误导致脚本中断的问题
commit 5e189e4452a7 (2026-07-11) fix: 修复JS注释语法错误导致脚本中断的问题
修复generateAIAnswer函数缺少闭合括号+改名为安全生产知识学习系统
commit aae23cc9228c (2026-07-11) fix: 修复generateAIAnswer函数缺少闭合括号+改名为安全生产知识学习系统
AI改编按钮改用data属性传参修复q未定义错误
commit bde08cda6101 (2026-07-11) fix: AI改编按钮改用data属性传参修复q未定义错误
移除废弃 version 声明消除警告
commit 4d5adaa2c89f (2026-09-14) fix(compose): 移除废弃 version 声明消除警告
E2E 验证发现并修复 3 个 bug
commit 3be036b2ce73 (2026-10-09) fix: E2E 验证发现并修复 3 个 bug
Zustand persist middleware 持久化登录状态
commit f5e0110523b0 (2026-10-09) fix(web/auth): Zustand persist middleware 持久化登录状态
移除 NSIS CHECK_APP_RUNNING 重复宏定义,修复 electron-builder 打包报错
commit c3de4a1e9908 (2026-06-18) fix: 移除 NSIS CHECK_APP_RUNNING 重复宏定义,修复 electron-builder 打包报错
修复 NSIS _CHECK_APP_RUNNING 补丁正则不匹配 + 重复宏定义冲突,彻底解决安装程序无法关闭 Rosdin 进程的问题
commit 6b1d78d53f3a (2026-06-18) fix: 修复 NSIS _CHECK_APP_RUNNING 补丁正则不匹配 + 重复宏定义冲突,彻底解决安装程序无法关闭 Rosdin 进程的问题
archive-internal-release.ps1 纯ASCII重写修复PowerShell编码解析错误
commit ee84fa94278d (2026-06-20) fix: archive-internal-release.ps1 纯ASCII重写修复PowerShell编码解析错误
修复 knowledge_indexer 导入+双重前缀+测试对齐,23/23 PASS
commit 69d253b1efe9 (2026-06-21) 修复 knowledge_indexer 导入+双重前缀+测试对齐,23/23 PASS
rosdin 治理补缺 — attention + hooks + prompts补齐 + charter演化记录
commit ff8ad5bb6e9c (2026-07-06) fix: rosdin 治理补缺 — attention + hooks + prompts补齐 + charter演化记录
rosdin 治理补缺 + Gitea 远程 + 排除编译大文件
commit 5d2b58f90193 (2026-07-06) fix: rosdin 治理补缺 + Gitea 远程 + 排除编译大文件
rosdin STATUS.md 添加 Gitea 远程信息
commit df24cce45caa (2026-07-06) fix: rosdin STATUS.md 添加 Gitea 远程信息
插件详情页mock数据补全,修复未知插件和Invalid Date问题
commit f3ff94088e13 (2026-06-18) fix: 插件详情页mock数据补全,修复未知插件和Invalid Date问题
vite.config.ts 修复构建失败 - 移除未安装的cytoscape/gsap manualChunks,切换minify为esbuild
commit 8ad53e1562f5 (2026-06-20) fix: vite.config.ts 修复构建失败 - 移除未安装的cytoscape/gsap manualChunks,切换minify为esbuild
SSR localStorage guards, adapter-node, RoAssistant container removal (BUG-0036~006)
commit a399422e8043 (2026-09-05) fix: SSR localStorage guards, adapter-node, RoAssistant container removal (BUG-0036~006)
carbon-ack 记录认证身份与硬闸实况,并按实际条件降级效力声明。原实现 actor 由请求方自填(默认可填 carbon:executive)且不记录认证 token label、不记录 Doc-57 硬闸是否生效,而文书却无条件声称《效力与会话回复同等(Doc-40)》—— 因 GOVERNANCE_HARD_WRITE 三处均未设、硬闸实为 no-op,该声明在缺证明时不成立。现新增 caller/attestation 字段,未附证明时显式标注为 Soft 级且不等同 Doc-40;acto
commit 6c3b976e02e9 (2026-09-30) fix(governance): carbon-ack 记录认证身份与硬闸实况,并按实际条件降级效力声明。原实现 actor 由请求方自填(默认可填 carbon:executive)且不记录认证 token label、不记录 Doc-57 硬闸是否生效,而文书却无条件声称《效力与会话回复同等(Doc-40)》—— 因 GOVERNANCE_HARD_WRITE 三处均未设、硬闸实为 no-op
P0-6 补提交 2 个未跟踪 prompt 文件
commit 6079e03f98de (2026-10-03) fix(gov-prompts): P0-6 补提交 2 个未跟踪 prompt 文件
strat_status 词表补 draft —— 词表缺口而非数据缺陷
commit 07e9e92ffdf8 (2026-10-03) fix(audit): strat_status 词表补 draft —— 词表缺口而非数据缺陷
修复 JobHandle 竞态条件、内存泄漏和 UTF-8 截断 panic
commit 14a25f49b6a0 (2026-08-11) fix(safety): 修复 JobHandle 竞态条件、内存泄漏和 UTF-8 截断 panic
主题切换「跟随系统」误用太阳图标, 与「浅色」完全重复(B-17)
commit 121e5653f200 (2026-10-04) fix(ui): 主题切换「跟随系统」误用太阳图标, 与「浅色」完全重复(B-17)
浅色主题用户气泡改柔和深灰, 并补两处配色缺陷(B-18)
commit 5730a6ac6d83 (2026-10-04) fix(theme): 浅色主题用户气泡改柔和深灰, 并补两处配色缺陷(B-18)
B-19 气泡内元信息几乎不可见(实测 1.55:1)
commit f98c828dda7e (2026-10-04) fix(readability): B-19 气泡内元信息几乎不可见(实测 1.55:1)
B-19 用例 flaky(推送后复跑 2/3 失败) —— 改由 canvas 解析颜色
commit d19d62eba557 (2026-10-04) fix(e2e): B-19 用例 flaky(推送后复跑 2/3 失败) —— 改由 canvas 解析颜色
主题审计覆盖选中态, 并修掉一个会产生假失败的解析器 bug (B-20)
commit 0323b9c88a35 (2026-10-04) fix(audit): 主题审计覆盖选中态, 并修掉一个会产生假失败的解析器 bug (B-20)
移除文档中泄露的真实 DeepSeek key, 并补上文档目录扫描 (B-03 修订)
commit c249b07a6e8e (2026-10-04) fix(security): 移除文档中泄露的真实 DeepSeek key, 并补上文档目录扫描 (B-03 修订)
测试里的 key 字面量改为运行时拼装 (被自己的审计抓到)
commit 39cd31340134 (2026-10-04) fix(security): 测试里的 key 字面量改为运行时拼装 (被自己的审计抓到)
补 location = /metrics 透传
commit e4044d84f1c7 (2026-10-04) fix(nginx): 补 location = /metrics 透传
project-31 rename 09_项目总管 -> 09_总工程师
commit c8f15094a9c8 (2026-07-07) fix: project-31 rename 09_项目总管 -> 09_总工程师
Kotlin 1.9 global override top-level subprojects
commit bdac0f33238c (2026-09-26) fix(gradle): Kotlin 1.9 global override top-level subprojects
project-86 案例清内部措辞 5域名LIVE/知识产权 AI原生
commit 38cb42f4e463 (2026-09-23) fix: project-86 案例清内部措辞 5域名LIVE/知识产权 AI原生
清 about/Footer 知识产权声明 只留 terms 法律条款
commit b2d3c4bf1fd9 (2026-09-23) fix: 清 about/Footer 知识产权声明 只留 terms 法律条款
恢复 data.ts 完整函数 + 清内部措辞(截断修复)
commit 66d411006557 (2026-09-23) fix: 恢复 data.ts 完整函数 + 清内部措辞(截断修复)
UC 绑定冲突时先解绑老账户再绑新账户
commit 96a4cea714af (2026-09-24) fix: UC 绑定冲突时先解绑老账户再绑新账户
merge 500 - 手写 BEGIN/COMMIT 改成 db.transaction()
commit e22f2f6645a5 (2026-09-24) fix: merge 500 - 手写 BEGIN/COMMIT 改成 db.transaction()
SSO Phase 2 — authorize-direct JSON 端点 + SameSite:none + userinfo alias
commit 7e4d054ca16e (2026-09-25) fix(uc): SSO Phase 2 — authorize-direct JSON 端点 + SameSite:none + userinfo alias
全站体检修复 — SEO旧域名回退/导航死链/标题重复/blog列表页
commit 69ebd5074144 (2026-10-02) fix(site): 全站体检修复 — SEO旧域名回退/导航死链/标题重复/blog列表页
storeHooks any -> unknown in selectors generic
commit a6a98809fe4c (2026-10-05) fix(types): storeHooks any -> unknown in selectors generic
scope provider health to selected provider, stop ollama-only red strip
commit fde5e1cb2c33 (2026-10-05) fix(chat): scope provider health to selected provider, stop ollama-only red strip
收尾他会话遗留——AgentRole.line 防御访问(原 any[] 掩盖 481 行)
commit 92b7f13f5c9c (2026-10-05) fix(types): 收尾他会话遗留——AgentRole.line 防御访问(原 any[] 掩盖 481 行)
INSTR-285 provider 探测改由后端自取明文(修 P0 状态条误报离线)
commit 812e62a9ac11 (2026-10-05) fix(chat): INSTR-285 provider 探测改由后端自取明文(修 P0 状态条误报离线)
manualChunks 改路径边界匹配并合并 monaco 簇(修循环 chunk 依赖)
commit bb143ec94d8f (2026-10-05) fix(build): manualChunks 改路径边界匹配并合并 monaco 簇(修循环 chunk 依赖)
10 any 清理 + Window 全局类型 + ProviderConfig.enabled 直接访问
commit 6ede188ff3d8 (2026-10-06) fix: 10 any 清理 + Window 全局类型 + ProviderConfig.enabled 直接访问
pre-push tsc STATUS_ACCESS_VIOLATION — absolute path + --max-old-space-size=4096; update STREAM-002 §十 with Hard #2/#3/#9 completion
commit 57a8174e8123 (2026-10-06) fix(hook): pre-push tsc STATUS_ACCESS_VIOLATION — absolute path + --max-old-space-size=4096; update STREAM-002 §十 with Hard #2/#3/#9 completion
mockGovernanceApi Promise<any> -> 具体接口类型
commit cc47943fa537 (2026-10-06) fix: mockGovernanceApi Promise<any> -> 具体接口类型
测试连接支持临时 config,先测试再保存
commit de1307980269 (2026-09-10) fix(provider): 测试连接支持临时 config,先测试再保存
侧边栏返回官网 href 修复(上次编辑误改了位置)
commit a605372d7a3e (2026-09-10) fix: 侧边栏返回官网 href 修复(上次编辑误改了位置)
admin.py test_provider 空 config 处理
commit c90088b189eb (2026-09-12) fix: admin.py test_provider 空 config 处理
risks 4 桩端点全部 REAL — 详情/处置/升级/趋势 + 12 新测试
commit fb77279f73b2 (2026-09-12) fix: risks 4 桩端点全部 REAL — 详情/处置/升级/趋势 + 12 新测试
EventLog 主键 event_id 不是 id
commit 59f7cf24d45b (2026-09-12) fix: EventLog 主键 event_id 不是 id
remove auth from GET endpoints so admin.html can fetch without token
commit 32b6704a32ef (2026-09-20) fix: remove auth from GET endpoints so admin.html can fetch without token
熵判据加行数上限 —— 它本为裸令牌设计,却误伤了 JSON/YAML(治理仓 21 条假阳性 → 0)
commit b472bdd8df92 (2026-09-30) fix(compliance): 熵判据加行数上限 —— 它本为裸令牌设计,却误伤了 JSON/YAML(治理仓 21 条假阳性 → 0)
轮换 vaultwarden ADMIN_TOKEN 为 argon2id —— 消除已知泄露
commit 5ab3ec285ac3 (2026-10-01) fix(security): 轮换 vaultwarden ADMIN_TOKEN 为 argon2id —— 消除已知泄露
修复 148 个 U+FE0F 受损文件 + 守卫加 --all/归一化判定 + 受损清单
commit 15eaf20876f2 (2026-10-03) fix(guard+data): 修复 148 个 U+FE0F 受损文件 + 守卫加 --all/归一化判定 + 受损清单
ack 判定只在 --staged 生效 —— 修本器自身的误报
commit a3a35623886c (2026-10-03) fix(guard): ack 判定只在 --staged 生效 —— 修本器自身的误报
把法律/商业标记(™/®/©)独立为 ADVISORY 类 —— 不与"损坏"混判
commit 0df834983bb2 (2026-10-03) fix(guard): 把法律/商业标记(™/®/©)独立为 ADVISORY 类 —— 不与"损坏"混判
governance-api 服务器部署兼容
commit 03ecfd4f65b7 (2026-10-08) fix(os): governance-api 服务器部署兼容
360 家族双款识别修正 + CDP 回环探测去代理 (OH-DOC-064)
commit 437fe5545516 (2026-10-05) fix(browser): 360 家族双款识别修正 + CDP 回环探测去代理 (OH-DOC-064)
传输路径白名单按词法规范化判边界(防 `..` 绕过)
commit 0a8e4b7add32 (2026-10-05) fix(ssh): 传输路径白名单按词法规范化判边界(防 `..` 绕过)
AP/AR 跳转订单详情时 ID 不在当前分页列表里会静默失败
commit e1636ad36981 (2026-09-22) fix(finance): AP/AR 跳转订单详情时 ID 不在当前分页列表里会静默失败
后端 BOM 接口补 product_name/product_sku/component_name/component_sku
commit 7d06e3650651 (2026-09-22) fix(bom): 后端 BOM 接口补 product_name/product_sku/component_name/component_sku
ai_agent.py 加 prefix /ai + router.py include — 所有 Agent endpoint 可用
commit a09bd41abf64 (2026-09-22) fix(ai): ai_agent.py 加 prefix /ai + router.py include — 所有 Agent endpoint 可用
agent execute success=False 区分 400 vs 404 错误码
commit edf91d249733 (2026-09-22) fix(ai): agent execute success=False 区分 400 vs 404 错误码
批量修历史测试失败 (models alias + tenant_id coerce + relative import + BOM)
commit cccf39613cd8 (2026-09-23) fix(test): 批量修历史测试失败 (models alias + tenant_id coerce + relative import + BOM)
alias stub 加 transaction_date + InventoryMovement 兼容 transaction_type + status enum 补新状态
commit 633860df7d26 (2026-09-23) fix(test): alias stub 加 transaction_date + InventoryMovement 兼容 transaction_type + status enum 补新状态
状态枚举补 at_supplier + JSON BOM + cost_anomaly assertion 匹配实际返回
commit aa7c54d7f2f4 (2026-09-23) fix(test): 状态枚举补 at_supplier + JSON BOM + cost_anomaly assertion 匹配实际返回
pgx stdlib scan issues - complete scheduler E2E pipeline
commit b8836162bed0 (2026-09-17) fix: pgx stdlib scan issues - complete scheduler E2E pipeline
scheduler next_run_at drift — anchor on planned cron time, not execution end
commit 94f32947dd8e (2026-09-17) fix: scheduler next_run_at drift — anchor on planned cron time, not execution end
rename ssl-renewer example to .go.example so go build skips it
commit 70d204f4d6f7 (2026-09-19) fix: rename ssl-renewer example to .go.example so go build skips it
加加载契约头部 Prompt v2.0+ — 织识者(18) 治理修复
commit 70b122195b1d (2026-09-20) fix: 加加载契约头部 Prompt v2.0+ — 织识者(18) 治理修复
鏁版嵁婧愮敤 postgres銆丏B 瀵嗙爜鐜鍙橀噺涓?Flyway/Spring 鍚姩鑴氭湰
commit 8bc28b8d3d19 (2026-02-21) fix: 鏁版嵁婧愮敤 postgres銆丏B 瀵嗙爜鐜鍙橀噺涓?Flyway/Spring 鍚姩鑴氭湰
project-26 rename 09_项目总管 -> 09_总工程师
commit f80b66fdf0b8 (2026-07-07) fix: project-26 rename 09_项目总管 -> 09_总工程师
make verify-after-project-71.ps1 parser-safe
commit dcdffda33c5c (2026-03-31) fix: make verify-after-project-71.ps1 parser-safe
set Go proxy for reliable module download
commit 645c35efbee4 (2026-03-31) fix(project-71): set Go proxy for reliable module download
run go mod tidy in image build
commit fb9ce4445771 (2026-03-31) fix(project-71): run go mod tidy in image build
use chi With() for CRM permission routes (Handler vs HandlerFunc)
commit 485ff7064f79 (2026-03-31) fix(core): use chi With() for CRM permission routes (Handler vs HandlerFunc)
CRM customer PUT/DELETE match /customers/{id} without trailing slash
commit fd9353a3afd4 (2026-03-31) fix(core): CRM customer PUT/DELETE match /customers/{id} without trailing slash
CRM id routes with and without trailing slash
commit 6aa92f417b87 (2026-03-31) fix(core): CRM id routes with and without trailing slash
add POST /customers/{id}/delete for proxy/WAF; portal uses it
commit 934729347522 (2026-03-31) fix(crm): add POST /customers/{id}/delete for proxy/WAF; portal uses it
chown upload volume on start so file uploads work with non-root app user
commit 308488a9d4b1 (2026-03-31) fix(core): chown upload volume on start so file uploads work with non-root app user
force gunicorn for prod backend to avoid APScheduler pool contention
commit e98c7904442f (2026-04-13) fix(ops): force gunicorn for prod backend to avoid APScheduler pool contention
decouple scheduled tasks from API server to resolve connection pool exhaustion
commit d06eee560bd0 (2026-04-13) fix(architecture): decouple scheduled tasks from API server to resolve connection pool exhaustion
base PgBouncer image on postgres alpine and disable build pull for Hub
commit 7d914ddc9ebf (2026-04-13) fix(project-71): base PgBouncer image on postgres alpine and disable build pull for Hub
run PgBouncer as pgbouncer user to satisfy non-root requirement
commit 1aa47f74b142 (2026-04-13) fix(project-71): run PgBouncer as pgbouncer user to satisfy non-root requirement
detect userlist.txt as directory and document recovery for PgBouncer auth
commit fb05d125a645 (2026-04-13) fix(ops): detect userlist.txt as directory and document recovery for PgBouncer auth
show gateway hints when login response is non-JSON (e.g. 502 HTML)
commit 0ae6e2f83105 (2026-04-13) fix(login): show gateway hints when login response is non-JSON (e.g. 502 HTML)
Windows 终端乱码修复 — ASCII 输出 + UTF-8 reconfigure
commit e979c3180272 (2026-10-09) fix(scripts): Windows 终端乱码修复 — ASCII 输出 + UTF-8 reconfigure
管理端侧栏内部滚动,顶栏固定不随页面卷走
commit e2ffefdfe3bd (2026-09-14) fix: 管理端侧栏内部滚动,顶栏固定不随页面卷走
Redis GenericJackson2JsonRedisSerializer 加 JavaTimeModule 支持 LocalDateTime 序列化
commit c27d3c9e7134 (2026-09-23) fix: Redis GenericJackson2JsonRedisSerializer 加 JavaTimeModule 支持 LocalDateTime 序列化
修复装修页横向溢出与缓存问题
commit 27cc424070f7 (2026-09-29) fix(decoration): 修复装修页横向溢出与缓存问题
project-22 治理补缺
commit 93c15b89b16f (2026-07-06) fix: project-22 治理补缺
工具链zip重命名重试,ExtractOnly支持完整.part文件
commit 02700f3b4bcc (2026-06-07) fix: 工具链zip重命名重试,ExtractOnly支持完整.part文件
ARM工具链改用BITS下载,移除curl限速误中断
commit f27344e00b88 (2026-06-07) fix: ARM工具链改用BITS下载,移除curl限速误中断
ExtractOnly 先将完整.part 重命名为.zip 再解压
commit b73e2bee1d66 (2026-06-07) fix: ExtractOnly 先将完整.part 重命名为.zip 再解压
仅Arm CDN安装,校验zip完整性,清理损坏缓存
commit 72d7f81c7768 (2026-06-07) fix: 仅Arm CDN安装,校验zip完整性,清理损坏缓存
ARM工具链优先curl下载,增强重试与超时
commit f87bd13e89f3 (2026-06-07) fix: ARM工具链优先curl下载,增强重试与超时
勿删除可续传.part,新增 wait-arm-download 脚本
commit 587bbe6e9e9d (2026-06-07) fix: 勿删除可续传.part,新增 wait-arm-download 脚本
CubeMX build preflight check and ARM comment warnings
commit f1432b0500e5 (2026-06-08) fix: CubeMX build preflight check and ARM comment warnings
project-20 rename 09_项目总管 -> 09_总工程师
commit a828c209f9bd (2026-07-07) fix: project-20 rename 09_项目总管 -> 09_总工程师
project-19 rename 09_项目总管 -> 09_总工程师
commit e9bd89afdc46 (2026-07-07) fix: project-19 rename 09_项目总管 -> 09_总工程师
build & install GTest from source (apt only provides sources)
commit 452307c9b00e (2026-07-06) fix(ci): build & install GTest from source (apt only provides sources)
disable GTest tests in CI - only verify engine compilation
commit b9399e327193 (2026-07-06) fix(ci): disable GTest tests in CI - only verify engine compilation
add missing include for orderCorners in perspective.cpp
commit adeba50323aa (2026-07-06) fix(engine): add missing include for orderCorners in perspective.cpp
replace RGBA color constants with RGB (OpenCV 4.5.1 compat)
commit 306bec09cf8c (2026-07-06) fix(engine): replace RGBA color constants with RGB (OpenCV 4.5.1 compat)
project-84 治理补缺 — attention + hooks + prompts补齐
commit fbb11334e61d (2026-07-06) fix: project-84 治理补缺 — attention + hooks + prompts补齐
7 cross-domain broken links — EX-53 跨域 transport/warehouse/executive + EX-60 跨域 finance
commit f1918272facd (2026-09-20) fix(hub): 7 cross-domain broken links — EX-53 跨域 transport/warehouse/executive + EX-60 跨域 finance
放开页面权限 4%→93% + command-center 暗色 sidebar 适配
commit be1641a8d676 (2026-09-20) fix(nav): 放开页面权限 4%→93% + command-center 暗色 sidebar 适配
get_conn 改为 contextmanager finally close 根治 psycopg2 连接泄漏
commit b3488f73efc9 (2026-09-24) fix(db): get_conn 改为 contextmanager finally close 根治 psycopg2 连接泄漏
disable auth_basic password gate on 12358.ai
commit 79a2a7108a31 (2026-09-29) fix(nginx): disable auth_basic password gate on 12358.ai
修正project-02为代理记账/DEV-004归入农业大棚IoT
commit be03b237953b (2026-07-08) fix: 修正project-02为代理记账/DEV-004归入农业大棚IoT
移除uvicorn[standard] extras避免watchfiles依赖缺失
commit 7deeefc0bd0d (2026-07-08) fix: 移除uvicorn[standard] extras避免watchfiles依赖缺失
提高置顶按钮可见度(opacity 0.4→0.7),优先级标签添加tooltip说明
commit 2858bed0be50 (2026-07-08) fix: 提高置顶按钮可见度(opacity 0.4→0.7),优先级标签添加tooltip说明
项目详情优先级标签加tooltip
commit 83b6628010ff (2026-07-08) fix: 项目详情优先级标签加tooltip
移除backend/main.py中不存在的/static/finance/index.html引用
commit 6bdb3a407bb4 (2026-07-08) fix: 移除backend/main.py中不存在的/static/finance/index.html引用
iframe页面内容区域增加content-area包裹层,确保flex布局高度正确计算
commit 9a354b0496ce (2026-07-08) fix: iframe页面内容区域增加content-area包裹层,确保flex布局高度正确计算
iframe加载时显示加载中提示
commit 96cb278b9b0b (2026-07-08) fix: iframe加载时显示加载中提示
置顶按钮增加文字标签,增强视觉可见性
commit c4b3e0f70291 (2026-07-08) fix: 置顶按钮增加文字标签,增强视觉可见性
移除 project-83-generated 命名卷,生成页面直接写入宿主機 shared 目录
commit b8dc733492ca (2026-07-08) fix: 移除 project-83-generated 命名卷,生成页面直接写入宿主機 shared 目录
淇鏋勫缓閿欒 - 绉婚櫎autoSort鍙傛暟銆佷慨澶嶅瓧绗︿覆缂栫爜銆佹洿鏂癎radle閰嶇疆
commit e2a42de4e47a (2026-02-08) fix: 淇鏋勫缓閿欒 - 绉婚櫎autoSort鍙傛暟銆佷慨澶嶅瓧绗︿覆缂栫爜銆佹洿鏂癎radle閰嶇疆
Fix build errors and add Windows desktop support
commit cf09899b48f9 (2026-02-09) Fix build errors and add Windows desktop support
project-82 rename 09_项目总管 -> 09_总工程师
commit a08cded9edeb (2026-07-07) fix: project-82 rename 09_项目总管 -> 09_总工程师
project-81 rename 09_项目总管 -> 09_总工程师
commit afd98069f81f (2026-07-07) fix: project-81 rename 09_项目总管 -> 09_总工程师
思源黑体容器路径优先级 + 去掉 monkey-patch + parse-pdf 真推 Notification
commit 6b8d6658e6ff (2026-09-23) fix(font): 思源黑体容器路径优先级 + 去掉 monkey-patch + parse-pdf 真推 Notification
存量测试修复 + 生产级加固
commit 0ac666f3518a (2026-10-02) fix: 存量测试修复 + 生产级加固
密码哈希默认切换 PBKDF2-SHA256,遗留 bcrypt 保留分派
commit 470d3eb71980 (2026-10-03) fix(security): 密码哈希默认切换 PBKDF2-SHA256,遗留 bcrypt 保留分派
删除遮蔽真 celery 包的历史空壳 __init__.py
commit 5df3279a2f15 (2026-10-03) fix(build): 删除遮蔽真 celery 包的历史空壳 __init__.py
单机模式 Celery 任务从未注册, 周期任务 100% 静默失效
commit d25f5fd7497f (2026-10-03) fix(backend): 单机模式 Celery 任务从未注册, 周期任务 100% 静默失效
同步 URL 降级逻辑上收, 修掉单机发邮件必失败
commit 68d6f45605cb (2026-10-03) fix(backend): 同步 URL 降级逻辑上收, 修掉单机发邮件必失败
messages API LIMIT/OFFSET 棰勭紪璇戝弬鏁板鑷?ER_WRONG_ARGUMENTS锛屾敼涓哄畨鍏ㄦ暣鏁版嫾鎺ワ紱琛ュ厖 Gitee 娴佹按绾块厤缃枃妗e強璺敱/娴嬭瘯淇
commit 1ea31d7fe1a9 (2026-02-21) fix: messages API LIMIT/OFFSET 棰勭紪璇戝弬鏁板鑷?ER_WRONG_ARGUMENTS锛屾敼涓哄畨鍏ㄦ暣鏁版嫾鎺ワ紱琛ュ厖 Gitee 娴佹按绾块厤缃枃妗e強璺敱/娴嬭瘯淇
project-79 治理补缺 + Gitea远程
commit eec8c1fcfacb (2026-07-06) fix: project-79 治理补缺 + Gitea远程
infra-project-71 rename 09_项目总管 -> 09_总工程师
commit 3070058e2ab9 (2026-07-07) fix: infra-project-71 rename 09_项目总管 -> 09_总工程师
F-path v0.6 fileOverlap-first scoring - resolve 94.6% orphanRate
commit 48d6af40f398 (2026-09-17) fix: F-path v0.6 fileOverlap-first scoring - resolve 94.6% orphanRate
exclude auto-sync commits from matching + fix stale traces.json on SKIP
commit 64b8254845cd (2026-09-17) fix(fpath): exclude auto-sync commits from matching + fix stale traces.json on SKIP
--skip-workspace/--skip-ungrouped flags + auto-update latest junction
commit dbb3988653e9 (2026-09-25) fix(bulk-export): --skip-workspace/--skip-ungrouped flags + auto-update latest junction
Fix frontend routing issues and user store duplicate key
commit 9fd099ab39a1 (2025-10-20) Fix frontend routing issues and user store duplicate key
项目完工修复 - Maven全模块构建闭环
commit 38816b0c9e19 (2026-09-12) fix: 项目完工修复 - Maven全模块构建闭环
CertificationMaterialController 删除接口 Result.success(null) 语义hack清理
commit 98b5f6a8467e (2026-09-12) fix: CertificationMaterialController 删除接口 Result.success(null) 语义hack清理
修复 Gateway YAML spring.cloud 块被脚本拆开 + backend.env 补 NACOS_SERVER
commit 8143224ee0f3 (2026-09-12) fix: 修复 Gateway YAML spring.cloud 块被脚本拆开 + backend.env 补 NACOS_SERVER
修复 RATE_LIMIT_MAX_HITS 环境变量重复定义
commit 951ad076ed8e (2026-08-14) fix(helm): 修复 RATE_LIMIT_MAX_HITS 环境变量重复定义
补充 degradationFactor/upgradeFactor 环境变量支持
commit 56826858c64a (2026-08-14) fix(adaptive-rate-limiter): 补充 degradationFactor/upgradeFactor 环境变量支持
Trae IDE 不读项目级 .trae/mcp.json — 批量部署 326 个配置文件白改
project-69-wiki MCP 在 88% 的 Trae session 里不可用,飞轮规则文件即使 alwaysApply: true 也没有工具可调用
DNS-01 hook 把「支持的域名」当成「DNS zone」—— 子域名验证必然 400
把 9 张走 HTTP-01 的证书迁到 DNS-01 时,4 张成功、5 张失败;失败的【全部】是同一个注册域的子域名。用 hook 手动测试:子域名 add → HTTP 400;顶级域 add → 成功写入 TXT。
python3 -c "import spec_from_file_location...; print(split_zone_rr('accounts.example.com'))" # 期望 zone=example.comKNOWN_ZONES = [".cn", "cognx.cn", "project-06.com", "project-11", "audix.work"] # 只保留真实 zone,移除所有子域名前后端字段命名契约漂移 —— camelCase vs snake_case 两轮爆发(Admin 25 错 → PC 81 错)
PC 端构建被 81 个类型错误阻塞。修复 Admin 端同类错误后仅两个月,同型错误在另一端再次积累到阻塞级别——修 bug 的速度赶不上制造的速度。
npx tsc -b --pretty false 2>&1 | grep -c 'error TS';grep -rn 'attempt_count\|[a-z]_[a-z]' <前端 types> --include='*.ts' | head导入脚本硬编码跳过开发库时代的 ID 段 —— 生产空库静默吞掉 41/230 条
生产库导入『成功』,但总量对不上——41 条被历史防重保护静默吞掉,无任何告警。
导入后: SELECT COUNT(*) FROM bugs; 与输入 JSON 条数比对caeResult 变量作用域 bug —— gate 日志里授权决策永远是 unknown
bootstrap gate 日志的 cae_decision 字段永远是 'unknown'——审计日志看似在工作,实际没记录任何有效决策
限流拦截器三连 bug:exclude 路径错、登录接口被限、JWT 密钥硬编码
限流上线后正常用户登录被 429(登录接口也算进 200/min),健康检查路径写错没排除;审计发现 JWT 签名密钥是硬编码字符串
@ts-nocheck 掩盖 6 个页面的真实类型 bug —— 摘除后逐个现形(Bearer 残留/token 重复声明/错误类型导入)
代码库靠 6 个页面顶部 @ts-nocheck 维持编译绿灯, underneath 的类型错误长期无人发现,运行时表现为残留 'Bearer ' 前缀拼接错误、变量重复声明等
Bug 萃取深度仅停留在业务层(Layer 5-7),19 种 fix_type 无架构穿透;port-confl 只说 8000 被占,不说 OS bind 语义+文件描述符表
## 架构层标注 primary_layer: L5 框架/应用层 crossing_layers: 完全无穿透(单层 L7) ## 因果链 symptoms → Layer 7: 406 条已发布 bug 的 root_cause 全是一句话表层描述 → Layer 6: AI 萃取 prompt 只要求一句话 root_cause,无深度要求 → Layer 4: BugReportRequest schema 虽有 2000 字 root_cause 自由文本,但没有结构化的架构层字段 → Layer 5: 19 种 fix_type 全在 Layer 5-7,无架构层分类选项(AI 只能选业务域) ## 系统风险 所有消费端 AI 助手 search_bug 后只会拿到表层修复方案,无法举一反三。port-confl 只说 kill 进程,不说 EADDRINUSE 跨进程 bind 语义 → 下次遇到 EADDRINUSE 还得重新搜。
bug_id 前缀聚类反推项目身份 —— 别名体系被编号前缀击穿
对外发布的脱敏数据里,按 bug_id 前缀聚类可把 project-01 还原回内部代号,再用代号去公共仓库/commit 搜索即可串出组织信息——别名被旁路。
按 bug_id 前缀 GROUP BY 统计簇分布;前缀-项目映射唯一率过高即告警SPA 部署在 /admin/ 子路径但 BrowserRouter 未设 basename —— /login 等路由落到主站 404
管理后台登录后/401 时整页跳转 window.location.href=/login,浏览器请求站点根路径 /login/ 被主站 Next.js 返回 404;直接刷新 /admin/bugs 等深层路由也会 404
前端试图读取 httpOnly cookie 判断登录态 —— 永远读不到,永远显示登录按钮
用户已登录但导航栏永远显示『登录』按钮;刷新无效,因为 HttpOnly cookie 对 JS 永不可见——这是协议设计而非 bug。
grep -rn 'document.cookie' <前端源码> | grep -i session;核对对应 cookie 是否 HttpOnlyreport_bug_knowledge 后端 schema 尚未支持 guardrail_rules 字段
带 guardrail_rules 的 report_bug_knowledge 调用返回 500
文档体系数据漂移:18 种 fix_type 改 19 种、6 个 MCP 工具改 7 个、生产 Bug 数 0 条改 406 条——三个权威文档脱节
## 架构层标注 primary_layer: L5 文档/框架层 crossing_layers: L5 → L4 ## 因果链 symptoms → Layer 5: 三份权威文档(AI-INDEX / AI_SYSTEM_DESIGN / AI-第三方全景)的核心数据点(Bug 数、MCP 工具数、fix_type 数)全部漂移 → Layer 4: 缺少单一事实来源(SSOT)自动对齐机制——数据改了没人通知文档 → Layer 5: MCP server 新增 get_guardrails 工具时没有同步更新文档 checklist ## 系统风险 三个权威文档数据脱节会导致:①AI 助手进项目看到旧数据做错误决策;②新贡献者对项目现状判断错误;③跨项目角色(如解牛者)萃取的数据不可信。
信封 priority 去硬编码 —— 原 _build_envelope 写死 P0 使每条跨项目消息都自称最高优先级(实测 inbox 79.4% 为 P1-or-urgent,优先级丧失分诊能力);改为参数默认 P2,经 run() 透传;已核实不影响 storm/IRQ 降级路由(其读 envelope.irq.priority)
commit 382e5f14886d (2026-09-30) fix(metrics): 信封 priority 去硬编码 —— 原 _build_envelope 写死 P0 使每条跨项目消息都自称最高优先级(实测 inbox 79.4% 为 P1-or-urgent,优先级丧失分诊能力);改为参数默认 P2,经 run() 透传;已核实不影响 storm/IRQ 降级路由(其读 envelope.irq.priority)
A3 落地 —— 治理总线事件不得被项目消费器消费。CR-20260930-010 §四:governance.* 前缀事件保留在项目 inbox 原处、只记录不移动(实测原先 67 个被静默移入 archive/events/*.skipped.json,即治理投递给治理对象的正式文书被对方归档为垃圾)。可用 project-75_MOVE_GOVERNANCE_EVENTS=1 显式恢复旧行为
commit 71db2133ca1f (2026-09-30) fix(bus): A3 落地 —— 治理总线事件不得被项目消费器消费。CR-20260930-010 §四:governance.* 前缀事件保留在项目 inbox 原处、只记录不移动(实测原先 67 个被静默移入 archive/events/*.skipped.json,即治理投递给治理对象的正式文书被对方归档为垃圾)。可用 project-75_MOVE_GOVERNANCE_EVENTS=1 显
给独立脚本加 //go:build ignore,修复全仓 go build ./...(双 main 冲突)
commit bdd2367e6220 (2026-09-10) fix(scripts): 给独立脚本加 //go:build ignore,修复全仓 go build ./...(双 main 冲突)
补提交 UpdateHeartbeat last_beat 字段 + INSTR/MS 工件
commit af3318a88592 (2026-09-14) fix(INSTR-350): 补提交 UpdateHeartbeat last_beat 字段 + INSTR/MS 工件
revert 误伤修复 — M2 心跳 last_beat 刷新 + M9 xlsx 迁移 + M15 manifest 重建
commit 9f576bb2371b (2026-09-20) fix: revert 误伤修复 — M2 心跳 last_beat 刷新 + M9 xlsx 迁移 + M15 manifest 重建
M17 版本头补齐 — Core prompts 覆盖率 40%→50%
commit d1641c2d88d9 (2026-09-20) fix: M17 版本头补齐 — Core prompts 覆盖率 40%→50%
test paths /health/metrics/ready → /v1/* + rateLimit bypass update
commit 5e729957c1e2 (2026-09-17) fix: test paths /health/metrics/ready → /v1/* + rateLimit bypass update
test assertion ≥1 fintech + api unwrap null-safety + STATUS P0/P1 尾巴全清 + P3 战略 5 缺口
commit e9f55584a490 (2026-10-05) fix: test assertion ≥1 fintech + api unwrap null-safety + STATUS P0/P1 尾巴全清 + P3 战略 5 缺口
project-71 脚本路径 + 端口 + force-recreate 统一
commit d5b7e3448892 (2026-10-05) fix: project-71 脚本路径 + 端口 + force-recreate 统一
getGovernance 空项目返回 200+null 而非 404
commit 0efdc198715b (2026-10-05) fix: getGovernance 空项目返回 200+null 而非 404
200+null 替代 404 + slog 日志 + import
commit 9a0cc2f349d6 (2026-10-05) fix(getGovernance): 200+null 替代 404 + slog 日志 + import
Promise.all getProject 裸调用 + lineage.edges 可选链
commit f78c311288fa (2026-10-05) fix(spa): Promise.all getProject 裸调用 + lineage.edges 可选链
修复 UC 静默 SSO 全链路(ssoProbe v2 + userinfo sub/uc_sub 兼容)
commit 244a16de9b88 (2026-09-25) fix(sso): 修复 UC 静默 SSO 全链路(ssoProbe v2 + userinfo sub/uc_sub 兼容)
redirect_uri SPA vs API 路径区分 — 手动 OAuth 与静默 SSO 各自正确
commit 14a51de1547b (2026-09-25) fix(sso): redirect_uri SPA vs API 路径区分 — 手动 OAuth 与静默 SSO 各自正确
TDZ Cannot access cloudStats before initialization — useState 移到 useStore 后先声明
commit 04ff6b76156a (2026-09-26) fix(Dashboard): TDZ Cannot access cloudStats before initialization — useState 移到 useStore 后先声明
navItems 17+ subject NavLink 绝对路径无 /app 前缀 → catch-all 重定向 landing
commit 6c1e83370847 (2026-09-26) fix(Layout): navItems 17+ subject NavLink 绝对路径无 /app 前缀 → catch-all 重定向 landing
10页+28处 navigate('/practice|subjects') 无 /app 前缀 → catch-all 跳 landing — Diagnosis/Exam/ExamPlanner/Favorites/HighFrequency/Knowledge/Practice/ReviewPlan/TrapQuestions/WrongBook
commit 05fd7b2a418c (2026-09-26) fix(nav): 10页+28处 navigate('/practice|subjects') 无 /app 前缀 → catch-all 跳 landing — Diagnosis/Exam/ExamPlanner/Favorites/HighFrequency/Knowledge/Practice/ReviewPlan/TrapQuestions/WrongBook
全项目 Navigate/Link/NavLink 绝对路径统一补 /app 前缀 — LearningReport/Stats/Membership/Settings/AdminGuard 8处
commit fe64227694a4 (2026-09-26) fix(nav): 全项目 Navigate/Link/NavLink 绝对路径统一补 /app 前缀 — LearningReport/Stats/Membership/Settings/AdminGuard 8处
恢复被 Edit 吃掉的 Dashboard lazy import
commit 34731bd57fdc (2026-09-26) fix(app): 恢复被 Edit 吃掉的 Dashboard lazy import
底部协议链接改用 React Router Link 自动 base=/cpa/
commit cdf252b3c5d2 (2026-09-26) fix(footer): 底部协议链接改用 React Router Link 自动 base=/cpa/
修复编译阻塞问题 + go.sum 生成
commit ffd22f32fe2d (2026-09-19) fix(auth-svc): 修复编译阻塞问题 + go.sum 生成
修复内存数据库类型比较问题
commit b6d904eaad55 (2026-08-12) fix: 修复内存数据库类型比较问题
绔彛鍗犵敤澶勭悊锛涜ˉ鍏呮湭瀹屾垚浜嬮」涓庢枃妗o紱API/鏁版嵁搴?鍓嶇/CI-CD 缁撴瀯
commit e28617fa8769 (2026-02-14) fix: 绔彛鍗犵敤澶勭悊锛涜ˉ鍏呮湭瀹屾垚浜嬮」涓庢枃妗o紱API/鏁版嵁搴?鍓嶇/CI-CD 缁撴瀯
add location /api for admin API 404
commit d5b306c2549c (2026-02-21) fix(project-01): add location /api for admin API 404
让决策台账可证伪 —— 新增 mark_executed() 回写执行结果(此前 execution_success 全代码库无置真路径,9,841 条台账 100% false);project-70.decide() 执行成功后回写成功/失败与 executed_at;去掉 confidence 的 max(0.85,…) 硬下限并写入共识等级与推导
commit c99c04a0c59e (2026-09-30) fix(metrics): 让决策台账可证伪 —— 新增 mark_executed() 回写执行结果(此前 execution_success 全代码库无置真路径,9,841 条台账 100% false);project-70.decide() 执行成功后回写成功/失败与 executed_at;去掉 confidence 的 max(0.85,…) 硬下限并写入共识等级与推导
闭合 project-70 的「签发首个 INSTR」死循环
commit 61d106143477 (2026-09-30) fix(loop): 闭合 project-70 的「签发首个 INSTR」死循环
record_id 唯一性 —— 台账静默覆盖(数据丢失级)。实测本机 datetime.now() 在同一时钟节拍内不前进(200 次连续调用仅 1 个互异值、50 条 id 仅 1 个互异),而 record_id 是台账文件名,故同节拍内多条决策后者覆盖前者;原 [:23] 又额外把微秒截成毫秒。改为 时间戳(完整微秒) + 进程内单调序号,50 条 → 50 唯一。另 CR-20260930-010 立法落地:parse_tracks() 接受轨道表但与阶段门禁严格隔离(project-07: s
commit fa0930f5a698 (2026-09-30) fix(ledger): record_id 唯一性 —— 台账静默覆盖(数据丢失级)。实测本机 datetime.now() 在同一时钟节拍内不前进(200 次连续调用仅 1 个互异值、50 条 id 仅 1 个互异),而 record_id 是台账文件名,故同节拍内多条决策后者覆盖前者;原 [:23] 又额外把微秒截成毫秒。改为 时间戳(完整微秒) + 进程内单调序号,50 条 → 50 唯一
repair YAML in source_projects (project-38 breakage from admin insert), feat: add project-42 (8 bugs, #225-#232) all deploy script/CI fixes
commit 8901fbcf200b (2026-06-22) fix: repair YAML in source_projects (project-38 breakage from admin insert), feat: add project-42 (8 bugs, #225-#232) all deploy script/CI fixes
repair YAML in source_projects (project-42/project-35 split), feat: add project-35 (8 bugs, #233-#240)
commit ace733c7b739 (2026-06-22) fix: repair YAML in source_projects (project-42/project-35 split), feat: add project-35 (8 bugs, #233-#240)
add 用户名/密码 labels on login form
commit 3d187270d479 (2026-03-08) fix: add 用户名/密码 labels on login form
移除词链提交按钮,仅保留 Enter 提交并更新 E2E
commit 29af1c680b3b (2026-03-12) fix: 移除词链提交按钮,仅保留 Enter 提交并更新 E2E
登录 401 提示引导注册,登录区增加首次使用说明
commit b4296b321978 (2026-03-12) fix: 登录 401 提示引导注册,登录区增加首次使用说明
project-68 治理补缺 + Gitea远程
commit 566b0b523488 (2026-07-06) fix: project-68 治理补缺 + Gitea远程
构建验证修复 — backend tsc 通过 + frontend vite build 通过
commit 5524b2c48387 (2026-09-12) fix: 构建验证修复 — backend tsc 通过 + frontend vite build 通过
miniprogram project.config appid 改为空 (需在 GUI 选测试号)
commit 6c0dcb629a3d (2026-09-12) fix: miniprogram project.config appid 改为空 (需在 GUI 选测试号)
vault integration test 修复 AppState 缺 redis_client + 加 otel_extract_layer
commit 3c4a7c235596 (2026-09-12) fix: vault integration test 修复 AppState 缺 redis_client + 加 otel_extract_layer
cvx_tracing_init OTel trait import + vault health version test
commit adfe1333114d (2026-09-13) fix: cvx_tracing_init OTel trait import + vault health version test
fix+test: docker-compose command override + urllib.request 零依赖 + 6/6 CvxClient tests
commit 9ad09aad77ad (2026-09-14) fix+test: docker-compose command override + urllib.request 零依赖 + 6/6 CvxClient tests
identity-service router 导出对齐 + Python SDK 测试绕过 PyO3 FFI 层
commit 9c0eba55bbed (2026-09-15) fix(test): identity-service router 导出对齐 + Python SDK 测试绕过 PyO3 FFI 层
remove signing key hex from vault production logs
commit 90dbb5e2aaf7 (2026-09-16) fix(security): remove signing key hex from vault production logs
CORS preflight exempt + WsHub dependency injection + websocket metrics isolation
commit da6aedeaba6f (2026-09-17) fix(phase4): CORS preflight exempt + WsHub dependency injection + websocket metrics isolation
P0根因修复 — confidence 梯度断裂三层 → 系统从假训练变真训练
commit 7886be39a2d2 (2026-09-17) fix: P0根因修复 — confidence 梯度断裂三层 → 系统从假训练变真训练
batch78 perception confidence sigmoid saturation (32 params freed!)
commit f4fc2e8d50cb (2026-09-20) fix: batch78 perception confidence sigmoid saturation (32 params freed!)
意图引擎置信度重设计 —— 独立语料抓出「低置信静默通过 64.9%」
commit 77d82a7d7249 (2026-10-02) fix(craftforge): 意图引擎置信度重设计 —— 独立语料抓出「低置信静默通过 64.9%」
槽位限定项目 + 修「限定运行销毁全局产物」的数据丢失
commit 958d361c673d (2026-10-02) fix(craftforge): 槽位限定项目 + 修「限定运行销毁全局产物」的数据丢失
gitignore pipeline backups + BN→LN fix distill crash
commit 37549b9b04d2 (2026-10-04) fix: gitignore pipeline backups + BN→LN fix distill crash
require_project_role 兑现 default 项目回退契约
commit 028911aaff3b (2026-10-02) fix(rbac): require_project_role 兑现 default 项目回退契约
project-65Client 对 loopback 地址绕过系统代理
commit f61e2b433e43 (2026-10-02) fix(sdk): project-65Client 对 loopback 地址绕过系统代理
版本号单一来源化——修复登录框 v2.0.0/主窗口 v1.0/config 2.1.0 失步(用户冒烟实锤)
commit 0251f9c3fd18 (2026-10-03) fix(桌面端): 版本号单一来源化——修复登录框 v2.0.0/主窗口 v1.0/config 2.1.0 失步(用户冒烟实锤)
登录期间隐藏启动画面,避免置顶遮挡登录框
commit 16d4d8087365 (2026-10-03) fix(ui): 登录期间隐藏启动画面,避免置顶遮挡登录框
填实 build_consolidation 并修正 4 处会计分录错误
commit acc1260d5bbd (2026-10-04) fix(consolidation): 填实 build_consolidation 并修正 4 处会计分录错误
修正 dashboard/benchmark 计算错误 + 引入桌面端审计脚本
commit 270b283ace8c (2026-10-04) fix(core): 修正 dashboard/benchmark 计算错误 + 引入桌面端审计脚本
打通 AI 治理→产品传导管道(decision_id闭环+amount_hint透传+caps zone元数据)
commit e76070667e94 (2026-10-04) fix(ai): 打通 AI 治理→产品传导管道(decision_id闭环+amount_hint透传+caps zone元数据)
critical safety improvements - prevent Trae crash from live temp cleanup
commit f25c57d2a36f (2026-08-13) fix: critical safety improvements - prevent Trae crash from live temp cleanup
Windows 本地 PostgreSQL 开发与 bcrypt 兼容
commit 1d6a90dca93f (2026-06-07) fix: Windows 本地 PostgreSQL 开发与 bcrypt 兼容
project-09 治理补缺 + Gitea远程
commit 5acbe075443e (2026-07-06) fix: project-09 治理补缺 + Gitea远程
修复 15 个失败测试 — 对齐 strategist v2.2.0 + FastAPI 新版路由 + optimization 方法映射
commit 6a19ba6c5bd6 (2026-09-14) fix(tests): 修复 15 个失败测试 — 对齐 strategist v2.2.0 + FastAPI 新版路由 + optimization 方法映射
schema迁移bug — _SCHEMA CREATE INDEX不能引用triggered_by
commit 0b9a665f875b (2026-09-10) fix: schema迁移bug — _SCHEMA CREATE INDEX不能引用triggered_by
修正 WIP/fixup/squash 匹配为精确前缀
commit 7db18c3dda07 (2026-09-10) fix(hook): 修正 WIP/fixup/squash 匹配为精确前缀
critical runtime bugs — expand state leak + secret exposure + webhook-test parity
commit 0284731a2b91 (2026-09-16) fix(ui): critical runtime bugs — expand state leak + secret exposure + webhook-test parity
project-50-app 启用 spring-boot repackage 生成可执行 fat jar (107MB) + .gitattributes 行尾归一化
commit 0722ed654de2 (2026-09-16) fix: project-50-app 启用 spring-boot repackage 生成可执行 fat jar (107MB) + .gitattributes 行尾归一化
收敛到 0 failed,删掉 3 组脆 mock 测试
commit 53c18d4bdd2f (2026-09-20) fix(test): 收敛到 0 failed,删掉 3 组脆 mock 测试
vitest exclude 真实连接测试文件,避免 flaky
commit b5a1608b3b91 (2026-09-20) fix(test): vitest exclude 真实连接测试文件,避免 flaky
apiClient 通用 HTTP 方法 + TOKEN_KEY + voiceService SpeechRecognition 类型
commit bf79af1849ae (2026-09-20) fix(types): apiClient 通用 HTTP 方法 + TOKEN_KEY + voiceService SpeechRecognition 类型
ai/status 公开健康检查移到 auth middleware 之前
commit b4bc63e82b69 (2026-09-20) fix(server): ai/status 公开健康检查移到 auth middleware 之前
knowledge-vector-status 公开端点(auth middleware 前注册)
commit c26601ac40df (2026-09-22) fix(ai): knowledge-vector-status 公开端点(auth middleware 前注册)
ExercisePage 去 @ts-nocheck,修复 Bearer 残留 + token 重复声明
commit be92b4f0cd4c (2026-09-22) fix(ts): ExercisePage 去 @ts-nocheck,修复 Bearer 残留 + token 重复声明
去 6 个 @ts-nocheck,全部真实 bug 修复
commit fc1eae184139 (2026-09-22) fix(ts): 去 6 个 @ts-nocheck,全部真实 bug 修复
base=/finance/ 修复静态资源 MIME type 错误
commit 452a6b4568a5 (2026-09-22) fix(vite): base=/finance/ 修复静态资源 MIME type 错误
全新安装无法生成 JWT 密钥 —— 区分「首次运行」与「密钥丢失」
commit fd64e667f0dc (2026-10-02) fix(auth): 全新安装无法生成 JWT 密钥 —— 区分「首次运行」与「密钥丢失」
修复被 CSS 解析器静默丢弃的声明 + 补齐缺失设计令牌(消除裸硬编码)
commit 7320bdd5ec19 (2026-10-02) fix(ui): 修复被 CSS 解析器静默丢弃的声明 + 补齐缺失设计令牌(消除裸硬编码)
门禁"校验错树"三例全修 + 补齐发布 UI 缺失的 17 个 i18n key
commit 99e4dee6299a (2026-10-02) fix(i18n): 门禁"校验错树"三例全修 + 补齐发布 UI 缺失的 17 个 i18n key
让「AI 应用缓存」真的能清 —— 修复静默替换 + 假成功,新增 WorkBuddy
commit 79f6cdea945f (2026-10-02) fix(cleanup): 让「AI 应用缓存」真的能清 —— 修复静默替换 + 假成功,新增 WorkBuddy
清除已跟踪文件中的密钥明文并新增泄露门禁
commit 7bd2bf1f1823 (2026-10-03) fix(security): 清除已跟踪文件中的密钥明文并新增泄露门禁
三处门禁校验对象错位 —— 定价改查发布树,生产校验改查运行时产物
commit b3feb7c4414e (2026-10-03) fix(gates): 三处门禁校验对象错位 —— 定价改查发布树,生产校验改查运行时产物
提升 esbuild 到 0.25 并加 overrides —— 解除 vite 内嵌 0.21 的 winmm.dll 死结
commit 28405b24fd47 (2026-10-03) fix(build): 提升 esbuild 到 0.25 并加 overrides —— 解除 vite 内嵌 0.21 的 winmm.dll 死结
compose 补传 REDIS_PASSWORD(修复 Redis 认证失败)
commit 233a61a334b4 (2026-10-01) fix(deploy): compose 补传 REDIS_PASSWORD(修复 Redis 认证失败)
补充 redis_password 配置与连接认证
commit ba8227594971 (2026-10-01) fix(redis): 补充 redis_password 配置与连接认证
local_preset 兜底按标签智能匹配 — 消除场景错位
commit 55769a23d3f4 (2026-10-02) fix: local_preset 兜底按标签智能匹配 — 消除场景错位
预设库每格扩至3条 + 排他场景隔离 — 根治补足错位
commit f4626d8c51df (2026-10-02) fix: 预设库每格扩至3条 + 排他场景隔离 — 根治补足错位
compose 传递 ADMIN_INITIAL_PASSWORD 进容器
commit ff50dd25a360 (2026-10-02) fix: compose 传递 ADMIN_INITIAL_PASSWORD 进容器
切换供应商时清空旧模型,避免跨供应商模型混入
commit 4c7627f4ddf2 (2026-10-02) fix(admin): 切换供应商时清空旧模型,避免跨供应商模型混入
DeepSeek 预置模型同步官方现役列表
commit 94ba6ee6c74f (2026-10-02) fix(admin): DeepSeek 预置模型同步官方现役列表
后台生成日志页 user_id 空参 422 导致整页报错
commit 294e22606b4a (2026-10-02) fix: 后台生成日志页 user_id 空参 422 导致整页报错
project-05 治理补缺 — attention + hooks + prompts补齐 + charter演化记录
commit c689192f12ed (2026-07-06) fix: project-05 治理补缺 — attention + hooks + prompts补齐 + charter演化记录
修复4个失败测试 — fetch_events边界bug + Redis测试隔离 + 路由断言
commit 0379f9c907a2 (2026-09-12) fix: 修复4个失败测试 — fetch_events边界bug + Redis测试隔离 + 路由断言
Advisor 复盘修复 — i18n 测试覆盖 + Edu 测试隔离 + 文档更新
commit 307c34e53f1c (2026-09-12) fix: Advisor 复盘修复 — i18n 测试覆盖 + Edu 测试隔离 + 文档更新
生产部署安全加固 — docker-compose auth + Redis 密码 + OPT-IN 补全
commit 29172418bd71 (2026-09-12) fix(p0): 生产部署安全加固 — docker-compose auth + Redis 密码 + OPT-IN 补全
服务端强制降级注册 role — 防御 admin/teacher 注册漏洞
commit 7092f7d28a29 (2026-09-12) fix(p1-1): 服务端强制降级注册 role — 防御 admin/teacher 注册漏洞
INSTR-594 批次1 之1/19 — 继续完善项目进度文档202608141426.md 旧盘符 382→0
commit c1ff7de1e0bf (2026-10-05) fix(links): INSTR-594 批次1 之1/19 — 继续完善项目进度文档202608141426.md 旧盘符 382→0
INSTR-594 批次1 之2~7/19 — 6 个源文档旧盘符 → workspace 根
commit 7938ea21234d (2026-10-05) fix(links): INSTR-594 批次1 之2~7/19 — 6 个源文档旧盘符 → workspace 根
INSTR-594 批次1 之8~18/19 — 11 个源文档旧盘符 → workspace 根
commit ea30b523ea9c (2026-10-05) fix(links): INSTR-594 批次1 之8~18/19 — 11 个源文档旧盘符 → workspace 根
INSTR-594 批次1 交付 — 19 个源文档旧盘符 1557→0,映射表可回滚
commit 258aa09cdcbe (2026-10-05) fix(links): INSTR-594 批次1 交付 — 19 个源文档旧盘符 1557→0,映射表可回滚
INSTR-594 批次2 之1/3 — 检查项目完工进度202609160941.md 旧盘符 35→0
commit be01ef6a8ba3 (2026-10-05) fix(links): INSTR-594 批次2 之1/3 — 检查项目完工进度202609160941.md 旧盘符 35→0
INSTR-594 批次2 之2/3 — docs/RELEASE-S08_V1_发布说明与升级指南.md 旧盘符 2→0
commit 56bd9c85194a (2026-10-05) fix(links): INSTR-594 批次2 之2/3 — docs/RELEASE-S08_V1_发布说明与升级指南.md 旧盘符 2→0
INSTR-594 批次2 之3/3 — input/完善设计文档202607160609.md 旧盘符 1→0
commit 813c0737e6e2 (2026-10-05) fix(links): INSTR-594 批次2 之3/3 — input/完善设计文档202607160609.md 旧盘符 1→0
stats route ordering + SQLite thread safety
commit f6ccf5aacc95 (2026-09-17) fix(api): stats route ordering + SQLite thread safety
UIP PID liveness check OSError + taskkill fallback
commit 0960f393c056 (2026-09-20) fix(windows): UIP PID liveness check OSError + taskkill fallback
health_diagnostic repo.list_all → repo.list
commit 6aab0190d7c7 (2026-09-20) fix(api): health_diagnostic repo.list_all → repo.list
修复 unknown_agent 熔断激活缺失 + Tier 3 压力测试
commit 842c69aa3599 (2026-08-11) fix(security): 修复 unknown_agent 熔断激活缺失 + Tier 3 压力测试
熔断检查前置 + 动态模糊测试 + unknown_agent 两阶段修复
commit 68b965a1ffb9 (2026-08-11) fix(security): 熔断检查前置 + 动态模糊测试 + unknown_agent 两阶段修复
修复测试环境依赖污染问题,1869 测试全部通过
commit d0e060c9bd17 (2026-08-13) fix(test): 修复测试环境依赖污染问题,1869 测试全部通过
完工进度收尾 — 修复测试入口 + 版本号硬编码 + 引入前端 vitest
commit 81003f3d1e64 (2026-09-15) fix: 完工进度收尾 — 修复测试入口 + 版本号硬编码 + 引入前端 vitest
Fix Evidence OS runbook pipeline template flag.
commit 8d4518e90e2c (2026-09-01) Fix Evidence OS runbook pipeline template flag.
booking/confirm storage key 最终闭环 — customer_id + shop_id + stylist_id
commit 5d271c69012c (2026-09-12) fix(miniapp): booking/confirm storage key 最终闭环 — customer_id + shop_id + stylist_id
booking/time onMounted→useDidShow + storage 读取 + 去除硬编码 busy slot
commit a4b3c0eb3900 (2026-09-12) fix(miniapp): booking/time onMounted→useDidShow + storage 读取 + 去除硬编码 busy slot
ai-recommend 删除硬编码 mock 替换 — 真实后端 recommend API + hairstyle ID 映射
commit 8111d26a7c18 (2026-09-12) fix(miniapp): ai-recommend 删除硬编码 mock 替换 — 真实后端 recommend API + hairstyle ID 映射
calendar 路由 2 项修复 — 公开访问 + stylist_id 筛选
commit 362cd5814f23 (2026-09-12) fix(booking): calendar 路由 2 项修复 — 公开访问 + stylist_id 筛选
profile + ai-assistant 生命周期升级 + 占位清理
commit 76b7b4e4e38a (2026-09-12) fix(miniapp): profile + ai-assistant 生命周期升级 + 占位清理
fix+feat+chore: 幽灵 import 全局清理 + favorites 全栈 + governance 更新 + 测试修复
commit b8425e0c322f (2026-09-13) fix+feat+chore: 幽灵 import 全局清理 + favorites 全栈 + governance 更新 + 测试修复
Sidebar 补全 AI 助手 + 通知中心菜单项
commit 8b95ee38f8fc (2026-09-16) fix(admin): Sidebar 补全 AI 助手 + 通知中心菜单项
修复 scan_project_facts.py 事实扫描链路
commit 3c28acbdd490 (2026-09-28) fix(scripts): 修复 scan_project_facts.py 事实扫描链路
M2-B 解锁——数据库连通,修 3 处排查中暴露的真实缺陷
commit d402b6f61611 (2026-10-03) fix(backend): M2-B 解锁——数据库连通,修 3 处排查中暴露的真实缺陷
修复断网自愈失效,并给第三次坏掉的提取器补自测
commit d6f45188aad3 (2026-10-04) fix(desktop): 修复断网自愈失效,并给第三次坏掉的提取器补自测
修复 ERR_ABORTED 误报,并给导航串行化补运行时测试
commit 9dd4086585f0 (2026-10-04) fix(desktop): 修复 ERR_ABORTED 误报,并给导航串行化补运行时测试
修正渲染降级方案,并给单实例锁死加逃生阀
commit 69f5702a9781 (2026-10-04) fix(desktop): 修正渲染降级方案,并给单实例锁死加逃生阀
注入验证脚本自包含基线,不再依赖手工 .bak
commit f5cf762dc5e4 (2026-10-04) fix(desktop): 注入验证脚本自包含基线,不再依赖手工 .bak
补 i18n.js 加载,修"登录点了没反应"
commit 452a829c8250 (2026-10-04) fix(frontend): 补 i18n.js 加载,修"登录点了没反应"
探测必须确认是 project-02 服务,不能只看状态码
commit 14baea5725c2 (2026-10-04) fix(desktop): 探测必须确认是 project-02 服务,不能只看状态码
修正 schema 与 LIKE 通配符导致的 500
commit d1f623f74735 (2026-10-04) fix(增值税底稿): 修正 schema 与 LIKE 通配符导致的 500
修复三处列名与本机库不符导致的 500
commit b22a0dcac93d (2026-10-04) fix(schema): 修复三处列名与本机库不符导致的 500
验证脚本的管理员口令改为环境变量,不写进仓库
commit f5b682a77b54 (2026-10-04) fix(安全): 验证脚本的管理员口令改为环境变量,不写进仓库
provider专属密钥做成Settings字段(生产.env加载bug) + 测试隔离.env + Settings.__init__ monkey-patch
commit 0e6dda29d4f1 (2026-10-05) fix(llm): provider专属密钥做成Settings字段(生产.env加载bug) + 测试隔离.env + Settings.__init__ monkey-patch
deepseek 默认模型换成官方 deepseek-flash(替代旧 deepseek-chat)
commit 1b8310b32c14 (2026-10-05) fix(llm): deepseek 默认模型换成官方 deepseek-flash(替代旧 deepseek-chat)
redirect /project-01/ to /project-01/zh/ for next-intl [locale]
commit f02c865c837c (2026-02-20) fix(website): redirect /project-01/ to /project-01/zh/ for next-intl [locale]
base /project-01-admin/ for server92 assets and router
commit 73b1b54e0727 (2026-02-20) fix(admin): base /project-01-admin/ for server92 assets and router
server92 瀛愯矾寰?base 鐢?build:server92 涓?--base 淇濊瘉鐢熸晥
commit 1026f5c55826 (2026-02-20) fix(admin): server92 瀛愯矾寰?base 鐢?build:server92 涓?--base 淇濊瘉鐢熸晥
language switch no response - basePath, trailing slash, refresh and full reload; add server92 disk check script and deploy doc
commit 8b5b3d0b2173 (2026-02-21) fix(website): language switch no response - basePath, trailing slash, refresh and full reload; add server92 disk check script and deploy doc
TS2358 instanceof on string | Date in admin-overview and admin-translation
commit 94de5dc0a292 (2026-02-21) fix(content-service): TS2358 instanceof on string | Date in admin-overview and admin-translation
lockfile for content-service command-sdk; analytics node-cron types and user-flow TS; deploy doc and check script
commit 0dba1997b3b2 (2026-02-21) fix: lockfile for content-service command-sdk; analytics node-cron types and user-flow TS; deploy doc and check script
resolve all type-check errors - admin UserFlowSankey layout; project-31-app get/ Badge; project-01-app navigate/replace/history/expo-image-picker
commit 0087d11b1440 (2026-02-21) fix: resolve all type-check errors - admin UserFlowSankey layout; project-31-app get/ Badge; project-01-app navigate/replace/history/expo-image-picker
build tenant-context in user-service Dockerfile so @project-01/tenant-context resolves
commit 2cc59d183332 (2026-02-21) fix(deploy): build tenant-context in user-service Dockerfile so @project-01/tenant-context resolves
子弹归属链路打通 — CollisionSystem→game_loop→CombatSystem→handle_player_death
commit 2b3f3cb3f64e (2026-09-12) fix: 子弹归属链路打通 — CollisionSystem→game_loop→CombatSystem→handle_player_death
破循环 import + 修 MedicalStation dataclass — 全模块可导入
commit 2bf242299325 (2026-09-12) fix: 破循环 import + 修 MedicalStation dataclass — 全模块可导入
reset_for_new_match bridging + 14 regression tests for 4 historical bugs
commit 5ae9b95fc786 (2026-09-12) fix: reset_for_new_match bridging + 14 regression tests for 4 historical bugs
Leaderboard 重写 — 接后端真实 API + DS-023 闭环
commit 8a062cac0370 (2026-10-07) fix(pc): Leaderboard 重写 — 接后端真实 API + DS-023 闭环
DS-047 测试判定修正 — 入口级改 success() + fail-before 补全 5 红→绿 + §11.25 + §11.26
commit cdec455f18be (2026-10-07) fix(test): DS-047 测试判定修正 — 入口级改 success() + fail-before 补全 5 红→绿 + §11.25 + §11.26
vitest localStorage undefined 阻塞修复 (DS-062)
commit d60c70292162 (2026-10-08) fix(test): vitest localStorage undefined 阻塞修复 (DS-062)
CapabilityM1 断言改动态, 不硬编码 probe 全集
commit 7db3407841b9 (2026-10-08) fix(test): CapabilityM1 断言改动态, 不硬编码 probe 全集
api.ts 双重 URL 编码 — slug 不再 encodeURIComponent
commit da200362665c (2026-09-11) fix: api.ts 双重 URL 编码 — slug 不再 encodeURIComponent
integration test token 401 → graceful skip + Authorization 前缀按平台选
commit 17ea34d1ef02 (2026-09-11) fix: integration test token 401 → graceful skip + Authorization 前缀按平台选
integration test 401 → Gitea write scope token 全链路通
commit 887da1cfa76f (2026-09-11) fix: integration test 401 → Gitea write scope token 全链路通
integration test 全链路加固 — dotenv override + 409/422 scope 判断 + git 协议探测
commit 04d3d027de0f (2026-09-12) fix: integration test 全链路加固 — dotenv override + 409/422 scope 判断 + git 协议探测
node_modules 恢复 + next build 稳定化
commit 8e66b460cb03 (2026-09-12) fix(frontend): node_modules 恢复 + next build 稳定化
tsc build — 关闭 declaration + 加 baseUrl 修复 TS2742
commit 66f6ba990966 (2026-09-12) fix(backend): tsc build — 关闭 declaration + 加 baseUrl 修复 TS2742
noVerify logic + ESM-compatible file ops + factory note
commit 8b35a74cb82e (2026-09-17) fix(mcp): noVerify logic + ESM-compatible file ops + factory note
enable_connector.bat 注释改纯 ASCII(.bat 不做 BOM)
commit ad780cba015b (2026-09-30) fix(encoding): enable_connector.bat 注释改纯 ASCII(.bat 不做 BOM)
INSTR-594 批次1 之1/19 — 继续完善项目进度文档202608141426.md 旧盘符 382→0
commit c1ff7de1e0bf (2026-10-05) fix(links): INSTR-594 批次1 之1/19 — 继续完善项目进度文档202608141426.md 旧盘符 382→0
INSTR-594 批次1 之2~7/19 — 6 个源文档旧盘符 → workspace 根
commit 7938ea21234d (2026-10-05) fix(links): INSTR-594 批次1 之2~7/19 — 6 个源文档旧盘符 → workspace 根
INSTR-594 批次1 之8~18/19 — 11 个源文档旧盘符 → workspace 根
commit ea30b523ea9c (2026-10-05) fix(links): INSTR-594 批次1 之8~18/19 — 11 个源文档旧盘符 → workspace 根
INSTR-594 批次1 交付 — 19 个源文档旧盘符 1557→0,映射表可回滚
commit 258aa09cdcbe (2026-10-05) fix(links): INSTR-594 批次1 交付 — 19 个源文档旧盘符 1557→0,映射表可回滚
INSTR-594 批次2 之1/3 — 检查项目完工进度202609160941.md 旧盘符 35→0
commit be01ef6a8ba3 (2026-10-05) fix(links): INSTR-594 批次2 之1/3 — 检查项目完工进度202609160941.md 旧盘符 35→0
INSTR-594 批次2 之2/3 — docs/RELEASE-S08_V1_发布说明与升级指南.md 旧盘符 2→0
commit 56bd9c85194a (2026-10-05) fix(links): INSTR-594 批次2 之2/3 — docs/RELEASE-S08_V1_发布说明与升级指南.md 旧盘符 2→0
INSTR-594 批次2 之3/3 — input/完善设计文档202607160609.md 旧盘符 1→0
commit 813c0737e6e2 (2026-10-05) fix(links): INSTR-594 批次2 之3/3 — input/完善设计文档202607160609.md 旧盘符 1→0
add python3+make+g++ in Dockerfile for better-sqlite3; doc gateway sync path
commit e9c6e7b05d35 (2026-03-06) fix: add python3+make+g++ in Dockerfile for better-sqlite3; doc gateway sync path
企业级运维系统委托外部架构师设计,四平面拼图融合而非重写
无 inventory / 无端口规划 / 无回滚 / 运维故障手动 grep 30+ 分钟 / 运维知识零沉淀;8.134.64.92 在 55 处活跃文件里有硬编码
opspark 战略确认 v1:命名拍板 + 四象限校准 + 飞轮引擎第三维度 + 全球产品化三阶段愿景
运维系统设计经历两轮战略迭代:ops-mesh → 市场扫描暴露 mesh 心智错位 → opspark + 四象限校准 + 飞轮引擎 + 产品化愿景,两轮迭代后战略级不确定性全部消除
BugCard 缺 'use client':Server Component 页面 import 含 hooks 的组件直接构建炸
Next.js build 报 You're importing a component that needs useState...
补齐 App 测试用例和文档更新
commit 34b0b3f61c55 (2026-08-13) fix: 补齐 App 测试用例和文档更新
test_core config 测试从 Settings() 实例读取 .env 改为读 model_fields 默认值
commit 691e6489b50d (2026-09-15) fix: test_core config 测试从 Settings() 实例读取 .env 改为读 model_fields 默认值
OAuth email placeholder + multi-provider login dropdown
commit b5589fe7c30e (2026-09-16) fix: OAuth email placeholder + multi-provider login dropdown
UC_INTERNAL_ORIGIN for backend->UC HTTP direct (container can't reach public HTTPS)
commit 65d832e6a56e (2026-09-16) fix(uc): UC_INTERNAL_ORIGIN for backend->UC HTTP direct (container can't reach public HTTPS)
docker-compose.dev.yml YAML healthcheck 语法错误(interval/timeout/retries 合并一行导致解析失败)
commit 04ee9bcba32a (2026-09-17) fix: docker-compose.dev.yml YAML healthcheck 语法错误(interval/timeout/retries 合并一行导致解析失败)
BugCard 加 use client — Server Component 页面 import 它会炸
commit 951612a374cd (2026-09-21) fix(frontend): BugCard 加 use client — Server Component 页面 import 它会炸
Server Component fetch 用 docker 内部 http://backend:8000
commit ba71a5dca53a (2026-09-21) fix(api): Server Component fetch 用 docker 内部 http://backend:8000
page_size le=100 → le=1000, Next.js 一次拉全量 203 条需要
commit b7030caf634b (2026-09-21) fix(backend): page_size le=100 → le=1000, Next.js 一次拉全量 203 条需要
backend 镜像包含 migrated_bugs.json
commit 3ef6a4470ae7 (2026-09-29) fix(docker): backend 镜像包含 migrated_bugs.json
限流 429 被全局异常处理器伪装成 500 —— 中间件改直接返回响应 + Retry-After 头
commit 4e124df681f3 (2026-10-01) fix(api): 限流 429 被全局异常处理器伪装成 500 —— 中间件改直接返回响应 + Retry-After 头
schema 加 protected_namespaces=() 消除 model_hq/model_id 与 pydantic v2 保护前缀冲突警告
commit 1b59825d25cf (2026-10-01) fix(llm): schema 加 protected_namespaces=() 消除 model_hq/model_id 与 pydantic v2 保护前缀冲突警告
固定 bcrypt==4.0.1 —— passlib 1.7.4 与 bcrypt 5.x 不兼容,hash/verify 全部崩溃
commit 1d0163099db9 (2026-10-01) fix(backend): 固定 bcrypt==4.0.1 —— passlib 1.7.4 与 bcrypt 5.x 不兼容,hash/verify 全部崩溃
BrowserRouter 加 basename=/admin + 401 跳转改 /admin/login —— 子路径部署路由落到主站 404(vite base 同族第三例)
commit f35b180be382 (2026-10-01) fix(admin): BrowserRouter 加 basename=/admin + 401 跳转改 /admin/login —— 子路径部署路由落到主站 404(vite base 同族第三例)
jwt 导入对齐 python-jose(项目无 PyJWT 依赖,启动即 ModuleNotFoundError 崩溃循环)
commit 05123cbadc41 (2026-10-01) fix(totp): jwt 导入对齐 python-jose(项目无 PyJWT 依赖,启动即 ModuleNotFoundError 崩溃循环)
login 内 create_login_ticket 补 totp_service. 前缀(NameError 致启用用户登录 500)
commit b54114e27aa3 (2026-10-01) fix(totp): login 内 create_login_ticket 补 totp_service. 前缀(NameError 致启用用户登录 500)
页面上下文 422 修复 —— context 改为 str 并注入系统提示词;前台 slug 标签美化
commit 8d15d83aac08 (2026-10-01) fix(ai-assistant): 页面上下文 422 修复 —— context 改为 str 并注入系统提示词;前台 slug 标签美化
面板头部布局修复 —— 上下文徽章移出标题行独立成条,长文本 truncate 截断
commit 30421ebf6f93 (2026-10-01) fix(ai-assistant): 面板头部布局修复 —— 上下文徽章移出标题行独立成条,长文本 truncate 截断
project-aliases 路由移到 /{bug_id} 通配路由之前,修复 404 遮蔽
commit 0a4336f99a3e (2026-10-01) fix(api): project-aliases 路由移到 /{bug_id} 通配路由之前,修复 404 遮蔽
ID 冲突不再静默丢知识 + CJK 感知去重 + 跨库 SQL 兼容
commit 82008a694dd3 (2026-10-03) fix(report): ID 冲突不再静默丢知识 + CJK 感知去重 + 跨库 SQL 兼容
SQLite 下 engine 参数跨库兼容(第二处跨库缺陷)+ 补齐测试与过时断言
commit 379975ac1d3b (2026-10-03) fix(db): SQLite 下 engine 参数跨库兼容(第二处跨库缺陷)+ 补齐测试与过时断言
audit_related_bugs.py 补 sys.path bootstrap,可独立运行
commit c8c7de495074 (2026-10-03) fix(scripts): audit_related_bugs.py 补 sys.path bootstrap,可独立运行
定时门禁加 flock 串行化 —— 实测手动触发与 cron 到点会撞在一起,两个 pytest 容器并跑且日志交错
commit 8c8e60028af5 (2026-10-03) fix(ci): 定时门禁加 flock 串行化 —— 实测手动触发与 cron 到点会撞在一起,两个 pytest 容器并跑且日志交错
category 过滤在存量数据上失效 —— 写入端改为按 fix_type 推断技术栈 + 存量回填迁移 + 编译器兜底推断
commit 9b17a01cf392 (2026-10-03) fix(guardrails): category 过滤在存量数据上失效 —— 写入端改为按 fix_type 推断技术栈 + 存量回填迁移 + 编译器兜底推断
eval_retrieval 的 --fail-under 解析 —— 指标名自带 @(hit@5),须从右侧切分;实测正例通过、故意调高阈值能红
commit 9231ca739be4 (2026-10-03) fix(gate): eval_retrieval 的 --fail-under 解析 —— 指标名自带 @(hit@5),须从右侧切分;实测正例通过、故意调高阈值能红
管理后台重建步骤两处实测错误 + 自更新陷阱
commit 3da8ddead325 (2026-10-03) fix(deploy): 管理后台重建步骤两处实测错误 + 自更新陷阱
队列严重度按**语义**排序 + UI 认全生产数据里的 critical
commit 29f9841c6f55 (2026-10-03) fix(review): 队列严重度按**语义**排序 + UI 认全生产数据里的 critical
等 builder-admin 真正跑完再自检 —— up -d 只启动容器就返回,实测读到拷到一半的 dist 导致自检误报缺标记
commit e611b1150ab4 (2026-10-03) fix(deploy): 等 builder-admin 真正跑完再自检 —— up -d 只启动容器就返回,实测读到拷到一半的 dist 导致自检误报缺标记
生产实测暴露的三处问题(Redis 永久降级 / 磁盘口径误导 / 门禁缺宿主视图)
commit 256ecc0b1855 (2026-10-03) fix(observability): 生产实测暴露的三处问题(Redis 永久降级 / 磁盘口径误导 / 门禁缺宿主视图)
测试隔离两处根因(限流旁路失效 / 共享 Redis 缓存串味)—— "单文件绿、混跑红"的元凶
commit 666f2a238e6c (2026-10-03) fix(test): 测试隔离两处根因(限流旁路失效 / 共享 Redis 缓存串味)—— "单文件绿、混跑红"的元凶
又两类"混跑才红"的根因 + 状态页不再被异常依赖拖垮
commit 0b3ec965d683 (2026-10-03) fix(test+observability): 又两类"混跑才红"的根因 + 状态页不再被异常依赖拖垮
Next.js 搜索页缺失搜索框组件 用户无法发起搜索
直接访问 /search 无交互入口 必须从导航栏点击带 ?q= 的链接才能搜索
JWT payload 缺失 role 字段导致 RolesGuard 全部 403
所有标注 @Roles(ADMIN/SUPER_ADMIN) 的端点 /v1/admin/* /v1/scenes /v1/orders 无论 JWT 合法与否全部返回 403 Forbidden
真实审计场景暴露 2 个合成测试盲点:zone_blocked 分支缺 p1_intent 字段、ZONE_C_BLOCK 不跳过 plan_tools
真实会话触发 zone 阻断时下游字段缺失报错;被阻断的场景仍发起了工具规划调用
订单与仪表盘时间未格式化为本地可读
订单列表和仪表盘显示的时间为原始 ISO 8601 格式(如 `2026-06-07T12:34:56`),不易读。
(`16a0b60`):新增 `format.ts` 工具函数,分别在 Dashboard 和 Orders 视图中使用 `formatDateTime()` 替换原始显示。
```ts
export function formatDateTime(value?: string | null): string {
if (!value) return '-'
const d = new Date(value)
if (Number.isNaN(d.getTime())) return value
return d.toLocaleString('zh-CN', {
year: 'numeric', month: '2-digit', day: '2-digit',
hour: '2-digit', minute: '2-digit', second: '2-digit', hour12: false,
})
}
```4 个数据库迁移文件整份只有一行(LF=0)→ PostgreSQL 的 `--` 注释吃掉全部 SQL,迁移静默 no-op 却记为 applied
迁移执行**无任何 Error/Exception 报错**,`migration_runner.py` 把文件名写入 `_migrations` 记为 applied,但 schema 毫无变化 —— `BEGIN;` / `ALTER TABLE ...;` / `COMMIT;` 全被行注释吞掉。实测 `019_v3_decimal_precision.sql` 字节 6554 / `LF=0`(整份文件一行),且自引入提交 `7e0ab82`(2026-07-18)起即如此。
(019,已完成)按原注释描述的意图重建为格式完好的迁移:`BEGIN` + **9 个 `DO $$ ... IF EXISTS (SELECT 1 FROM information_schema.columns WHERE ... numeric_precision = 12) ... END $$;` 幂等守卫**(bk_vouchers 2 列 / bk_voucher_entries 2 列 / bk_ledger_balances 4 列 / bk_douyin_orders 1 列)+ 验证 SELECT + 2 条 `COMMENT ON COLUMN` + `/* 回滚块 */`,中文注释同时去乱码。因 `_migrations` 已按文件名登记该迁移,存量环境会被跳过,本次修复**只影响全新部署**(低风险)。
(017/020/999,待修)建议同法重建;**020 需先确认生产的审计日志触发器是否已用其它途径补上**;999 更像报表脚本,建议移出迁移目录。"新增账号"按钮在未选平台时完全消失
用户进入账号管理页面但未选择平台时,"新增账号"按钮完全隐藏(`v-if="canEdit && selectedPlatformId"`),用户无法感知功能存在。
改用 `v-if="canEdit"` + `:disabled="!selectedPlatformId"` + `<el-tooltip>` 提示"请先选择所属平台"。TINYINT/Integer 映射阻塞本地启动
暂无描述
本地环境 `ddl-auto: none`,跳过 Hibernate validate。Flyway history 与实际 schema 脱节 —— 手动补账变『定时炸弹』,重启即 Duplicate column
曾经手工执行过 DDL(或迁移中断)但 history 表没记上;服务一直运行没事,任何一次重启都会触发 Flyway 重放迁移并因列已存在而炸掉启动。
SELECT version, checksum FROM flyway_schema_history ORDER BY installed_rank DESC LIMIT 5; # 与代码里迁移脚本核对rotation worker 启动即退出:tokio select! 分支 nats=None 直接 return,症状伪装成 postgres SSL panic
rotation 服务起来几秒就死;日志指向 postgres TLS 不兼容;改 SSL 配置无效
`information_*.md` 非版本控制内容重复
暂无描述
后端返回 camelCase 且缺字段的题目摘要,前端按 snake_case 完整题目消费,造成「加载成功但选项与答案全空」
练习页能进入、题干预设为空,选项列表为空且无法作答;接口 200、无异常日志,看起来像前端渲染问题。
dict.get(key, default) 不 null-safe —— 快照含 null 时整条流水线崩溃 13 天
工作区健康扫描生成器运行后无输出/崩溃;而看板仍显示 healthy:true,数据停滞 13 天(09-17 之后的快照带有 null 项,从 09-25 起每次运行都崩)。
grep -rnE '\.get\([^)]+, *[0-9]+\)' <scripts> | headpython - <<'EOF'
# 改为 null-safe
prev_h = prev.get('health')
today_h = today.get('health')
if prev_h is None or today_h is None:
continue
drop = prev_h - today_h
EOFtoken endpoint 只读 body 里的 client_id —— Spring Boot 按 RFC 6749 用 Basic auth 传凭据被无视
project-13 Spring Boot 客户端换票报 unknown_client/凭据缺失,调试发现 body 里根本没有 client_id
priceTrend 中 priceVal 为 null 时 NumberFormatException
([MarketServiceImpl.java](file://D:\xianzhi-brain\brain-service\src\main\java\com\xianzhi\brain\service\impl\MarketServiceImpl.java#L34-L39)):`priceTrend()` 从 SQL 结果行中读取 price 值时,大/小写 key 均未匹配到则 priceVal 为 null,`String.valueOf(null)` 返回字符串 "null",导致 `new BigDecimal("null")` 抛出 `NumberFormatException`: ```java Object priceVal = row.get("PRICE") != null ? row.get("PRICE") : row.get("price"); // priceVal 仍可能为 null! point.setPrice(new BigDecimal(String.valueOf(priceVal)).setScale(2, RoundingMode.HALF_UP)); ``` 同样的问题也影响 `dateVal`(日期字段),不过 `String.valueOf(null)` 返回 "null" 字符串而非抛异常。
⚠️ MEDIUM — 文件名拼写错误 infromation → information
暂无描述
creditScore 中 scoreVal 为 null 时 NumberFormatException
([RiskServiceImpl.java](file://D:\xianzhi-brain\brain-service\src\main\java\com\xianzhi\brain\service\impl\RiskServiceImpl.java#L21-L23)):`creditScore()` 从 SQL 结果中读取信用分数时,大/小写 key 均未匹配到则 scoreVal 为 null,导致 `Integer.parseInt("null")` 抛出 `NumberFormatException`: ```java Object scoreVal = row.get("SCORE") != null ? row.get("SCORE") : row.get("score"); // scoreVal 仍可能为 null! int score = Integer.parseInt(String.valueOf(scoreVal)); ``` 同样问题也影响 levelVal 的 `String.valueOf(levelVal)`。
在 JSX 内联 IIFE 里调 useState 违反 Hooks 规则:抽成独立组件
React 报 Rules of Hooks 违规或状态错乱
手写 BEGIN/COMMIT 拼 SQL 事务 —— 连接池下根本不在同一连接,merge 接口 500
账户合并接口偶发 500 且数据可能只改了一半——『事务』从未真正生效。
grep -rn 'BEGIN\|COMMIT' --include='*.ts' --include='*.js' <db 层> | grep -v transaction(智能助手 FAB 跳转企微客服,对话框未打开
点击 FAB → 跳转 `https://work.weixin.qq.com/kfid/<KFID>`,AI 对话窗口不出现。
```javascript
function onFabClick() { togglePanel() }
```OAuth PKCE verifier 只存内存 —— 跨 tab/恢复流程丢 state,补 localStorage 双写 + 15min TTL
用户在新标签页完成 OAuth 回调 → token 交换缺 verifier 失败;移动端浏览器后台回收内存后同样中断,表现为『登录转圈后莫名失败』。
双 tab 手测 OAuth 流程;检查 verifier 存储位置的写入/清除配对MEDIUM — 缺少 .gitignore
暂无描述
llm_service 重写后 SSE fallback 丢失 —— 非流式请求在流式分支里静默失败
LLM 上游不可用时非流式请求直接报错,设计中的 mock 回复(MODEL_REGISTRY + MOCK_HAIR_RESPONSES)降级链不生效
LOW — 无 README.md
暂无描述
numpy 大版本升级破坏数值依赖 —— NPV/IRR 手写 fallback 解除库版本耦合
升级 numpy 后财务基准测试全挂;数值计算库与业务正确性直接耦合,环境升级变成业务风险。
CI 跑数值基准(手算 expected 对照);pip check / 依赖审计报告 breaking 变更FastAPI 路由注册顺序:PUT /v1/genes/{gene_id} 遮蔽 PUT /v1/genes/score —— 'score' 被当 UUID 解析 500
PUT /v1/genes/score 请求被 {gene_id} 路由捕获,'score' 按 UUID 强转失败返回 500
JwtAuthFilter 静默吞异常无日志
JWT 解析异常时使用空 `catch` 块静默吞掉,不记录任何日志: ```java } catch (Exception ignored) { SecurityContextHolder.clearContext(); } ``` 当用户使用过期/伪造 Token 访问时,后端无任何日志输出,无法区分"无效 Token"和"系统内部错误"。
chain 容器缺 SPRING_PROFILES_ACTIVE=prod
chain 容器启动后未加载 `application-prod.yml` 配置,导致数据库连接等生产配置不生效。
(`7dc4892`):在 chain service 的 environment 中添加 `SPRING_PROFILES_ACTIVE: prod`。TenantContext ThreadLocal 未清理导致跨请求数据污染
(静态代码分析推断):请求 A(boothId=100)处理完后线程归还线程池,请求 B 复用同一线程但未设置 boothId,`TenantContext.getBoothId()` 仍返回 100,导致数据查询使用错误的 booth。
systemd timer 自动备份脚本内不能有 sudo(无 TTY 卡密码等待)
systemd timer 触发的备份任务卡在等待 sudo 密码输入,journalctl 无错误但备份从未实际完成;手动 sudo rsync 能跑但无人值守不行
MEDIUM — 根目录存在超大 SSH 会话日志
暂无描述
94.7KB cursor 对话文件被 Git 跟踪
暂无描述
微信小程序 `app.json is not found`
微信开发者工具编译时报 `app.json is not found in the project root directory`,连续出现 7 次。
MEDIUM — 残留 master 分支
暂无描述
Flyway V282 — `is_shared` BIT 类型不兼容 JPA
MySQL BIT 类型与 JPA/Hibernate 映射不兼容
BIT → TINYINT 类型修正⚠️ MEDIUM — Dockerfile 仅复制 index.html,其他页面无法访问
暂无描述
scripts/ 独立工具无 build tag:go build ./... 因多 main 冲突全仓编译失败
go build ./... 报 main redeclared;单独 go run 文件却正常
NL2SQL 生成 SQL 的 LIMIT 处理三连修复:不完整/重复/位置错误的 LIMIT 全部触发执行语法错误
AI 问数功能随机报 syntax error at or near 'LIMIT'——同样的提示词有时成功有时失败,完全取决于 LLM 这次把 LIMIT 生成在哪
LOW — deploy/backup/ 和 deploy/upgrade/ 目录为空
暂无描述
vite 未设置 base —— 部署在 Nginx /finance/ 子路径后静态资源全部 MIME type 错误
页面白屏,控制台大量 'MIME type (text/html) is not executable'——JS/CSS 请求实际返回了 index.html
⚠️ MEDIUM — .gitignore 缺少多个关键模式
暂无描述
工作区可能包含未提交修改
暂无描述
OAuth redirect_uri 配成后端 API 路径 —— UC 302 回跳是浏览器导航,必须落 SPA 路由
UC 授权后 302 回跳 /cpa/api/auth/callback 直接 404——那是后端 API 前缀,没有任何页面;PKCE 校验也因 start/callback 的 redirect_uri 不一致而失败
MEDIUM — tools/ 目录含大文件有泄露风险
暂无描述
LOW — .gitignore 未覆盖 cursor_*.md 和 .npmrc
暂无描述
psycopg2 的 with conn: 只 commit/rollback 不 close —— get_conn 改 @contextmanager 根治连接泄漏
长期运行后 PostgreSQL 连接被耗尽,新请求拿不到连接;每条路由用 with conn: 以为会释放,实际连接一直挂着
Unity 场景不会自动更新
([cursor_202606072237.md: Section 48, 50](file://d:/ai_mirror/cursor_202606072237.md)):修改 Unity 脚本或组件后,已有的 `StyleMirror.unity` 场景不会自动包含新组件。开发者必须手动执行 `StyleMirror → Create Main Scene` 重新生成场景才能看到改动效果。
scheduler 迁移失败让 entrypoint 退出 —— 单个插件迁移故障导致整站 502
sch_tasks 表迁移失败(如 DATABASE_URL 指向错误)时整个 API 容器退出,网关 502——一个插件的表故障瘫痪全部服务
QueryLogOut 撞 pydantic model_ 保护前缀 —— 与 project-11 同款陷阱的两地独立踩坑
pydantic v2 迁移后 QueryLogOut 的 model_used 字段行为异常并告警 field has conflict with protected namespace model_
LOW — 后端缺少异步数据库连接池管理
暂无描述
输入框拖拽松手后高度回弹
拖拽输入框上边框调整高度,松手后自动弹回原大小。
拖拽前 `detachTextarea()` 暂停 Observer,松手后 `bindTextarea()` 恢复。每请求 spawnSync 起 Python 子进程做 CAE 授权 —— 进程泄漏与阻塞双杀,改 Node 原生 http
bridge 进程数持续增长(每请求泄漏一个 python);授权检查同步阻塞事件循环,并发能力骤降
docker compose up -d <svc> 会连带 recreate depends_on 服务 —— 单服务操作不单服务
为让前端重建产物生效,执行 docker compose up -d frontend。该命令连带重建了 backend(compose 的 depends_on: {condition: service_healthy}),而 backend 重建后因一个潜伏的凭据不一致而无法启动 ⇒ unhealthy ⇒ frontend 因依赖未满足而拒绝启动 ⇒ 站点中断约 7.5 小时。
docker compose -f <file> config --services; docker compose -f <file> up -d --dry-run <svc> 2>&1 | grep -i recreatedocker compose -f <file> up -d --no-deps --force-recreate <svc>跨域 OAuth 跳转用 <Link> —— Next.js RSC prefetch 触发 CORS 拦截
CognX 头部的'登录/注册'按钮(href 指向 accounts..cn)点击前 prefetch 已被浏览器 CORS 策略拦截报错
MEDIUM — 文档文件过大需拆分
暂无描述
部署脚本变量展开失败后 rm 步骤被静默跳过 —— 备份资产无上限积累 1303 文件/33MB
Admin 静态资产目录持续膨胀,磁盘与 CDN 同步时间被拖慢;回查部署脚本发现清理步骤从未真正执行过。
ls -dt <deploy-dir>/*.bak | wc -l # 超过保留策略数即异常ls -dt <deploy-dir>/*.bak | tail -n+6 | xargs -r rm -rf网关子路径部署 Next.js 未配 trailingSlash —— /project-01/ 在 308 与 301 之间重定向死循环
访问 /project-01/ 浏览器在 308 与 301 之间无限跳转打不开页面
前端 downloadRandom Blob URL 在下载触发前被 revoke
`downloadRandom()` 中 `a.click()` 触发下载后立即调用 `URL.revokeObjectURL(a.href)`,在某些浏览器中下载可能尚未启动。
pgrep -f 匹配到脚本自身 —— 清理脚本把自己杀了
写了一个清理卡住的 certbot 实例的脚本 _clear_certbot.sh,用 for pid in $(pgrep -f 'certbot') 遍历并 kill。脚本运行到该处立即中断。ps 显示被匹配到的两个『certbot 进程』其实是 `bash <script>` —— 因为脚本【文件名里含 certbot】。
pgrep -af '<pattern>' # 先看会匹配到谁,再决定要不要 killps -eo pid,comm | awk '$2=="certbot"{print $1}' | xargs -r kill -TERMcompose --env-file 不等于容器环境变量 —— 密钥写进 .env.prod 后端永远读不到
按 Runbook 把密钥追加进 .env.prod 并重建容器后,应用仍然读不到密钥——排查时容易误判为 key 无效或加载逻辑问题。
docker compose exec <svc> sh -c 'env | grep -c <KEY_NAME>' # 0 即未透传在 compose 服务 environment: 段补 <KEY_NAME>: ${<KEY_NAME>:-} 后 up -d 重建超大型 cursor 对话文件被 Git 跟踪
暂无描述
LOW — JWT_SECRET 默认值不安全
暂无描述
管理后台数据映射四处手写适配器 —— 后端 RawStats schema 与前端假设各说各话
后端返回结构一变,四个后台页面各自渲染空白或字段错位;适配代码散落且形态互不相同(取 key / 包数组 / 全字段改名)。
grep -rn 'adapt\|\.data\.' <admin 页面> | 统计页面内手写结构解析的处数bash 脚本带 BOM + UTF-8 被 GBK 误读 —— shebang 行失效、中文注释全变乱码
generate-env.sh 在 Linux 上执行报错(首行 shebang 前有 BOM 导致解释器找不到),中文输出全为'鐢熶骇鐜'类乱码
⚠️ MEDIUM — 文档目录含大量 AI 对话拆分文件
暂无描述
问题简述
(用户/系统表现)
(代码/配置/脚本)
```LOW — image_processor.dart 单文件过大
暂无描述
CI 流水线分步构建 + 缺 trigger + 缺全局变量
Git commit `2066a8f`。`.workflow/xianzhi-brain-build.yml` 存在三个问题: 1. 流水线分为 `install_common` + `maven_build` 两个步骤且通过 `dependsOn` 串联 — 可合并为单 Maven 任务 2. 缺少 `triggers` 配置,push 到 main 不会自动触发构建 3. 缺少 `variables.global` 声明,`XIANZHI_GITEE_TOKEN` 无法在流水线中使用
合并为单 Maven 任务步骤,添加 triggers 和 variables 配置。LOW — CI/CD 机密管理需进一步完善
暂无描述
Vue Router createWebHistory 缺 BASE_URL 导致子路径部署白屏
生产环境 `https://domain/xianzhi/admin/` 部署时白屏,控制台路由匹配失败。
(`3499ec7`):
```ts
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [...],
})
```9.1MB Maven ZIP 安装包被 Git 跟踪
暂无描述
Windows 上 process.kill(SIGKILL) 杀不死进程 —— taskkill /F /PID 原生兜底
PID 文件方案上线后偶发旧 bridge 依然存活占用端口——日志显示 kill 调用没抛错但进程还在
docker .env vs .env.prod 混淆导致错误 key 注入
两个节点 backend 容器里 REPORT_API_KEY=dummy-key-for-now;所有上报 API 返回 403
RandomnessExtractor._collect_bits 条件分支逻辑冗余
`_collect_bits()` 中 `if event.get("coincidence") or (a and b)` 和 `elif a != b` 两个分支都执行 `bits.append(int(a) ^ int(b))`,且 coincidence 隐含 a=True 且 b=True。
OmniTruthClient 缺 cfg(feature = "remote") 条件编译
`OmniTruthClient` 使用了 `reqwest` 依赖但未使用 `#[cfg(feature = "remote")]` 进行条件编译,导致默认编译时 reqwest 依赖未启用而编译失败。
(`7755e5d`):为 `OmniTruthClient` 添加 `#[cfg(feature = "remote")]` 条件编译。工作区大量未提交修改(48 文件)
暂无描述
MEDIUM — 无 .gitignore
暂无描述
SigningKey 私钥 hex 明文写入生产日志:tracing::warn 打印 sk_hex
服务启动日志中可见完整 signing key hex
rsync 脚本必须显式 -e ssh -i $KEY,不依赖 ssh-agent 继承
手动 rsync 免密(ssh-agent 持有密钥)但脚本里同样命令要求输密码;systemd/nohup 环境下 rsync 卡死或报 Permission denied
目标 webview 不支持 ES6 箭头函数:全站 Promise 语法错误,且修复循环 30+ commit 暴露 AI 盲改模式
控制台 Uncaught SyntaxError: Unexpected token;window.db 未定义;页面功能整体不可用
前端 chunk 过大(>500KB)
暂无描述
systemd timer User=root 运行时 known_hosts 路径不匹配导致 SSH 静默失败
手动 sudo rsync 能跑(因为 root known_hosts 可能碰巧有或手动已 accept),但 systemd timer 后台跑时 SSH 静默报 'Host key verification failed',journalctl 无报错但备份从未完成
Ubuntu cloud-init 双位置注入 NOPASSWD:ALL 需两处同时清除
sudo 任何命令无需密码,安全漏洞;自动化备份脚本 systemd timer 以 root 跑时虽然安全但手动操作也无密码防护
mockSession 重复声明 SyntaxError —— 一个服务文件的语法错误阻断整个服务器启动
后端启动即崩:SyntaxError: Identifier 'mockSession' has already been declared,新 admin 路由完全无法验证
Flyway V162 — 重复列 `compliance_flag` → 全站 502
暂无描述
Windows psql GBK 控制台执行含中文的迁移文件报编码错误 —— RAISE NOTICE 改 ASCII-only
Windows 本地执行 002 迁移报 client/server encoding mismatch 或非法字节序列,Linux 上同一文件正常
测试套件 spawn bridge 后不 kill —— 孤儿进程占端口,套件间 race condition
run_all 全量跑时偶发端口占用失败——单套件全绿,连续跑随机挂,失败原因指向 netstat/taskkill '偶发失效'
管道吞掉退出码 —— 守卫恒为真,[emerg] 却报『语法通过』
脚本打印「✅ 语法通过 / 三态 200 / 其它站点正常」,而 nginx 实际报了 [emerg] 且配置未生效。连续发生 3 次。
grep -rnE 'if .*\| *(sed|grep|awk|tail|head)' <scripts>sed -i 's/if \(.*\) 2>&1 | sed/OUT=$(\1 2>\&1); RC=$?; printf "%s\\n" "$OUT"; if [ $RC -eq 0 ]; then :; fi; # /' <script>timingSafeEqual 长度不等直接抛 RangeError —— 校验失败的请求变成 500 而非 401
伪造/截断的 session token 打到 verifySessionToken 时服务端抛 RangeError 返回 500,而非安静地判无效返回 401;异常路径还可能被上层兜底逻辑放大
超大型 AI 对话文件被 Git 跟踪
暂无描述
Gitea 备份脚本三缺陷叠加:dump fatal 仍落 6.6GB 残缺包、只查文件存在不查退出码、容量根本不够
备份日志显示 OK;实际 zip 缺 ssh 目录;磁盘被 6.6GB 包塞满
CI build@shell commands 使用 here-string 格式校验失败
Gitee Go `build@shell` 的 `commands` 字段使用了 YAML 的 `|` here-string 格式(多行字符串),导致流水线校验提示格式问题。
(`4d93e25`):将 `commands` 从 `|` here-string 改为列表格式,并在 `ci-build.sh` 中增加 CI 日志标识。
```yaml
commands:
- set -e
- bash scripts/ci-build.sh
````manifest.csv` 数据字段映射错误
暂无描述
jjwt-impl 运行时依赖缺失致 JWT 运行时崩溃
调用 `JwtTokenService.parse()` 或 `createToken()` 时抛出 `java.lang.ClassNotFoundException`,最终 fat JAR 不含 jjwt-impl 实现类。
**提交**:`b2c9255`
移除 `jjwt-impl` 的 `<scope>runtime</scope>`,确保打包时包含实现类:
```xml
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<!-- scope 移除,默认 compile 包含到 fat JAR -->
</dependency>
```指望 LLM 稳定输出机器可解析格式 —— 链接正则 /products/\d+ 频繁落空
智能助手回复该带商品卡片时经常缺失——模型没有按提示词输出可解析的商品链接。
统计卡片注入率 < 阈值即告警;grep 提取逻辑是否只解析文本层LOW — 后端数据层默认使用 CDN URL,本地测试需联网
暂无描述
CI 校验 build@shell 被 Gitee Go 拦截
Gitee Go `build@shell` step 被插件校验系统拦截,无法保存流水线;同时 Gitee CI 基础镜像无 docker 客户端,`docker compose config` 无法执行。
(`f0b4d0e`):改用 `build@nodejs` step 作为容器,执行 ci-validate.sh;该脚本在无 docker 时跳过 compose 校验,仅执行 `bash -n` 检查 shell 脚本语法。UC userinfo 只认 uc_sub 字段 —— 标准 OIDC 'sub' 返回时登录全部 401
UC SSO 换票后 userinfo 校验抛 UnauthorizedException,日志可见返回体里只有标准 'sub' 没有 'uc_sub'
尚未初始化 Git 仓库
暂无描述
`git init`,创建 `.gitignore`,提交初始版本。LOW — 工作区有多个未跟踪文件
暂无描述
插件迁移不在容器启动时执行 —— 缺表导致 /api/plugin/contract/contracts 500
新部署环境 core 正常但插件接口全 500(relation does not exist),手工补表才恢复——每个新环境都要踩一遍
运维大屏健康检查 420s 超时
`420s 内 backend 未就绪` → 标记为 `failed`
服务间构造注入成环 —— 事件驱动拆解循环依赖,删掉中间层接口
审批流转里要同步触发知识共享逻辑,知识共享又要回调审批状态,三个服务互相注入成环;扩一个功能就绕一圈改三个类。
grep -rn 'ApplicationEventPublisher' --include='*.java' -l # 及新功能 code review 检查注入环productIds 以 List.toString() 逗号分隔存储
`createDraftOrder()` 使用 `request.getProductIds().toString()` 存储商品 ID 列表,格式 `[1, 2, 3]` 脆弱,无法高效 SQL 查询。
向量重导只从 metadata 取值,而元数据里没有 content 键,导致重导是全量空操作却返回全绿
调用重导接口返回 200 且无错误,但向量库里内容毫无变化;用户以为重导完成,实际一条都没更新。
测试套件老化双症 —— 函数签名改了 mock 不同步 + ESM 专属 API 跑在 CJS 测试环境
测试失败的原因不在被测代码有 bug,而在测试自身过期——签名演进、环境 API、mock 导出三处老化叠加,测试从安全网变成噪音源。
npx jest <suite> 2>&1 | grep -c 'Cannot read properties\|import.meta';mock 导出 vs 源码导出 diffUC 绑定冲突直接报错 —— 正确语义是先解绑旧账户再绑新账户
用户换绑第三方登录时收到生硬的唯一约束错误,业务上无法自助换绑。
grep -rn 'UNIQUE constraint\|duplicate key' <绑定接口日志>;核对冲突分支处理逻辑Map<?, ?> 通配符上 getOrDefault —— 泛型擦除掩盖的类型错误
商品卡片注入工具方法对未知 value 类型做默认值兜底,行为不可预期。
grep -rn 'Map<?, ?>\|Map<?, ' --include='*.java' | grep getOrDefault把字符串主键经 (long) hashCode() 转换后写入,使 ON CONFLICT 永不命中,幂等导入变成数据翻倍
重复执行导入后向量表行数翻倍(1248→2496),出现大量同内容重复行;检索结果重复;接口全程无报错、返回全绿。
详情跳转依赖当前分页列表数据 —— 目标 ID 不在本页就静默失败
跨页引用的单据点开详情无响应且无任何报错——『数据在不在当前视图』被当成了『数据存不存在』。
grep -rn 'rows.find\|list.find' <详情跳转组件> | 核对是否按 ID 独立请求前置校验状态机漏态 —— 售后检查只认 PENDING,五个在途状态全部绕过
处于退款中/已批准/取货中/验机中/换机中的订单没被前置校验拦住,进入重复退款或状态冲突。
grep -rn 'PENDING' --include='*.java' | grep -i 'refund\|precheck' # 核对是否漏在途状态补全选项的逻辑把无选项的主观题强转成单选题、覆盖答案为 A 并伪造占位选项,污染 24% 题库与 IRT 能力估计
用户在练习中遇到「选项是 A.选项A」的题,无法作答;因为这些题的正确答案被伪造成 "A",随手一选就算答对,虚假的正确记录抬高 IRT 的能力值 θ,使自适应练习难度整体失真。
LOW — 根目录 2MB 调试日志未清理
暂无描述
占位符 token 从未在解析器中注册且全链路无校验,导致花括号原样显示给用户
用户在题目里看到 "蛟龙集团的{{PARENT_COMPANY}}作为承兑人在汇票上签章",花括号直接暴露在产品界面上。
LLM 服务异常时静默降级到模板引擎 —— 仍标注『AI 生成』的诚实性缺陷
『AI 生成』内容实际出自关键词模板——用户感知不到降级,产品指标(AI 使用率/满意度)全部失真,问题长期潜伏为 known 状态。
grep -rn 'catch\|fallback' <AiService>.java | 核对降级路径是否埋点;统计 template 路径命中率WeightCalibrator refutation target key 映射错位:命中率 85% 对 target 0.75 报 OVER,实际 target 是 0.95
dashboard JSON 中 hit_rates_intent 的 OVER/UNDER 判断与 raw_rates 数值矛盾;校准 deltas 方向反常
一个字段两套语义 —— confidence 静态评分混入『上报 +0.01』动态热度
热度上报会永久抬高置信度分;等 report_outcome(真实结果反馈)上线后,存量数据已经混载两代语义,无法区分哪些分是质量、哪些是热度。
grep -rn 'confidence' --include='*.py' | grep -E '\+\s*0\.01|update' # 核对写入点语义服务类多构造器注入歧义 —— Spring 选错构造器导致依赖未装配
服务实例化后关键依赖为空,调用时报 NPE 或行为异常;单构造器时无此问题,新增便捷构造器后触发。
grep -rn 'public <ServiceClass>(' --include='*.java' | awk 计数 > 1 且无 @Autowired 即命中async 关键字缺失让邀请接口 fire-and-forget —— 失败无提示且重复 key 警告堆积
协作空间邀请成员偶发无任何反馈(成功失败都不知道);控制台被重复 key 告警刷屏。
grep -rn 'handle.*=' --include='*.tsx' <src> | 逐个核对含 await 的处理器是否 async;控制台过滤 duplicate key列表接口只回 ID 不回展示字段 —— 前端到处拼名字/SKU 的结构性返工
多个页面各自实现『ID→名称』的拼凑逻辑;每加一个展示页就多一份映射代码,后端最终补 product_name/product_sku/component_name/component_sku 字段统一解决。
grep -rn 'product_name\|sku' <前端各列表页> | 若存在多处本地映射即结构问题多端代码绕过统一 env 配置硬编码 BASE_URL + 路径双写 /api —— 支付运行时 404
小程序支付请求 404;构建期无任何报错(硬编码是合法字符串),只在运行时暴露,且换环境(dev/prod)时部分模块行为不一致。
grep -rn 'https\?://' <services-dir> --include='*.ts' | grep -v config;grep -rn 'api/api' <构建产物或请求日志>SSO cookie 域写成具体子域 —— session 无法跨子域共享,且 domain 在两处维护
用户在子域 A 登录后跳到子域 B 仍是未登录态;排查还发现修一处 domain 后另一处仍写旧值——同一配置两个维护点互相打架。
浏览器 DevTools 查看各子域 document.cookie/请求头;grep -rn 'domain' <auth 路由> | 核对赋值点数量Dockerfile COPY 白名单漏资产 —— 新增静态文件没进镜像,线上 404/502
本地构建产物齐全,线上却缺文件——构建方式是『本地 npm build → 服务器纯 COPY』,白名单没有随源文件清单同步更新。
tar -tf <前端镜像或产物包> | grep -E 'splash|manifest|\.well-known' # 与 dist 目录清单 diffnginx 替 SPA 接管 OAuth callback 路由 —— rewrite 抢跑,回调永远到不了页面
OAuth 回调 404 或跳错位置;P0 事故复盘后确认根因在网关层多管闲事。
grep -n 'callback\|/uc/' <nginx conf> | 核对是否存在 rewrite/proxy 抢跑;浏览器实测回调落点种子数据字段名与 Hibernate 实际建表漂移 —— seed 脚本一跑就断
种子数据导入报未知列错误;JSON 种子文件与实体定义分属两处维护,实体改字段时 seed 没有跟着改。
python -c 'json keys vs 实体字段' 对账;或导入失败信息中的 unknown column题库 10000 条中 83% 是克隆副本 —— 无内容指纹去重的语料膨胀
题库『规模 10000』虚高;随机抽题重复率高、RAG 检索被重复内容稀释、统计指标全部失真。
指纹重复率 = 1 - 去重后数/原始数;>5% 即治理软删除与状态不变量脏数据 —— BOUND 卡 balance=0、deleted_at=NULL 的孤儿用户
恢复/清理等下游逻辑依赖 deleted_at 或状态-余额组合做判断,脏数据导致空指针或错误放行。
SELECT COUNT(*) FROM users WHERE is_deleted=1 AND deleted_at IS NULL; # 及同类不变量断言Spring Security 首个匹配生效:显式 permitAll 与「非 /api 前缀即放行」的兜底规则叠加,使 /v3/api-docs 匿名可访问
未登录即可拉取完整 OpenAPI 文档,暴露全部接口清单与参数结构,为攻击者提供完整攻击面地图。
CORS 通配符 * 全放开:dashboard/CLI API 端点收紧为 Origin 白名单动态回显
任意 origin 的网页 fetch 均能拿到 API 响应(安全合规扫描项 IMPL-014 Task 3)
租户隔离 fail-closed 改造:X-Tenant-ID 头盲信不校验成员关系,可跨租户注入 RLS 上下文
接口按传入的 X-Tenant-ID 返回其他租户数据;tenant 缺失请求只产生 warning 日志但正常返回
引用未定义的 CSS 变量 var(--color-text) 使深色主题下文字与背景同色(对比度约 1.05:1)
AI 助手面板的「智能诊断/即时答疑/考前陪练/自适应刷题」等标签在深色主题下完全看不清(文字与背景同色)。
正则分支逃逸 —— 交替符 | 优先级低于预期,关键词分支独立匹配整串
交互关键词匹配行为错乱:本应『完整短语+数字』才命中的规则,仅靠关键词分支就匹配了整个字符串。
grep -rnE '\|[^?)]' --include='*.java' | grep -E 'Pattern|matches' # 人工复核分组Python f-string 里写了 JS 三元运算符 ? : —— SyntaxError 编译期即崩
prompt-factory 启动即 SyntaxError,定位到一条 f-string 内部——跨语言写串了
numpy 2.x 移除 npv/irr:金融计算静默失效 + 基准测试 expected 值本身就是错的
升级 numpy 后金融计算报 AttributeError;或基准结果与手算不符
会话 token 校验缺长度前置检查 —— 畸形输入直接 RangeError 500
带畸形 cookie 的请求触发未捕获异常返回 500,日志堆栈指向解析函数;本质是输入校验顺序错误——先用了后检查。
grep -rn 'slice(\|substring(\|split(' <auth 模块> | 反查入口是否有长度守卫Go 服务启动时 DB 单次连接失败即静默降级内存模式 —— postgres 未 ready 导致 repo 永远 nil
docker compose 启动时 sandbox/user-auth 比 postgres 先起,单次连接失败后永久走内存模式——重启 postgres 后服务不自愈,重启服务才能恢复
CI 审批门禁旁路:governance-calibrate workflow 里 calibrate --apply 自动直写生产权重
weights.yaml 变更记录里出现 CI bot 的自动 commit;权重变化没有对应的人工审批记录
healthcheck 配置写成单行分号分隔(interval: 5s; timeout: 5s; retries: 5)YAML 解析失败
docker compose config 报 healthcheck 相关解析错误
OAuth state 参数被丢弃 —— 多产品共用回调后永远跳默认站点
多产品统一登录后,从产品 B 发起登录却被送回产品 A——state 在授权请求里明明带上了,回调侧没人读。
grep -rn 'state' <发起端与回调端> 核对写入/读取是否成对;日志记录回调收到的 state 原文MEDIUM — SQLite 数据库文件被提交到仓库
暂无描述
SSH hardening lockout
Cannot SSH after config change
compose healthcheck 高频触发把网关限流额度吃光 —— 健康检查路径白名单
compose healthcheck 每 10s 打一次 /health,按 IP 计数的限流中间件把健康检查计入额度,正常流量配额被挤占甚至健康检查自身被 429
Ubuntu cloud-init NOPASSWD two-location injection
sudo works without password after cloud-init provisioning
sudo redirect scope
Permission denied when sudo with shell redirect to root-owned file
Tencent Cloud SG missing outbound default
apt update fails, rsync hangs, even though inbound rules look correct
V99 权限修复
暂无描述
网站极慢 / ERR_TIMED_OUT
用户访问网站时出现 `ERR_TIMED_OUT` 或页面加载时间 > 10s。
静态站 403 权限问题
暂无描述
LOW — 远程仓库不可达
暂无描述
Unity WebCam 拍到一帧就 Stop
([cursor_202606072237.md: Section 50](file://d:/ai_mirror/cursor_202606072237.md)):UAT-001 中 WebCam 仅采集一帧后就停止运行,遮挡检测(UAT-016)和对比预览(UAT-005)无法持续工作,人脸轮廓短暂闪现后消失。
- 重构 WebCam 生命周期管理,不再在检测到人脸后 `Stop()`
- 遮挡检测与对比预览共享 WebCamTexture 持续数据流
- 主场景重新生成后包含持续 WebCam 组件根目录存在 294MB SSH 日志文件
暂无描述
WebSocket `/ws/` 路由未被 Nginx 反代
浏览器报 `WebSocket connection to 'wss://example.com/ws/broadcast-screen' failed`,无限重连
Nginx `location /ws/` 反代规则 + `apply-project-host-nginx.sh`⚠️ MEDIUM — data/ 目录缺少忽略规则
暂无描述
MEDIUM — 工作区未提交修改堆积
暂无描述
CI 流水线分步构建 + 缺 trigger + 缺全局变量
Git commit `2445572`。`.workflow/xianzhi-chain-build.yml` 存在三个问题: 1. 流水线分为 `install_common` + `maven_build` 两个步骤且通过 `dependsOn` 串联 — 可合并为单 Maven 任务 2. 缺少 `triggers` 配置,push 到 main 不会自动触发构建 3. 缺少 `variables.global` 声明,`XIANZHI_GITEE_TOKEN` 无法在流水线中使用
合并为单 Maven 任务步骤,添加 triggers 和 variables 配置。CI clone 前未校验 XIANZHI_GITEE_TOKEN 非空
CI 流水线中 `${XIANZHI_GITEE_TOKEN}` 为空时流水线仍继续执行,`git clone` 失败后才报错,浪费构建时间。
**提交**:`e4c1996`
在 git clone 命令前添加 Token 非空校验。⚠️ MEDIUM — 仅有 GitLab 远程,无备份
暂无描述
LOW — 项目无实际代码实现
暂无描述
LOW — 缺少阶段六开发板实机测试
暂无描述
finalize-gitee-rename 仓库路径计算错误
finalize-gitee-rename.sh 执行时 REPO_DIR 路径计算错误,无法正确定位仓库目录。
(`1fc8add`):直接使用 `DEPLOY_ROOT/..` 作为 repo 目录,去掉多余的 `XIANZHI_ROOT` 计算。根目录遗留 6MB+ 日志文件
暂无描述
CI 分步构建可合并为单 Maven 任务
CI 流水线拆分为多个步骤分别 install xianzhi-common 和 package base,增加构建时长和失败风险。
**提交**:`e229e33`
合并为单个 Maven 任务的 shell commands,减少步骤:
```yaml
commands:
- mkdir -p .ci-deps
- git clone --depth 1 https://oauth2:${XIANZHI_GITEE_TOKEN}@gitee.com/xianzhi-eco/xianzhi-common.git .ci-deps/xianzhi-common
- mvn -f .ci-deps/xianzhi-common/pom.xml -B install -DskipTests
- mvn -B -pl base-starter -am package -DskipTests
```MEDIUM — 仅 1 个单元测试文件
暂无描述
LOW — 仿真产物(gif/日志)未在 .gitignore 中
暂无描述
LOW — 工作区有 11 个未提交修改
暂无描述
AUTH.refresh 对 401/非 user 响应不清过期 token —— 所有依赖 AUTH.token 的登录守卫集体失效
token 过期后页面出现诡异的半登录态:部分组件认为已登录(读到旧 token)继续发请求吃 401,部分守卫判定未登录;通知横幅等渲染出错误状态
SimulatedEntanglementSource._config 多线程数据竞争
`configure()` 从 API 线程修改 `self._config`,而 `_simulate_data_stream()` 在后台线程中同时读取 `self._config`,无锁保护导致数据竞争。
dashboard 缓存单 key 串数据:不同 workspace/top_n/skip_git 参数共享同一份 10s 缓存
dashboard 切换 workspace 后数据还是上一个项目的;force 刷新才正确
QuantumEventBuffer 使用 Lock 而非 RLock 导致 wait_for_events 死锁
调用 `wait_for_events()` 时线程永久阻塞,导致 QRNG 采集流程无法获取足够事件。
README 中 smoke-test 路径错误
开发者按 README 指引运行 `.\scripts\smoke-test-api.ps1` 时提示路径不存在或命令错误。
- 修正 README 中 `smoke-test-api.ps1` 的实际路径
- 保持 README 中的命令路径与实际 `scripts/` 目录一致⚠️ MEDIUM — .gitignore 缺少多个关键模式
暂无描述
auth/me 响应泄漏 password 字段 + 58 个端点裸奔无 @PreAuthorize
登录用户调 /auth/me 能拿到自己的 BCrypt 哈希;绝大多数业务端点未登录也能访问(RBAC 形同虚设)
admin 的 sync-capabilities / apply-sync 端点漏带 Authorization header:后端 401 静默失败
管理页点同步/应用按钮报 401;其他按钮正常
CI build@shell 被 Gitee Go 插件校验拦截
Gitee Go 对 `build@shell` step 执行了插件校验,拦截了流水线执行。
(`f4c2d2a`):改回 `build@nodejs` step 但保留 `nodeVersion: 15.12.0`(仅为通过编辑器校验),实际构建命令改为 `bash scripts/ci-build.sh`,由该脚本内部安装并使用 Node 20。
```yaml
- step: build@nodejs
name: npm_build
displayName: Nodejs 构建
nodeVersion: 15.12.0
commands:
- bash scripts/ci-build.sh
```CI build@nodejs 仅 Node 15,Vite 8 需≥20.19
Gitee Go 的 `build@nodejs` 提供的最高 Node 版本仅为 15.12.0,但 xianzhi-admin 使用 Vite 8,要求 Node ≥20.19,导致 CI 构建失败。
(`afc9d7a`):改用 `build@shell` step,在 shell 环境中自行下载安装 Node 20,再执行 `npm ci && npm run build`。新增 `scripts/ci-build.sh` 脚本和 `engines.node` 声明。
```bash
#!/usr/bin/env bash
set -euo pipefail
NODE_VERSION=20.19.0
INSTALL_DIR="${HOME}/.ci-node-${NODE_VERSION}"
if [ ! -x "${INSTALL_DIR}/bin/node" ]; then
mkdir -p "${INSTALL_DIR}"
curl -fsSL "https://npmmirror.com/mirrors/node/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" \
| tar -xJ -C "${INSTALL_DIR}" --strip-components=1
fi
exportCI 分步构建可合并为单 Maven 任务
CI 流水线拆分为多个步骤分别 install xianzhi-common 和 package lightning,增加构建时长和失败风险。
**提交**:`b02393c`
合并为单个 Maven 任务的 shell commands,减少步骤:
```yaml
commands:
- mkdir -p .ci-deps
- git clone --depth 1 https://oauth2:${XIANZHI_GITEE_TOKEN}@gitee.com/xianzhi-eco/xianzhi-common.git .ci-deps/xianzhi-common
- mvn -f .ci-deps/xianzhi-common/pom.xml -B install -DskipTests
- mvn -B -pl lightning-starter -am package -DskipTests
```LOW — 工作区 9 个文件未提交
暂无描述
缺少新功能提交策略
暂无描述
LOW — 无前端构建验证
暂无描述
MEDIUM — 无 CI/CD 流水线
暂无描述
CI Gitee Go Maven 任务 UI 模式校验失败
Gitee Go 流水线在 UI 模式校验阶段失败,无法进入构建步骤。
**提交**:`2e8b42b`
将 Maven 构建步骤改用 plain command 模式,绕过 UI 校验直接执行 shell 命令:
```yaml
commands:
- mvn -B -pl lightning-starter -am package -DskipTests
```CI 私有仓库克隆凭证缺失
CI 使用 `https://gitee.com/xianzhi-eco/xianzhi-common.git` 匿名 clone 私有仓库时认证失败。
**提交**:`67ae07c`
- 改用 `https://oauth2:${XIANZHI_GITEE_TOKEN}@gitee.com/...` 格式提供认证
- `.gitignore` 中添加 `.ci-deps/` 忽略临时克隆目录CI 简化 common clone 命令并拆分两阶段 Maven
CI 中 clone xianzhi-common 使用 `cd .. && git clone ... && cd -` 方式导致工作目录混乱。
**提交**:`686bb86`
使用 `mkdir -p .ci-deps && git clone ... .ci-deps/xianzhi-common` 直接指定目标目录,避免工作目录切换。.env 文件已存在,需确认是否应纳入版本控制
暂无描述
LOW — _CancelableIsolateRunner 取消竞争条件
暂无描述
脆 mock 测试长期红着没人修 —— mock 了被测行为本身,12→10 failed 成为背景噪音
测试套件长期 10+ failed,团队默认『红是正常的』;真回归被淹没在固定红里,CI 信号彻底失效。
跑一遍测试统计 failed 数与红龄;grep setup 文件中的全局 mock 是否改变平台语义测试运行时 JSON 产物成批入库:data/ 目录无 gitignore 规则 + flaky test 真因是临时目录不隔离
git status 里大量陌生 JSON 产物;某测试偶尔失败且难以复现
以「容器 healthy」替代「服务可用」
修复后端认证问题后,backend 与 frontend 均转为 healthy,据此认为服务已恢复。但站点仍返回 502 —— 因为 nginx 缓存了容器的旧 IP。
docker ps --format '{{.Names}} {{.Status}}'; curl -so /dev/null -w 'end-to-end=%{http_code}\n' https://<host>/2026-06-07 git pull 被 untracked 文件连续 5 次阻断
`production-update.sh` 连续执行 5 次(20:36→20:56→21:07→21:17→21:26→21:56),每次 `git pull` 都被 `deploy/smoke-admin-report-apis.sh` 这个 untracked 文件阻止: ``` error: The following untracked working tree files would be overwritten by merge: deploy/smoke-admin-report-apis.sh Aborting ```
手动 `rm deploy/smoke-admin-report-apis.sh` 后重新执行 pull⚠️ MEDIUM — .gitignore 缺少多个关键模式
暂无描述
根目录 6 个超大日志文件(1.16GB)
暂无描述
大量 prompts 文档不宜纳入版本库
暂无描述
2026-06-10 循环依赖 — KnowledgeShareService ↔ ApprovalWorkflowService
暂无描述
显式构造函数替代 `@RequiredArgsConstructor`,确保 `@Lazy` 正确代理Hibernate 6 ENUM 与 Flyway VARCHAR(32) 不兼容
Hibernate 6 默认倾向 MySQL 原生 ENUM,与 Flyway VARCHAR(32) 不一致 → `ddl-auto: validate` 失败。
`spring.jpa.properties.hibernate.type.preferred_enum_jdbc_type: VARCHAR`父 POM 缺少 spring-boot-maven-plugin skip=true 配置
Git commit `a41e00b`。父 POM 的 `<build><plugins>` 中未声明 `spring-boot-maven-plugin`,导致在项目根目录执行 `mvn spring-boot:run` 时,Maven 尝试在每个模块(包括无 mainClass 的 brain-common/brain-domain/brain-api/brain-service)上执行 `spring-boot:run`,抛出"无 mainClass"错误。
在父 POM 的 `<build><plugins>` 中添加 spring-boot-maven-plugin 并设置 `<skip>true</skip>`:
```xml
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
```chain-starter jjwt-impl scope 为 test(运行时报 ClassNotFoundException)
Git commit `4283c8d`。`chain-starter/pom.xml` 中 jjwt-api、jjwt-impl、jjwt-jackson 的 scope 全部设为 `test`,导致: - 应用运行时 JWT 签名/解析因缺少 `jjwt-impl` 和 `jjwt-jackson` 而抛出 ClassNotFoundException - 影响所有需要身份认证的 API(下单、订单查询、商品管理)
将 scope 从 `test` 改为 `runtime`:
```xml
<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-api</artifactId></dependency>
<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-impl</artifactId><scope>runtime</scope></dependency>
<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-jackson</artifactId><scope>runtime</scope></dependency>
```公开状态端点注册在 auth middleware 之前 —— Express 路由注册顺序即访问控制
运维健康检查需求落地后,AI 服务状态、向量库(Qdrant)水位等内部运行信息对公网匿名可见;后续新增需要公开的端点也必须塞在 middleware 之前,公开面越积越大且无人盘点。
grep -n 'app.use(.*auth' 与路由注册行按行号比对:出现在 auth 之前的路由即免鉴权面以 HTTP 200 判定服务暴露 —— SPA catch-all 造成假阳性
对 20 个 /actuator/* 路径逐个请求,全部返回 200|203285,据此判定「Spring Actuator 暴露、可能泄露 env/heapdump」。
curl -s -o /dev/null -w '%{http_code}|%{size_download}' https://<host>/actuator/env; curl -s -o /dev/null -w '%{http_code}|%{size_download}' https://<host>/nonexistent-xyzdiff <(curl -s https://<host>/actuator/env) <(curl -s https://<host>/nonexistent-xyz) && echo 'catch-all:状态码不可作为存在性证据'CI 流水线 triggers 配置位置错误
向 `main` 分支推送代码后,Gitee Go CI 流水线不自动触发。开发者需手动进入 Gitee 平台触发构建,持续集成完全失效。
1. 将 `triggers` 区块从文件底部移至顶部(`stage` 之前)
2. 移除冗余的 `variables` 区块(`XIANZHI_GITEE_TOKEN` 未使用)
3. 统一 `triggers` 格式与 base 流水线一致(`trigger: auto` + `push.branches.precise: [main]`)占位符别名按 id 字典序动态推导,新增一家 id 靠前的记录会让数百道题的指向静默改错
新增一家公司后,数百道题里出现的公司名悄悄换成了另一家;没有报错、没有测试失败,只有人工比对才能发现。
验证时序错误 —— reload 是异步的,立刻测会报假红
对两个站点做同样改动并 reload,脚本内立刻验证:站点 A 生效、站点 B 报『未生效(返回 200)』。据此判定 B 失败。19 秒后单独复测 ⇒ B 实际返回 404(响应体是 nginx 的 404 页,162B,与首页 473B 不同)⇒ 改动是成功的。
grep -rnE 'reload' <deploy-scripts> | grep -v 'sleep\|for i in'在 reload 与验证之间插入: sleep 2; for i in 1 2 3 4 5; do curl -so /dev/null -w '%{http_code}' <probe> | grep -q 404 && break; sleep 1; done