The consent preview's checkbox is decorative, so hide it from screen readers without input props
The saved-audience estimate takes the hook's null selection
useAudienceEstimates hands its fetcher null for nothing chosen yet, and AudienceCard and AudienceEditor pass audienceApi.estimate as that fetcher, which only to...
CapabilityCheck takes options whose capabilities may be absent
AccountFilterSection passes AudienceOptionsLike, where capabilities is optional, and the build failed type-checking on it. hasCapability already reads a missing...
The Borrower Guide preview draws the guide's face without a white ring on the dark portal
The loan filter's Loan Purpose lists a loan's own purposes
A loan's purpose ids (the URLA list) differ from a lead's, so the loan section reads the options' loanFilePurposes rather than the lead list.
The preview is the whole page
Page picker and device widths are gone. Refresh, Ask for a Change and Open Full Screen take the status pill's place in the header on the Preview tab, and the we...
The same header and tabs as every other app, and no ribbon on the website
Manage Marketing Site now wears the gradient hero and underline tab bar that Marketing, HR and IoT use, instead of its own compact header with icon tabs. The co...
Full-width pages, and the preview is just the website
Preview drops the intro, the publish card and the being-built notice; the header's status chip and the Publish tab already say all three. Changes, Publish, Doma...
Stream a request's pictures through the proxy as bytes
The relay read every success as text, which corrupts an image. GET **************** now passes the upstream body straight through, like source.zip.
A menu's own scrollbar counts as the menu β hover and press no longer close it
Storage label takes the bar ink; scrollbar hover no longer closes a nav menu
One scroller for the whole rail, lower options seated at its foot
Revert the Settings fly-out. The lower options sit at the bottom of the SAME NavOverflowScroller (margin-top: auto): the top ones push down as they open, the bo...
Keep the lower options pinned at the foot; Settings opens as a fly-out
The rail scroller holds only the movable options again. Settings, which sits in the footer, opens its tree to the right of its row (NavToolButton flyout) instea...
One rail scroller for every option, not a second scrollbar for the lower ones
Mobile app, My Branches and Settings now live inside the NavOverflowScroller with the movable options; the ad-hoc capped overflow box is gone.
Bound the rail's lower options so an open Settings tree cannot squeeze out the scrollbar
No padding around the buttons or the bar
The thumb fills the bar's full thickness and each button fills its cell.
Live chat verdicts match by imgId or message link (completes aa060187d)
ATTACHMENT_SCAN now names the file (imgId) and its message links (objImgIds; mediaservice 5e5d837). The store keeps both, and the chip looks up its imgId first,...
A market customer is deactivated, never deleted β and the dialog says so
The Customers tab offered Delete with "This cannot be undone" and a type-to-confirm box, while the server only switches the account off (its orders and history ...
Request Withdrawal reads commission-service's own gate on the withdrawals list first
commission-service, the side that enforces, now attaches 'gate' to the member's withdrawals read and fails closed ('could not ask' is blocked, with its own sent...
"Upload One I Already Completed" opens DocsService's reviewed upload request
DocsService answers POST **************** with a reviewed "upload your completed copy" assignment. The checklist buttons carry the requirement to the sign wizar...
Read DocsService's own shapes β counts, fromLibrary, per-member records, assign, filter
- Requirement tallies come as counts {onFile, inProgress, missing}; a Platform Library requirement is fromLibrary + key. Matrix cells that do not apply to a m...
Drop the duplicated dynamicRooms field (unblocks the build)
Two SIS commits each declared SiSectionDef.dynamicRooms with the same comment; tsc fails with "Duplicate identifier 'dynamicRooms'" (run 2314) and no kamo-inter...
Resource previews stream through the app instead of an unreachable MinIO link
KBService now hands out /api/kb/media/{id}/content as presignedUrl (it was a MinIO signature for the in-cluster host, which no browser can resolve). This adds t...
Align with the live SecurityService API β 'switching on' while scanning is off, member names on threat rows
API_LIVE.md: overview.protected=false means scanning is not enabled yet, so the Center shows a calm 'Antivirus is switching on' instead of 'catching up' (which ...
Type the Safety tips' articles as help article paths (unblocks the build)
HelpArticleLink takes a HelpArticlePath; the record widened every entry to string, which failed the type check and stopped every kamo-internal deploy since SIS9...
Unblock the i18n guard on the Record a Delivery dialog
check-i18n-keys resolved t("stillToCome", {count}) in ReceiveDialogBody against the lines namespace ("Still to Come", no placeholder) and failed every kamo-inte...
The member's package button names what is actually owed
A Quick Request that only asks for uploads showed "Continue Signing" with nothing to sign. memberActionFor now labels from the row's new signableOutstandingCoun...
Version History authors use the shared member hover card (photo and who they are)
The merged section imports parse; kit pages and the help column take the palette's ink on the white frame (SIS9)
Daily Work tips take a help article path; briefing numbers typed field by field (SIS8)
Status words and white-on-status fills read at AA, from three theme tokens
axe in the Review Studio still found three spots under 4.5:1: the rail's "1 file" on the selected item's brand tint (4.39), white on the pressed Needs Correctio...
The pale-brand spots the live sweep still found: chat windows, calendar ink, heroes, the setup pill (SIS1)
Second live pass with a pale brand (#d6f74d): - Chat/tool window chrome (ChatBoxStyles tokens, ToolWindowShell title/icon, the window buttons, terminal/camera...
The Usage tips no longer point to the hub's old Usage tab (SIS4)
Usage is the one Spend view now; the tip that sent people to the SI Workforce hub's Usage tab for each SI's cost described a screen that is the same page.
Every org's colour reads at AA in hand-made CSS too: brand text, words on brand fills, the nav chrome (SIS1)
The live sweep with a pale brand showed the root MUI fix was not enough: hand-made CSS drew the brand as TEXT and white ON the brand directly, so a light organi...
At the 12-language limit the other languages stay readable (SIS4)
They were greyed out like disabled controls (axe: 10 contrast failures); now they read normally, dashed and aria-disabled, with the note saying why they cannot ...
Polish from the screenshot sweep
Assistant tab pads itself; a layer that cannot be read says so in plain words; the 'locked above' note reads at AA; Who Gets What names a limit-forced value; sh...
One Add label and full page width on the layered settings
SIS3: the four screens say Add A Different Setting (the shared words) and run the full page width.
Words on the brand fill read on a pale brand in Contacts and Calendar too (SIS1)
The live sweep with a pale brand (#d6f74d) showed the root theme's contained buttons black-on-lime, but the Contacts and Calendar scopes still put var(--on-prim...
The SI settings shell's Usage page is the one Spend view (SIS4)
Usage opens UsageDashboard (the old Usage & Overview tab is gone): people who read usage (VIEW_AI_USAGE) see the organization's totals, people who view the SI w...
SIS4 bug fixes β one Spend view, no dead switch, budgets and limits agree, languages, Spoken Line Reviews in Platform settings, plain words
- Usage: the broken Usage & Overview tab (expected a shape AIService never sent, errors read as zeros) is gone; the one Spend view (UsageDashboard) gains the ...
Members by id, the 30 MB limit, a HEIC fallback and the sign-again note
DocsService sends member and reviewer photos as null, so every member on the review surfaces is drawn with MemberChipById (photo and name from the member card)....
Review Studio text reads at 4.5:1 β the expired date and the rail's progress line
The Review Studio is a viewer when the submission is no longer waiting for review
Decided, withdrawn or replaced submissions open read-only: no pens, no verdicts, no draft saves and no Approve/Return β each would only be refused by DocsServic...
One place for meeting providers: SI joins live in Provider Setup (SIE10FU)
Owner 2026-11-07: meeting providers are configured on Provider Setup; SIE10's separate "SI Meeting Joins" tab duplicated its provider cards, setup form, secrets...
The SI joins status tone takes the theme's own type (unblocks the build)
ReturnType<typeof useTheme> is unknown (useTheme is generic), so next build failed type-checking.
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
