Name the organization that owns a subscription catalog row
The catalog update/delete methods take a uid alone, so a caller holding the catalog right in any organization could edit another organization's plans, prices, a...
A missing locale file renders English instead of throwing
i18n/request.ts and message-locales.ts imported messages/<locale>.json bare, so a build made while the dictionary had no file for a locale turned that locale's ...
Read Stripe events from any API version, and replay the ones that failed
The live webhook endpoint renders events at 2026-03-25.dahlia; stripe-java pins 2024-12-18.acacia, so every invoice, payment and subscription event since has fa...
Write Romanian with comma-below s and t
The model mixes the legacy cedilla forms into Romanian (6 of 90 such letters in the chat widget's regenerated file) and the dictionary's earlier Romanian did to...
Drop the old engines' deploy steps, apply MADLAD's alias Services, update audit and docs
Completes 56b37fa, which removed the manifests: without this the workflow still ran steps for directories that no longer exist. The workflow now applies madlad/...
Remove LibreTranslate, Bergamot and IndicTrans; MADLAD serves every pair
TranslateService speaks only to madlad now (translateservice 5c7605b), verified end to end: every Kamo locale including Tamil and Swahili, inbound ru->en and ta...
One engine, MADLAD-400, for every language pair
Replaces the LibreTranslate, Bergamot and IndicTrans providers with MadladProvider (klusterservices madlad/). Their languages did not overlap, and a pair none o...
Beam 4 only for labels, beam 2 up to 64 tokens
Cost is tokens x beam. Measured in the cluster with the old engines still running: one stream 77 chars/s and two 115 chars/s on short strings at beam 4. Sentenc...
One translation engine for every pair, MADLAD-400-3B on CPU
Replaces LibreTranslate (Argos), Bergamot and Kamo IndicTrans, whose language sets did not overlap and whose gaps came back as English. MADLAD-400-3B-MT (Apache...
One pod translates an article, not every pod at once
The sweep's fleet-wide lock is held only while it queues work, which takes milliseconds, so each pod ran its own sweep a minute or two apart and queued the same...
Never send an engine a text longer than it takes
IndicTrans answers a request over 20,000 characters with a permanent HTTP 413, so a long help article could never be translated into Tamil; a LibreTranslate wor...
Translate an article's words, not its Lexical JSON
contentJson was sent to the translation engines as if it were a sentence. On 2026-10-22 one sentence of it came back from Russian with the sentence gone and the...
Memory limit 14Gi -> 20Gi, request 10Gi -> 12Gi
Seven-day peak working set was 13.8 and 13.1 GiB against the 14Gi limit, so the kernel reclaimed the mmapped argos models and en->ru on a help article paid cold...
Creating a MORTGAGE market gives the organization its lender profile at once
A MORTGAGE market's lender profile (and its five config rows) was only created by the boot-time self-heal, so a market created while SecurityService was running...
The Pipeline's loan officer filter shows faces and opens the member card
Each officer in the filter's options, and the one selected, is their avatar and name wrapped in the shared MemberHoverCard. A click still selects.
The Pipeline's loan officer opens the shared member card
The loan officer on each deal is wrapped in MemberHoverCard, the popup every other surface uses for a member. It opens on hover and keyboard focus; a click stil...
Open deals are always expanded, the loan officer shows their photo, and the loan count reads one way
- Open view: every deal shows its loans, with no expand/collapse control. Past and All stay collapsed by default and expandable. - The loan officer avatar was...
A full-width, full-height HMDA LAR page; readable brand buttons on the loan page
- HMDA LAR: the register is an AG Grid that takes the whole width and every pixel under the header, and scrolls inside itself — the page no longer scrolls. Is...
Back from a loan returns to the screen it was opened from, and a loan always shows its full number
- The loan page's Back was hard-coded to /commerce, which opens the first market's home. Every opener (Pipeline, Board, document queue, applications tab) now ...
A new mortgage Pipeline — open deals first, past ones a click away, and every deal managed from its card
The Pipeline tab under a mortgage market is rebuilt around transactions: - Open | Past | All views (past = completed or cancelled), with counts - headline numb...
The mortgage pipeline loads in a handful of queries, and a deal can be renamed and take a second loan
The pipeline's two reads were N+1 on the round trip: - GET /mortgage-apps loaded plain AppMortgage rows, and each one then fired a SELECT per inverse @OneToO...
A tool menu stays selected on any of its pages and the pages beneath them
The last change lit a tool menu (Mail, Docs, Support, IoT, Settings, Cameras) only when a row's href was exactly the page open, and most rows carried no href at...
Numbers and addresses open their popups, unseen records in plain words, plain labels, rights cases
Approval follow-up 2026-10-21 (controller review of the approvals pane). - The headline draws every phone number and email address the card names (card.conta...
Approve and always allow checks the rights a tool needs in one case only
Approval follow-up 2026-10-21: the Tool Plane's card now names the rights a tool's service enforces in some cases only (alwaysAllow.rightsWhen: a colleague's le...
Declare every right a tool's service enforces; plain words for unseen records and numbers
Approval follow-up 2026-10-21 (controller review of the approvals UI). Rights (item 4): an audit of every tool's declared rights against the rights its downstr...
Corner ribbons on every edge, on tabs, and on the top bar's open pages
Following the left-edge round, the other three edges get the same treatment, on a fixed mapping: a top rule becomes a top-left ribbon, a right rule a bottom-rig...
A charter item's tool is behavior; its grant provenance is not
CharterItem gained toolName and the standing-permission provenance (53e6e2cd6), so the compile-time check that every field is listed failed the build. toolName ...
S-I1 accepts REPLACED, so IoTService revokes a superseded Alexa link's grant
Owner 2026-10-21. KamoOAuthRevokeReason.REPLACED already exists (STRING-persisted, no CHECK on revoked_reason), so no shared-lib or DDL change; the internal rev...
Corner ribbons replace every left-edge accent rail
The System Bugs page went first. This change does the rest of kamo-internal: about 120 files where an item was marked by a coloured rule down its left edge — a ...
Approve and always allow, the named why, the SI's own picture, the org's own colours
Always allow: from the decision bar, the approver picks just this action or the whole kind (in plain words), reads exactly what changes in the SI's job descript...
Honour standing permissions; offer Approve and always allow on the card
CharterPolicy reads resolved.toolApprovals and each rule's standing flag. A member's rule about one tool stands for its class's rule for that tool; a standing p...
Approve and always allow, from an SI's approval
GET **************** POST **************** {approvalId, scope TOOL|CLASS, grantRights?} DELETE **************** (Ask me again) The approval names the tool and...
Standing permissions from an approval (Approve and always allow)
A member's own APPROVAL item may now name one tool (tool_name) and record the approval it came from, who granted it and when (item_origin APPROVAL). The resolve...
Corner ribbons replace the left-edge accent rails on System Bugs
CornerRibbon is the indicator form of kamo-login's sign-in pane ribbon: a thin shaded diagonal band across an item's top-left corner, in any colour, at three si...
Master §10 SP14 execution rows E1-E10; IoT Devices published 2026-10-21 [skip ci]
Svc_iot may subscribe to iot.live.device.> — the IoT production canary watches its own live frame (SP14)
Announce IoT Devices — the /features category, the capabilities group and /device-compatibility go live (SP14 T+0)
IoT Devices was published on 2026-10-21 03:47 UTC (catalog override COMPLETED + available, owner-approved). The compatibility page reads the live feed: 8 servic...
Plain-language approval cards and a premium approvals inbox
Owner order 2026-10-20: the Interaction Center's Approvals tab and the approval popups showed members GUIDs and JSON. Every approval now reads as a card a non-t...
The Devices (IoT) menu counts open alarms and pulses until they are acknowledged
Completes 0ee2be7b3 (IoT close-out F12).
The Devices (IoT) nav option badges open alarms, pulses while one waits, and its menu leads to Alarms
Owner, 2026-10-20 (IoT close-out F12): IoT alerts stay e-mail only; alarms reach people in the app. - Devices (IoT) is a menu (toolKey iot) of its pages, the ta...
An approval card sends every parameter its phrase names
next-intl refuses an ICU select or plural with no value, so a phrase about an argument the SI left out (a contact with no formatted name, a new document categor...
An approval about a record the reader may not see never leaves a dangling 'for'
Phrases that named a patient, a customer, a purchaser, an envelope or a document after a preposition now say 'for a patient' (or nothing) when the reader may no...
Desktop alerts go by e-mail only; the MediaService chat leg is gone
Owner, 2026-10-20 (IoT close-out F12): no chat sender. A chat thread needs a sender member besides the recipient and the platform organization has none by desig...
Approval cards say SI in every label, write phone numbers and choices as people do, and keep a note beside an action a field
A humanised field name said 'Ai companion…' (now SI, with a guard that no phrase, label, noun or risk sentence says AI); a US number reads (512) 555-0142 in the...
KamoCameras is included in Business and up, and on every universe's Premium rung and above
Owner, 2026-10-20 (IoT close-out F11): Business, Enterprise and their equivalents in the other universes. - PlatformTierMatrixMigration: Business gains KAMO_CAM...
A carrier-only organization can hold text threads again (SITP CARRIERSMS)
VOIP_CONVERSATIONS.INSTANCE_ID was NOT NULL in production, although the entity and **************** both say an org that texts through a carrier and runs no pho...
Stop forcing a phone server onto every text conversation (SITP CARRIERSMS)
MultiInstancePhoneMigration runs on every KamoInitializer start. Its conversation step deleted each voip_conversations row without an instance (and that thread'...
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.
