IoT Devices getting-started articles (SP14)
Six hand-authored articles: what it is and is not, turning it on (Settings → My Account → Apps & Features), sites and spaces, which services can connect (no ven...
The IoT Devices area: category, seven sections, the roster, the claims rules and their tests (SP14)
The category iot-devices is appended after Cameras (sort order 18), so no existing category moves. The manifest keeps every existing entry exactly as committed ...
The Advanced tab marks the simulator as a test tool that cannot be enabled (SP14)
The view gains testOnly; visibleActions never offers ENABLE for a test-only connector (the server already omits it); TEST_ONLY_PROVIDER and the four simulator t...
The automation builder - actions, save-time confirmation, webhook secrets, test and backtest
SP09 Alexa — master §10 rows for the plan's and the execution's deviations [skip ci]
Share device access from tickets and Exec2Exec, the card in both, and the recipient pages (IoT SP04)
The ticket header's action row and all three Exec2Exec header strips offer the share action (Exec2ExecHeaderActions keeps the meeting button beside it). An IOT_...
The sharing client and the Share device access dialog, button and card (IoT SP04)
The member-side of sharing (spec 4.16): app/lib/iot/sharesApi.ts is @kamo/iot-core's createSharesApi over a same-origin @kamo/net ApiClient on this app's authen...
Devices panel for Accounts and Contacts - data layer, live updates, tag and untag (SP13)
The Advanced tab's Kamo OAuth client panel — status, one-time secret, Amazon vendor id, activate (IoT SP09)
SecurityService P1-P3 **************** had no screen, so operator step B5 (generate the Alexa client secret, register the vendor id's redirect addresses, activa...
Charter editor lists OPERATE_DEVICE and OPERATE_SECURITY_DEVICE; KamoAI master §11 and IoT master §10 rows (SP11)
ACTION_CLASSES ends with the two IoT SP11 classes and APPROVAL holds 24 items (one per shared-lib AiActionClass). The KamoAI master gains its §11 row for the io...
The trend draws the clinician's limits (the editor hands them over); typed chart input and test nullability
Master §10 — SP06 execution seams (virtual-sensor port, IotcoderPage, mirrorToPush) [skip ci]
IOT in the NoReply audit subsystems
IoT Devices SP06: EmailService audits alarm letters (iot.alarm_notice) under NoReplySubsystem.IOT; the audit filter knows it.
Connector setup guide and field help on the Advanced-tab card (IoT SP08)
The history's "Opt-out not recorded" chip in the primary colour (info failed contrast), and channel chips one width so the addresses line up
Follows b93576e8. Found by the component-harness screenshots and axe (color-contrast on the info-coloured chip). Tests: DoNotBlockTab.test.tsx.
The remote-monitoring cards — RPM progress, home readings, clinician limits and the alert list
Enrolment wizard with the consent script, connect-a-device, time entry and the billing handoff
The Monitoring tab, the practice monitoring queue, and the organization's remote-monitoring switch
Wire remote monitoring into the chart, the practice queue, the masthead count, the chart summary and the patients tour
A guided tour starts on a clear screen — dock windows go away as hexheads, and one that covers the highlight mid-tour follows
A chat that popped up at sign-in sat over the elements the tour pointed at, so the spotlight was drawn round the chat window instead of the lead search, the fil...
The nav's Voicemail row opens the softphone on voicemail, not the dialpad
The row dispatched a plain tool:open, so a new softphone started on the dialpad and an open one was only raised. It now opens with initialTab 'voicemail' (throu...
The vendor and product questions move off the field's border
A member reported "Description" on Create New Vendor (Settings → Client Relations Manager → Vendors & Products) with the field's border running through it: an M...
Settings → Phone → Do not block, next to Do not contact
Owner 2026-10-15: "remove it and add it to a do-not-block list". The organization's own numbers and staff lines, which the do-not-contact list never blocks and ...
Hexhead side corners are no longer cut off
The hexagon's side points sit on the 0-100 viewBox edge while its flat top and bottom have 6.7 units to spare, so the clipping SVG shaved half the outline and t...
The keys tip on the tour card always shows in full
The "Tip: use the arrow keys to move" line shared the button row with Back and the primary button. A long label such as "Next tour: Service Work" left it no roo...
CP-D105 — the No Insubordination Rule: a team member's direct order lends an SI their rights for that run; talk lends nothing
Owner ruling 2026-10-15, refined the same day. Trigger, scope (one delegation point, order-scoped ***, SI floor and own denials kept, no transitive lending), CP...
The do-not-contact screens read clearly to everyone — "Call anyway" and the history's Removed chips in the error colour (warning failed contrast), spinners named, the removal sentence names the channel as written
Follows 35421d4d. Found by the component-harness screenshots and axe (color-contrast on the warning-coloured text button and chip; aria-progressbar-name on the ...
A run's tool calls say when the SI acted on a teammate's order, and with which of their rights
The No Insubordination Rule (owner 2026-10-15): a tool call an SI made on a teammate's direct order carries the order's basis, the teammate and the rights they ...
Settings → Phone → Do not contact, and the softphone warns before calling a listed number
Owner 2026-10-15: one company-wide do-not-contact list per organization, scoped per channel. - Settings → Phone → Do not contact (MANAGE_VOIP_SETTINGS, setting...
SI routing shows what SIs use now — the effective model per kind of work and whether the org's order or the automatic default chose it; for speech-to-text, the model on phone calls and in meetings, streamed or per sentence, with the automatic accuracy-ranking hint
Owner 2026-10-15: "If a model is added and enabled to the SI Providers that supports speech to text, it should use the best one." Reads AIService's effective / ...
SI routing shows "Phone calls and meetings" — the VOICE_CONVERSATION slot's own model order, with a hint that names its fallback order
Owner 2026-10-15: SI phone calls on their own model order, chat unchanged. routingApi mirrors shared-lib AiRoutingSlot (ROUTING_SLOTS) and the slot entry's kind...
A member may let SI colleagues greet them with the short form on internal calls
SI call disclosure, owner decision 11 (2026-10-15): the SI colleagues card on the member's own profile (Work room) gets "Short greeting on calls with SI team me...
An edit that changes nothing cannot be saved
Opening an event and pressing Save without touching anything rewrote it — and, for a meeting with guests, could ask whether to tell them about a change that did...
An add the server moved to another chat opens in its own window
Adding somebody to a conversation that already has messages no longer grows that room (MediaService now moves the add to the chat for the new set of people). Op...
A meeting in a message — add it once, and see what its organiser changed
The strip that said "Not on your calendar" and nothing else becomes the meeting's card: a date tile, the time in the member's zone with the organiser's own cloc...
Explain Confidential, Record a decision and Disclosure history to a first-time member, and give all three a premium dialog
Each tool now opens with a plain-words, three-step guide the first time a member uses it (remembered per member on the server via the UI-preference map, key fea...
Speak your message, hands-free conversation and read replies aloud in every chat window
The public web chat's voice — dictation, replies read aloud, and a hands-free loop — now runs in every chat-style tool window: member chat (including chats with...
The editor offers JOIN_MEETING, so an organization can set its own rule for an SI joining meetings
Owner 2026-10-14: joining one of the organization's meetings is its own action class (shared-lib 2d2f2efd), not PLACE_CALL. ACTION_CLASSES lists it after the tw...
Picking a non-default alias domain From no longer fails the send
Every alias-domain row in the From picker is the member's primary mailbox under another domain, but only the default one was mapped to a primary From. Any other...
Typed remote-monitoring client and the pure progress, limit and refusal rules
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.
