The consent preview's checkbox is decorative, so hide it from screen readers without input props
Saving the property's address keeps its purchase price, and saving a loan amount keeps the loan's purpose
**************** merge the request over the stored loan and property before the whole-record update.
The portal's job, account, debt, other-income and expense edits are true PATCHes
Each endpoint now merges the request over the stored row (shared library patch* methods), so changing a job's title no longer fails on the NOT NULL employment t...
Editing one field of a job, account, debt, other income or expense keeps the rest of the row
Those updates replaced every column, and EMPLOYMENT_TYPE_ID is NOT NULL, so the portal's one-field edits either failed or blanked the rest. **************** mer...
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...
Talk It Through no longer 500s when the portal sends no flow
Set.of(...).contains(null) throws, so a request without a flow hint (the funnel before a purpose is chosen) answered 500. Found by a live probe after deploy. fl...
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.
Keep filter subqueries on their row-key indexes, and test them
EXPLAIN against the live catalog showed the planner driving callback, loan status and rate lock subqueries from their status indexes (every such row on the plat...
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...
No read-only transaction around multi-read views; retry the edge routing read
YugabyteDB answered the edge's routing read with 'Restart read required' β a restart-read cannot be retried mid-transaction. Each read now runs as its own state...
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.
Record the 2026-10-30 public-IP hand patches so a full reconcile keeps them
coturn, MediaMTX, FreePBX (kamo-meet ACL + fail2ban) and KamoPBX were switched to k1m1's eno1 addresses 76.81.227.154/.155 by hand on 2026-10-30, and dovecot-im...
Only known preview hosts under the wildcard sites.kamouniverse.com zone
*.sites.kamouniverse.com resolves here (wildcard A), and kamouniverse.com is an always-allow apex, so any scanner label or browser-only sibling ****************...
Accept-gate refusal no longer says both a note and a status are needed
The requirement is per market now.
A bankruptcy answer that is not a clear yes or no stays unset
The generic boolean reader treats every word it does not know as false, so a vendor's 'maybe' or 'n/a' became 'no bankruptcy' - a wrong claim about the borrower...
A failed request tells the caller to try again, not what the exception said
25 controllers returned e.getMessage() to the browser, which can name tables, columns and internal hosts. They now answer with a plain 'please try again' and lo...
The retail sync job calls the orchestrator's scheduled entry point again
**************** became syncNow(UUID, trigger) in the shared library (05bd1ad5, Nov 8), which stopped DaemonService compiling - and so deploying - since then.
Editing the IP address or TrustedForm link counts as editing contact info
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.
Describe A Change changes only what the request names (SIS14)
The drafting prompt now says a switch changes only when asked to turn it on or off (run/set/make never do) and every proposal quotes the request words that ask ...
A YugabyteDB restart-read while the upload commits is retried, not fatal
Third live finding on the removed-after-hold path: the relay's lookup raced the upload's commit and got 40001 "Restart read required", which aborted the relay. ...
The live chat relay also finds a refused hold's attachment
Found by the live removed-after-hold re-test: findByBlake3AndSize is a dedup lookup and skips is_missing dats, and a refused hold's dat stays missing forever, s...
The live chat relay waits for an attachment whose verdict beat its commit
Found by the live removed-after-hold test (sp00verify): a held EICAR variant was judged ~260 ms before the visitor's upload answered; the hold completer's refus...
Index backfill candidate query without a '::' cast
Hibernate's native-query parser read ':text' in ARRAY[]::text[] as a named parameter and the first live run answered 500. (attachment_types IS NULL OR NOT (mark...
The store sync schedule tells Spring which constructor to use
With a second (test) constructor and no @Autowired, the new pod failed to start: "No default constructor found". The running pods were untouched.
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,...
ATTACHMENT_SCAN names the attachment the way rows do (imgId + objImgIds)
Completes 27c9644. Found by the live test: message rows carry objImgId = the MediaObjImg link id and imgId = the Img id; the frame sent the Img id under objImgI...
A held photo's PDF rendition is marked converted by a targeted update
Found by the live held-JPEG test: on LegalHeldUploads' background thread the stored rendition ImgDat is detached, and save() merged its orphan-removal 'images' ...
Job numbers from a locked per-org counter, never a count; payments on a commerce invoice
Work order numbers were COUNT(jobs)+1, so two jobs raised at once could share one, and jobs raised from a paid order (ServiceFulfillmentPolicy) got no number at...
Finicity and Truv links get their own connection types
Finicity links were recorded as PLAID_AUTH and Truv as ARGYLE, the 'nearest peer' mapping. A lender switching asset provider from Plaid to Finicity would have h...
A hold verdict that beats the upload's commit no longer strands the document
Found in the live HOLD-path test: with the engines ready, a brief hold is judged in milliseconds and the antivirus.hold.verdict event arrived ~30 ms BEFORE the ...
A staff vendor-document upload files under the requirement's document type
ImageService refuses a LOAN image without an ImgDocType, and uploadLoanDocument passed none (the doc type's name went into the description), so every staff vend...
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.
