build / build-push (push) Successful in 2m24s
- 新增 WidgetLinkResolver:走 SDK OpenApiAppClient.getAppByCode 取 pc_url,归一化(丢 fragment/去尾斜杠)+#+路由;60s TTL+30s 短路;查无/不可达/路由写绝对 URL 一律 null(不猜、不渲染) - widget_catalog 与 widget_school_setting 各加 link_app_code/link_path(校管可覆盖本校,NULL=沿用全局) - 生效值合成走 COALESCE;新增「两列必须成对」校验;「全空=清除覆盖」判定由 4 字段扩到 6 字段 - getUserSettings 按需下发 overviewUrl(解析不出则不 put) - sql/widget_catalog_v3.sql(生产 proj11 已执行两条 ALTER + weekplan 配置) - seeder 空库给 weekplan 默认 work-week-plan + /weekplan