Skip to content

chore(renovate): Dashboard 队列清空后自动关 + AAV-1329/1331 守卫合流 - #767

Merged
0xPabloLI merged 8 commits into
devfrom
lovable
Oct 10, 2026
Merged

0xPabloLI merged 8 commits into
devfrom
lovable

Conversation

@0xPabloLI

Copy link
Copy Markdown
Owner

lovable → dev 的常规合流。含 3 张票的工作 + 1 笔 bot 同步,其中 a388408d 是本 PR 的主项,其余两笔属 wb-1009a session(我这次推送把它们一起带上了 lovable,见下)。

1. chore(renovate): Dependency Dashboard 队列清空时自行关闭(a388408d)

起因是"那张 Dependency Dashboard 卡能不能处理掉"。判据来自一手源码 lib/workers/repository/dependency-dashboard.ts:卡片由每轮 ensureIssue() 按标题维持,手工关掉不持久;真正的关闭路径只有两条——

  1. dependencyDashboardAutoclose 为真,且那一轮 !hasBranches && !hasDeprecationsOrReplacements;
  2. dependencyDashboard: false ⇒ 走 ensureIssueClosing(),此后 readDashboardBody() 连读都不读它。

schema 默认 dependencyDashboardAutoclose=False ⇒ 不配就永远不关。取 1、不取 2:本仓那个"半个 eslint 上限"(matchPackageNames 只钉 @eslint/js、漏 eslint 本体,而 eslint-plugin-import 的 peer 只到 ^9 ⇒ 严格 npm ci 挂在 dev/main 都必填的 peer-dep-check)正是从这张卡的 update dependency eslint to v10 一行看出来的;拉总开关等于把 minimumReleaseAge: 7 days 与排程挡住的队列重新变回黑盒。

验证:scripts/renovate-config.test.mjs 第 9 条先红(undefined ≠ true)后绿;两组正对照实测变红(临时 dependencyDashboard:false ⇒ 红;临时给 packageRule 加 dependencyDashboardApproval:true ⇒ 红),renovate.json 事后按 sha256 校验为逐字节还原。

两点预告:它今天不会关掉那张卡(上面还挂着 35 条 Awaiting Schedule、8 条 Pending Status Checks、1 条 framer-motion replacement);而且 Renovate 只读默认分支的配置 ⇒ 这笔要走到 main 才被读到。

2. test(e2e): faq-anchor 改用页面自身就绪判据 + networkidle 静态守卫(3430b65b)— AAV-1329,wb-1009a

3. test(guard): architecture-guard 的 FS 扫描改为一次性(a0c8982f)— AAV-1331,wb-1009a

4. chore(hardcode): sync hardcoded assets and mappings(eb2a7f45)— bot

package-lock.json 里 @aave-dao/aave-address-book 4.72.2 → 4.73.0。本地 node_modules 未重装,所以这条由 dev 的严格 npm ci(peer-dep-check)来验。

本地门禁

E2E_PROXY=http://127.0.0.1:7897 npm run ci:remote + pre-push 全门,PUSH_RC=0:

  • 单测 4098 passed | 14 skipped | 6 todo(192 files);✓ built in 3.52s
  • e2e 子集 64 passed / 3.9m,0 failed
  • osv-scanner No issues found;semgrep / knip / dup 全过

值得一提:同一棵工作树在不带代理时曾跑出 50 passed / 3 failed / 10 flaky / 36.7m,三条失败全是 tbody tr[data-reserve-id] 30s 等不到——实测直连取 staging-api…/markets(412,891 字节)要 37.9s、第二次 90s 只传了 120,920 字节。所以那批红是本机出口,不是代码;带代理同一份 payload 1.85s。wb-1009a 板上"本沙箱跑不出可信结果"由此得到解释,也顺带说明本轮推送为何会连带他们的提交。

0xPabloLI and others added 6 commits October 9, 2026 11:29
卡片由每轮 ensureIssue() 按标题维持,手工关掉不持久;源码里真正的关闭路径只有
autoclose 与 dependencyDashboard:false 两条。取前者、不拉后者:这周那个"半个 eslint
上限"正是从这张卡上看出来的,关掉它等于把 minimumReleaseAge 与排程挡住的队列重新变回黑盒。

- renovate.json: dependencyDashboardAutoclose = true
- scripts/renovate-config.test.mjs: 钉住三条(卡开着 / autoclose 开着 / 没有规则把分支
  永久停在卡里),两组正对照实测变红
- docs/dependabot-behavior.md: 新增该卡的生命周期判据(它今天还关不掉:35 条 Awaiting
  Schedule + 8 条 Pending Status Checks + 一条 replacement 条目)
全量 `npm test` 下 6 例撞 vitest 默认 5s 超时(5 条 star-import + 1 条 lib→hook
方向),pre-commit 因此假红、阻断提交。同一文件单独跑是绿的(323 passed/15s/rc=0),
CI 最近一次 `npm test` 也是 success ⇒ 不是仓库逻辑缺陷,而是「每个用例各自重走一遍
src 树 + 重读全部文件」的单例成本,在慢环境(195 个 vitest worker、FS 经 broker 拦截)
里超过 5s 预算。

- src/test/architecture-guard.test.ts:
  - globTsFiles 按目录记忆化、readFile 按路径记忆化(清单与内容语义不变,只改算几次)
  - components/lib/hooks 三份清单提到模块作用域,并在导入期把清单内文件读一遍——
    fixture 加载不是测试逻辑,留在用例里就会把成本记在某个用例的 5s 预算上
    (只做记忆化时正是「第一条」star-import 用例独吞 lib 首次读取而超时)
  - 新增 2 条缓存契约断言(重复调用返回同一实例),改前必红
- docs/specs/architecture-guard-fs-walk-cost.md:9 行场景矩阵 + 三段证据
- docs/DOCS-INDEX.md:登记新 spec;顺带删掉一条既有的孤儿残行(e2e-parallel-port-
  isolation 条目的重复片段、无列表前缀,存在于 HEAD);本行同时带上 AAV-1329 的
  spec 登记(其代码在紧随的下一个 commit)

实测:单文件 1 failed → 325 passed(15s → 7–9s);全量 `npm test` 6 failed → 0 failed
(4090 → 4098 passed,增量 = 6 例转绿 + 2 条新断言,用例数只增不减)。
不放宽 testTimeout、不改 vitest 全局配置。
`waitForLoadState('networkidle')` 等的是网络静默,但被测页面自身零取数:H1、`h2#faq`
与 12 条 FAQ 来自同一次同步渲染,而 `src/App.tsx` 在模块加载时就 prefetch `/markets`
与 side-data(与路由无关)。整条 pre-push 套件向 staging 发上百个请求的那几分钟里,
那个静默窗口永不到达 ⇒ 三个用例首步撞 60s 超时,而独立跑恒绿。

- e2e/defi-yield-tracker-faq-anchor.spec.ts:3 处等待换成内联 waitForPageReady(page)
  (H1 + h2#faq 可见);断言一行未动,不引入 skip
- scripts/e2e-wait-strategy.test.mjs:新增静态守卫(扫 e2e/ 全部 .ts,注释感知、大小写
  敏感、行内 allow 逃生阀)。随既有 `npm test` 生效,不新增 npm script、不改 hook
- docs/specs/aav-1329-faq-anchor-wait-strategy.md:14 行场景矩阵 + 沙箱拦阻留档

实测:整条 e2e 套件 3 次样本,本 spec 均 9/9 绿、单例 1.6–3.1s(改动前是 60s 超时)。
顺带撞见 `.husky/pre-push` 的失败传播缺口(`&&` 链无 `|| exit 1`,三次 rc=0 假绿),
已单独建票 AAV-1330,本 commit 不动公共 hook。
- docs/issue-roadmap.md:
  - Last inventory 改写成「AAV-1329 与 AAV-1331 同日交付关闭」(commit `3430b65b` /
    `a0c8982f`,**仅本地 lovable、尚未 push**),并补记本轮的环境阻塞与绕行
  - AAV-1329 从 Active Medium 表移出 → Recently Completed(带 3 次整条套件样本口径)
  - AAV-1331 入 Recently Completed;AAV-1330 入 Urgent/High(**保持 open**)
  - 上一版那句「AAV-1329 已交付关闭(Done)」在改前一度是**未兑现的**(提交当时还没落地),
    本 commit 是在两个提交真的落地、Linear 已流转 Done 之后才把它订正为事实
- SESSION-BOARD.md:`wb-1009a` 注销(active → done),补交付叙事、环境阻塞绕行
  (沙箱 broker 使 `eslint .` 恒 EPIPE;绕行=清空 `NODE_OPTIONS`)与遗留项
  (`origin/lovable` 未更新;`nested-scroll:38` 待用户裁是否开票)

三张票的交付记录(含测试数字、根因、沙箱偏差、未纳入项)在 Linear 评论里,是唯一权威源。
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@linear-code

linear-code Bot commented Oct 9, 2026

Copy link
Copy Markdown

AAV-1329

@vercel

vercel Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
aave-protocol-explorer Ready Ready Preview Oct 9, 2026 5:25pm UTC

@factory-droid

factory-droid Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Droid finished @0xPabloLI's task —— View job


No candidate findings were submitted for validation, and an independent read of the full diff surfaced no high-confidence issues. The PR is a well-documented maintenance batch: the e2e wait-strategy fix replaces flaky network-idle waits with page-owned readiness signals backed by a static guard, the architecture-guard memoization preserves scan semantics with contract assertions and import-time warmup, and the renovate autoclose toggle matches its new config assertions. The lockfile bump and docs/board updates are consistent.

0 inline comments posted

看板里「origin/lovable 未更新」已被这次推送推翻:带代理跑 pre-push 全门 PUSH_RC=0,tip=48ec366a,连带把 wb-1009a 的 AAV-1329/1331 三笔一起带走(推的是分支 ref,不是固定 SHA)。

同时记下出口判据:直连取 staging /markets 要 37.9s、第二次 90s 只传完 120,920 字节,同一 payload 经代理 1.85s;同一棵树无代理 = 3 failed/10 flaky/36.7m,有代理 = 0 failed/3.9m ⇒ 本 session 那批 e2e 红全是环境。
@0xPabloLI
0xPabloLI merged commit 5829fe5 into dev Oct 10, 2026
43 checks passed
0xPabloLI added a commit that referenced this pull request Oct 10, 2026
板上那句「未合并,等用户」已不成立:#767 用 MERGE 进 dev(5829fe54),lovable 成为 dev 祖先(behind_by=0)。

两次被门挡下的判据都指向本机出口而非代码:直连 50 passed/3 failed/36.7m(三条红全是 tbody tr[data-reserve-id] 30s 等不到;直连取 412,891 字节的 /markets 要 37.9s,第二次 90s 只传完 120,920),带代理同一棵树 64 passed/0 failed/3.9m。没加排除项、没用 --no-verify。

dev→main 建成 #768 按规则不合并;main 领先的一笔 bot 同步用 update-branch 并回 dev,前后 tree SHA 同为 ee6668b 证明零内容变更。本地两条已交付分支删除。

This branch was successfully deployed

1 active deployment
Preview — 9ba20eea Deployed Oct 9, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant