Regenerate UI client and handle deadline alerts with no fixed interval - #70637
Conversation
|
Drafting as I'm still optimizing this PR. |
7f43c10 to
b75096e
Compare
The deadline-alert response now reports a null interval when the alert has no fixed number of seconds, but the committed TypeScript client still described it as a required number. That stale client hid a real type error in every component rendering the completion rule, so `ts-compile-lint-ui` fails on a clean checkout and blocks unrelated PRs. The null is wrong on screen today as well: dayjs humanizes it as "a few seconds", so such an alert claims the run must complete within a few seconds of its reference point. There is no duration to name there, so the rule now names the reference point alone. English is the source and fallback locale, so the wording is added there alone and the other locales fall back to it until translated.
b75096e to
8bfab47
Compare
|
Thanks for putting this up. Seems that |
On it right now :) It seems that indeed there's a misconfiguration in the selective checks |
|
Hi maintainer, this PR was merged without a milestone set.
|
Backport successfully created: v3-3-testNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
|
maincurrently failsCompile / format / lint UIfor every PR that triggers a full static-check run.#68919 made
DeadlineAlertResponse.intervalnullable (float | None) for dynamic intervals — aVariableIntervalwhose value is only resolved at scheduler evaluation time — but the generated TypeScript client was not regenerated. The stale client still declaredinterval: number, which masked a real type error: once the client is regenerated,tscfails at five call sites that pass the value straight todayjs.duration(...).This regenerates the client and makes those call sites handle a null interval.
A dynamic interval has no duration to display, so those sites render a dedicated wording instead — "Must complete within a dynamically resolved interval of {reference}" — via a new key in
en/dag.jsonthat other locales fall back to per the UI i18n policy (no other locale files touched). The sharedhumanizeSecondshelper keeps the null handling in one place next to the existing null-tolerantrenderDuration, the "Met" badge tooltip is disabled rather than rendered empty when there are no rules to show, and a component test pins the dynamic-interval rendering.Reproduce on
mainwith no changes:prek run ts-compile-lint-ui --all-files.related: #68919
Note
v3-3-testwill need the same fix. #70625 backports the same datamodel change and touches only backend files, so merging it as-is reproduces this breakage there. Folding these changes into that PR before it merges avoids landing the breakage and cherry-picking a follow-up.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Opus 5) following the guidelines