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
DaemonService ticks remote-monitoring close/no-data hourly, reconciliation every 15 minutes, alert escalation every 5
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...
SP06 alarm logic — ISA-18.2 state machine, escalation, suppression, schedule, flood
SP06 rule logic — loop maths, fingerprints, fire keys, templating, reasons
SP06 rule logic — solar, schedules, site days, conditions, triggers
SP06 vocabulary, entities and read-only repositories
25 enums (stored by name), IotServiceJobOrigin (SP13 ships on it), 17 entities matching the SP06 DDL and their read-only repositories; IotActivityKind += AUTOMA...
Share-card endpoint and server-only system events (IoT SP04)
POST **************** IoTService posts the IOT_SHARE card into a members' support ticket or Exec2Exec conversation as the sharer's system event, through the one...
The phone number ran under the language flag
The nav row was capped at 1280px, which left the phone cell 82px between Resources and the language button at every desktop width. The number is ~95px and nowra...
The phone number ran under the language flag
The nav row was capped at 1280px, which left the phone cell 82px between Resources and the language button at every desktop width. The number is ~95px and nowra...
NoReplySubsystem.IOT, the preview sample and mirrorToPush
IoT Devices SP06: alarm letters (iot.alarm_notice) audit under IOT; the template preview has sample values; POST /api/internal/notifications takes an optional m...
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...
Internal task endpoint for IoT automations
POST /internal/checklists/iot/tasks: one task on behalf of an automation's owner, into the assignee's Inbox (SP06 CREATE_TASK). Notes must be on, the assignee e...
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 ...
An unsubscribe from one of the organization's own protected addresses is noted, not listed
Owner 2026-10-15: the do-not-block list beside the do-not-contact list. DoNotContactEmailBeans declares shared-lib's DoNotBlockList and hands it to the DoNotCon...
The do-not-block list, the allowlist beside the do-not-contact list
Owner 2026-10-15: "remove it and add it to a do-not-block list" (the company's own main line had been put on the do-not-contact list by a test call). For an org...
Settings → Phone → Do not block — the API, the suggestions, and STOP texts that skip the company's own lines
Owner 2026-10-15: "remove it and add it to a do-not-block list". The allowlist beside the do-not-contact list, for the organization's own numbers and staff line...
Keep the migration difficulty an enum in every locale
/alternatives/<competitor> labels the migration difficulty with **************** The collections extractor shipped `difficulty` to the dictionary as prose, so e...
Gate the RPM_ALERT kind on REVIEW_CLINICAL_RESULTS and list it after LEAD_CALLBACK
A scanner probe no longer spends the catalogue rate limit
A dotted path (/info2.php, /.env) skips the locale middleware and reaches [locale]/page.tsx as locale "info2.php". The layout 404s it, but the page renders besi...
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...
Pre-issue iot.<apex> certificates, PDB kamowebiot, availability probe
iot joins BROWSER_ONLY_ALIASES and STATIC_DOMAINS on both platform apexes so the first share recipient never meets a missing certificate; monitoring/ is applied...
Patient-merge hooks run after the merge commits, so a failing hook can neither undo nor poison it
SP12 remote-monitoring endpoints, the portal connect-devices handler and their guards
SP12 enrollment, consent, pause/resume/end/revoke and the connect link
SP12 monitoring reads, the portal link, and home readings kept out of the chart's recent window
SP12 remote-monitoring foundations — write gate, access, audit, IoT client, merge hook
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...
"list…", "show…", "give me…" and "pull up…" are orders too, and a run with no order says why in the log
Live check in sp00verify (2026-10-15): a peer's "Nell, list the open tasks assigned to you and tell me how many there are." verified as their request (author, a...
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 ...
The No Insubordination Rule — an SI carries out a teammate's direct order on their rights
Owner 2026-10-15, refined the same day: "It should apply to any team member. But just because a team member (human or SI) has more rights, does not mean that au...
The No Insubordination Rule — a teammate's direct order lends an SI their rights for that run
Owner 2026-10-15, refined the same day: any team member (a person or another SI) who gives an SI a direct order lends it their rights for the work that carries ...
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 / ...
A team member's call to a number on the do-not-contact list reads as who asked not to be called, and since when
kamoai-service 8b7b8d5 added the organization's do-not-contact list for calls (K6 409 DO_NOT_CONTACT), and a team member's call now carries the day the number w...
One-time backfill of the do-not-contact list from earlier opt-outs
Run once on 2026-10-15 05:07Z (yb-tserver-0, admin role), by key from the opt-out tables only (no lead, contact or member table is read): CALL from SI-call "sto...
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.
