Follow the approval figure into currentPeriod, and stop null reading as zero

Fixkamo-internal
Ya
12 Agosti 2026, 21:14 UTC
Mwandishi
kamo
Ahadi ya
fd1fd3e

SecurityService 7c55054 moved awaitingApproval inside currentPeriod, where the window it describes actually is, and omits it entirely when there is no open period. The page derived its withheld signal twice, in two components, with two different expressions — one of which tested `=== null` only. Under the new shape a missing period yields `undefined`, so that form would have answered "not withheld" and painted every member's attendance pip CLEAR on a figure it never received. The rule now lives once in the tested layer, as **************** over a Pick<HrAttendanceSummary>, so the next time this field moves the break is a compile error rather than a browser telling an HR admin a queue they cannot see is empty. Withheld, failed and genuinely zero stay three distinct states: withheld drops the approvals queue (nothing to retry), failed keeps it so FailedNotice can render, and zero still earns "Every timecard is clear." Also here: - DocsService 8c6ee4b renamed envelopeMissing to executionIncomplete. The UI label was already the honest one, so no i18n key moved. - ProgressRing drew null and 0 identically — a solid track with no arc IS the 0% rendering. Null now breaks the track into dashes and draws no arc, with the pitch derived from the circumference so it tiles at any size. Butt caps: a round cap adds half the stroke width to each dash end and closes the gaps straight back up. - Training "Open" excluded FAILED_RETAKE_ALLOWED while overdue (REMINDABLE_STATES) includes it, so a card could show more overdue than open. AWAITING_GRADING stays out of both — the ball is with the grader, and it has its own figure. - The text-then-parse block had reached seven copies. Only the genuinely shared half is extracted; the throw/NextResponse half stays at each call site rather than growing a flag per caller. - The raw 1800px column-count query is one helper now. Every call site passes the breakpoints it already had and emits the identical object — the column COUNT growing 1/2/3/4 is the point of this page, not an implementation detail to be tidied into a centred ribbon. - Legal and Resources both resolved to --accent-docs, so the per-module accent died at the token layer. Resources takes --accent-knowledge; Legal keeps the teal it shares with its own module.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei