Zoom's Server-to-Server app is entered once; SI joins live in Provider Setup (SIE10FU)
Owner 2026-11-07: meeting providers are configured on Provider Setup; SIE10's separate SI Meeting Joins screen duplicated it. Backend side of folding it in: - Z...
The SI joins status tone takes the theme's own type (unblocks the build)
ReturnType<typeof useTheme> is unknown (useTheme is generic), so next build failed type-checking.
Accept the phone's session, like every session endpoint
SIE5. **************** read only the BFF's X-OTK session, so KamoMobile (api.<org> with X-***-Token) got 401 and could not share a preference with the web — the...
Pass the SI Status translator to duration() as the plain function it takes
next-intl's Translator is not assignable to (k, v) => string (TS2345), failing the kamo-internal image build. No behavior change.
Searching 'workforce' found nothing - add SI Workforce and Workforce Controls cards
Both tabs existed on /settings/ai but had no landing card, and the settings search only filters landing cards.
SI Status tab sets textTransform once, so the build type-checks again
SIE1's tab style named textTransform twice (TS1117), failing every kamo-internal image build since 7557af90a. No behavior change.
A trunk leg's heard side is our member, not the other party
When the only one-party files come from the trunk leg (a caller coming in), its rx is the caller and its tx is what the caller heard: us. Name that side after t...
Whole calls, timed turns with speakers, and a backfill
Owner report 2026-11-06: transcripts "do not reflect the entirety of the call recordings", and separate channels should say who is speaking. Measured on 180 pl...
A cancelled run is waiting on the newer push, not a failure
Forgejo reports a run a newer push cancelled as failure / "Has been cancelled", and with several sessions pushing that is most runs. It now stays in flight (QUE...
A timed transcription walks only models that give segments
Owner report 2026-11-06: call transcripts "do not reflect the entirety of the call recordings". Measured on the platform org's calls: the router's first STT cho...
The reading-pane subject no longer collapses to one letter per line
The action buttons were flex-shrink-0 beside a min-w-0 title, so in a narrow pane they took the whole row and the subject got zero width. The header now wraps a...
The phone's session header signs in a READ, so KamoMobile can open help, scripts and tasks
KamoMobile calls api.<org> with X-***-Token and cannot mint an OTK, so every KBService read it made (the Password Vault's help article, sales scripts, task list...
Read the address bar's text.content, and pass a shell secret in run_shell's env map (TPVAULT phase 2, live)
Live on a test SI's workstation the address bar's text sat 372 characters after its name; read the node's own content first so a longer states list can't push i...
The Activity shows each person's own avatar and a plain device name, never a raw user agent
A proper 32-byte key for saved provider API keys, no default, no plaintext fallback (TPVAULT side fix)
AI_PROVIDER_KEY (Secret ai-provider-key, 32 random bytes) or the service will not start; new values are v2: + AES-256-GCM with associated data. The old padded-s...
The Call Log shows each member's photo and their profile card on hover
Rows wrap the member in the shared MemberHoverCard and warm the member-card cache, so faces are photos rather than initials; the team-member picker warms the sa...
The Call Log's provider audio door refuses a line whose provider keeps no recordings
The list only offers Listen for a recording the platform stores or JustCall keeps; the door now asks the same rule before it asks any provider, so a FreePBX cal...
Never link to an article kept out of the help center on purpose
Ten articles were in the manifest but not in the live knowledge base. One, SI Goals, Watches and Signals, had simply never been imported; it is now published. T...
Keep idle connections open longer than Traefik, so a POST is never sent down a closing one
Node closed an idle keep-alive connection after 5 s; Traefik keeps its idle connections to a pod for 90 s and reuses them. A request sent as Node closed the soc...
Every loan has a column on the board, and the list streams through
Sold / Boarded sat on neither lane of the board, so those loans never showed. It now follows Funded, and any status neither lane names gets a column of its own ...
Detach k1m1's NFS mount while k3m1 is not serving it
The worldchunks USB drive dropped off k3m1 on 2026-10-30 and has not come back, so nfs-server stopped. k1m1 kept its soft mount on the assumption the server ret...
An updated invoice keeps its due date; an overdue one takes no new charges
Re-sending an updated invoice moved its due date forward, which quietly forgave what the customer already owed late. It now keeps its date and only restarts rem...
The context column scrolls its cards instead of squeezing them
On a desktop the context column of MasterDetail has a fixed height and scrolls, but its grid rows were plain auto, which a fixed-height grid shrinks to the free...
A lead task reads the lead's name from the rows beside it, and the filters scroll on a phone
My Tasks fills wide screens, says once what failed, and has its tests
The fourth column at 1800px sat inside a breakpoint object, where MUI ignores a media query. Tests for the Organizer rows, their gates, the palette's finds and ...
A refusal reads as the service's own sentence, with no retry
The floor screens treated a 403 as a failed load. They now show what the service said, and offer no retry because none can help. The TV board fits every column ...
Closeout: pages keep the nav's rights, the canvas tells the truth, and quieter sessions
Floor pages a typed address could reach now answer as the nav does, with a plain message, and a person a bell sent there still reaches what is theirs. The canva...
A stage move names itself, and a rate change can start a stream
A status set off a call wrote its contact attempt as a CALL, so a stage move into a Contacted stage read "Call · Conversation". The attempt now says STAGE_MOVE ...
What the live retest found
Pane titles wrap to two lines on a phone. The Media socket waits a moment before closing, so a page load doesn't open several in turn. The links to the lender's...
View Loan Revenue & Cost hangs off own loans
Hanging off the whole pipeline made the own-loans rule unreachable: a holder without View Mortgage Pipeline lost the right at sign-in.
The socket's close callback is in the local stomp types
The fix pass's shared Media socket uses onWebSocketClose, which types/@stomp__stompjs.d.ts didn't declare, so 552adae26 failed its build at useMediaTopic.ts. No...
The duplicate route reaches the service, and a saved text's key fits its column
Completes fe182924f. The contract in the brief follows the scripts work.
The help tree reads titles, not whole translated articles
Any language but English loaded every translated help row on each tree read, about 4 MB, outside the minute-long cache. The tree now carries titles alone and th...
The deployed config names the platform organization
The pods read the ConfigMap's application.yml, not the one in the image, so sharing stayed off, which is the safe way to fail.
Every write keys on the article's owning organization
Reads now cross one edge, so writes must not lean on anything a read decides. Each write takes the acting organization and asks ownedBy, in the service as well ...
One link to CRM settings instead of every tab
The hero listed each settings tab, which stopped working once the list grew. It now opens the first tab this member can reach.
The call session stacks on a phone, and a floor page can carry Quick Tips
The workspace grid took the page's leftover height at phone width, so its panels overlapped. FloorPage takes helpTips and draws the same column SettingsView doe...
The call floor's own figures wait for the access check, and unavailable keeps the page frame
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.
