The invoice shows the Receivables remittance block, as quotes do
The invoice dialog renders the same QuoteRemittanceBlock the quote preview uses, from the seller's Receivables details, while anything is owed. The Receivables ...
Change seats and licenses from a date, with the prorated charge previewed
Change seats & licenses opens a dialog to set: - seats and each add-on's licenses (per-user licenses follow the seats until typed over); - the date it takes e...
Plain-language statuses everywhere; agreed add-on prices and a monthly discount in the order wizard
StatusChip (89 call sites) showed raw codes such as PENDING_APPROVAL; it now shows the dictionary's words (common.statusCodes), or the code read aloud for one i...
Auto-renew and notes work on live subscriptions; card on file and charge card now
- The auto-renew switch sets the subscription's own renewal (it posted a field the draft-only order update ignored) and says when a non-renewing one ends. - N...
Show licenses held and in use where mailboxes and extensions are assigned
Owner rule 2026-10-22: per-user add-ons bill the licenses purchased, and the licenses are the only limit on what may be in use. A LicenseUsageMeter ("4 of 10 li...
Quotes start subscriptions; offline acceptance; tenant orders; plain-language billing
- Quotes: "Add from subscription catalog" fills a row from the live plans/add-ons (name, monthly price, "per user / month" / "per 10 GB block / month") and ke...
The POS proxy passes a PDF or an empty reply through instead of failing it as JSON
The invoice PDF and any 204 went through response.json() and became a 500.
Subscription billing console β invoice drawer, draft editor, payments, market invoicing
Invoices tab: plain-language rows (period, total, amount due, due date, status) open a drawer with the lines, totals, payments received, where and when it was s...
Read subscription invoices, events and agreements under the keys the server sends
The server answers invoices/invoice, events and agreements/agreement; posApi read subscriptionInvoices, subscriptionEvents and subscriptionAgreements, so the In...
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...
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...
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 ...
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...
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]
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...
IoT articles follow the fixed product β Sign in again keeps settings, SolarEdge app asks its sites, Tuya asks its region
solaredge, geotab, shelly, samsara, tuya, iot-relink-a-connection, iot-open-shared-access (Devices shared with you in the menu). Help re-import needed for these...
Vendor sign-ins ask their settings, Sign in again keeps them, and the SP14 audit's web findings
- Link wizard: a vendor sign-in (SolarEdge app site IDs, Tuya region) asks the provider's declared settings before the vendor opens; a refusal to start reads ...
The texting window shows the pictures, recordings and files people text in (SITP MMS)
Each message's inbound parts (VOIPService now keeps them) draw inside its bubble: pictures in place (tap to open), voice notes and video with players, PDFs and ...
The web Alexa section, its virtual sensors, and Alexa links as the who of a grant
- Settings -> Devices (IoT) -> Connections gains a Voice section (only while Alexa is usable by the organization): the Alexa links, how to link one, and a lin...
Brand and state colours read at AA in both themes; grid header strips are not scroll regions; AgentSelector chips are not inside a button
- StateChip/Kicker (patients, knowledge base, attendance, chat policies): the ink is the tone's own hue with its OKLCH lightness capped (light) or floored (da...
Restrict from Disabled says what it does; site modes article states the previous-mode return (IoT close-out F10, F9e)
- The platform connector dialog's Restrict confirmation, on a DISABLED connector (now offered for every provider with platform setup after a fresh test, iot-s...
Master section 10 R7 β the owner's round-3 answers and what shipped [skip ci]
Master section 10 R7 β the owner's answers of 2026-10-18 and what shipped [skip ci]
The activity says "as god, break-glass <window>", and god's own window may share (master section 10 R7)
Owner 2026-10-18: every action is visible to the tenant. actorText appends iot.actorStanding.asGod / asGodBreakGlass (dictionary e7519fa8) for god's rows and an...
Deleting an application that must be kept shows why instead of doing nothing (SITP TP21FU)
SecurityService now answers 409 for a received mortgage application (a record of business, withdraw it instead). The delete handler had no catch, so the rejecti...
Master section 10 R7 β god has total control (owner 2026-10-18) [skip ci]
God's controls are usable and need no co-signer (master section 10 R7)
Owner 2026-10-18: god (the platform owner) operates every IoT function; in another org only inside break-glass. The manifest's caller.god (@kamo/iot-core 0.9.0 ...
The Alexa skill is named KamoUniverse, invoked as "kamo universe" (SP09) [skip ci]
Mirror PREPARE_COMMISSION_PAYOUTS (570) under VIEW_ORG_FINANCES (SITP TP18)
Composing the draft commission payout batch without sending it; display string matches RoleRightType.java exactly. Listed with the other finance rights under Ac...
The share host alias is devices (master Β§10 R6) [skip ci]
Owner 2026-10-18: "IoT" is a technical term, so the kamo-iot host is devices.<org domain> and the platform host devices.kamouniverse.com only; kamocrm.com is a ...
The studio's required devices card
The DNS studio lists "devices" as a required core record with the Router icon, so every organization with its own domain is asked for devices.<domain>: the host...
Reserve the devices alias, not iot
The kamo-iot share pages are served at devices.<domain> (owner 2026-10-18: the host is customer-facing, and "IoT" is a technical term), so the new-organization ...
Mirror the SITP TP02 rights (440-442) and their parents
MANAGE_ANALYTICS under VIEW_ANALYTICS (Analytics changes, now that each member signs in as themselves), and VIEW_ORG_BILLING with MANAGE_ORG_BILLING under it (o...
The Interaction Center and the hexheads stand aside for a guided tour too
Follow-up to 2363d832, which cleared the dock windows. Two more surfaces could still sit in the spotlight: - The Interaction Center. A tour step (Online Meetin...
Mirror the SITP TP01 rights (410-418) and their parents
MANAGE_PRODUCTS, MANAGE_INVENTORY, MANAGE_RETAIL_CUSTOMERS, MANAGE_FULFILLMENT, MANAGE_RENTALS, MANAGE_PROCUREMENT and APPROVE_PURCHASE_REQUESTS under ACCESS_CO...
The quick-insert lists and renders templates through VOIPService's members' door (SITP TP11)
/api/voip/sms/templates is X-Internal-Auth only, so no browser session reached it and the popover always listed nothing. /api/voip/sms/text-templates takes the ...
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.
