Live Change Log

See what we're building, in real-time. Every feature, fix, and improvement shipped across the platform.

17,933
Total Changes
4,614
Features
4,543
Fixes
32
Projects
Filter by project
All Projects17,933AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService373InitializerService300KBService74KlusterServices546MCPGatewayService43MediaService461RAGService61SecurityService1,523TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,579kamo-login319kamo-marketing585kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,322kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs226Feature4,614Fix4,543Other6,781Performance136Refactor274Revert23Style48Test70Upgrade1
August 7, 2026
Refactorkamo-internal

Consolidate the member surface onto ?tab=legal-compliance

The standalone **************** route rendered the same component as the settings tab behind a second URL. Delete it and keep the tab: one surface, one entrance...

kamo·1mo ago
Featurekamo-internal

Email a member straight from their row

The row's action dock could chat, meet, dial and open a profile — the one thing it could not do was start an email, so reaching a colleague by mail meant leavin...

kamo·1mo ago
Chorekamo-internal

Extract the HR Legal & Compliance rendered key set

A literal t('…') scan misses 8 of the module's 81 keys: assignmentStatusKey and statusStateKey return key strings as DATA, and hrTabs.ts holds labelKey and desc...

kamo·1mo ago
August 6, 2026
Fixkamo-internal

React to ASSIGNED and stop trusting a channel that cannot replay

Three ways the support badge went stale, all of them silent. ASSIGNED was published on /topic/support/agent/{memberId} and this handler only branched on PENDIN...

kamo·1mo ago
Fixkamo-internal

Stop the badge costing portal members a request a minute

Three things, all of them about who the count is for. THE PROVIDER GATES ON THE SAME CONDITION AS THE BUTTON. It mounts in the root layout for every authentica...

kamo·1mo ago
Featurekamo-internal

Signature button with a live legal-package badge

Hand-written into the fixed left cluster between My Profile and Log out. NAV_REGISTRY cannot express a position between two fixed controls and its badgeKey fiel...

kamo·1mo ago
Featurekamo-internal

Live pending-package count over the EXISTING chat socket

LegalPackageCountContext consumes **************** rather than opening a fourteenth STOMP connection for one integer, and subscribes to **************** — the d...

kamo·1mo ago
Featurekamo-internal

Proxy the member's pending-package count

A static segment sibling to [uid] so App Router matches it first. PATH ONLY — forwardToApi owns the query string — and one upstream call, because the OTK is sin...

kamo·1mo ago
Fixkamo-internal

Show a sent attachment without waiting for a reload

MediaService announced a new chat message twice — once when the row was saved, before any attachment existed, and once after the attachment rows committed. The ...

kamo·1mo ago
Fixkamo-internal

Lay the profile header's wallpaper chrome out in a row

The Source / Console / Tone pod was the Stage's stacked one, and stacked it is taller than the 100px avatar it sits beside — so it, not the identity block, set ...

kamo·1mo ago
Featurekamo-internal

Give the executed-package repair an actual button

POST **************** existed upstream and was tested, but nothing in the product could reach it: no proxy route, no helper, no button. Every failure branch in ...

kamo·1mo ago
Fixkamo-internal

Restore the profile header wallpaper and wire its controls to the editor

The band behind the avatar on **************** had gone flat gradient. Not the wallpaper feature — ae85a8ae routed the header's photos through next/image + safe...

kamo·1mo ago
Fixkamo-internal

Sit the head tabs on the header's bottom edge and flatten the identity row

The tab strip was vertically centred in a row whose height was set by the action cluster beside it — a default-size More icon button (40px) plus the cluster's o...

kamo·1mo ago
Featurekamo-internal

Download the executed package from the grid and the member's own page

Both surfaces go through the LEGAL endpoints, keyed on the assignment, not /api/imaging/download/{imgId}: that path additionally needs organization.isDocs and V...

kamo·1mo ago
Featurekamo-internal

Draw non-image attachments with the document manager's file-type icons

A staged .docx or .xlsx was a grey MUI outline with the extension lettered underneath — a shape invented for the tray, and one that says less than the icon the ...

kamo·1mo ago
Featurekamo-internal

Say what is too big, instead of "Failed to send email"

A draft that outgrew the send endpoint's limits produced one flat line of red text after the whole payload had been uploaded — or, when the body itself was the ...

kamo·1mo ago
Featurekamo-internal

Gate each Human Resources tab on its own right

Overview needs VIEW_OVERVIEW, Attendance MANAGE_TIMECARDS, Legal & Compliance MANAGE_LEGAL_AND_COMPLIANCE, Training MANAGE_TRAINING and Resources MANAGE_RESOURC...

kamo·1mo ago
Featurekamo-internal

Measure a draft against the send limits before uploading it

A body carrying inline base64 — HTML pasted from a web page, a forward's quoted content, a signature's images — can pass the per-part ceiling on its own. The se...

kamo·1mo ago
Docskamo-internal

Add the legal package execution plan

Phase 5: the member self-service page, the execution wizard ported from kamo-signer, and WORM package attestation capture.

kamo·1mo ago
Fixkamo-internal

Let a member actually finish a package, and reach the page at all

canFinish required every document row to already be SIGNED/ACKNOWLEDGED, but **************** is the ONLY writer of those statuses — the delivery worker writes ...

kamo·1mo ago
Fixkamo-internal

Drop the outer padding around the member Docs tab

DocManager brings its own toolbar and grid chrome, so the p:4 inset just shrank the grid and left a visible gap the /hr/resources page does not have. Matches th...

kamo·1mo ago
Featurekamo-internal

Member legal-compliance page and the package execution wizard

**************** is gated on identity (memberID === getMemberIdString(), compared as STRINGS because getMemberId() is lossy past MAX_SAFE_INTEGER) and includes ...

kamo·1mo ago
Featurekamo-internal

Member execution proxy routes and the pure wizard model

Eight 1:1 routes: /api/docs/legal/member/** through forwardToApi (PATH ONLY — forwardToApi owns the query string) and /api/esig/member/** direct to ESIG_SERVICE...

kamo·1mo ago
Featurekamo-internal

Port the kamo-signer signing core into kamo-internal

Every @kamo/* package is private:true with exports:"./src/index.ts" and no build step, so there is no publishable artifact — the files are copied and rewired on...

kamo·1mo ago
Docskamo-internal

Add the legal package delivery plan

Phase 4: Deliver / Redeliver / Void fan-out, assignment creation with e-sign envelopes, and the Assigned Packages sub-tab.

kamo·1mo ago
Fixkamo-internal

Cap the legal audience roster, and refresh after Deliver

The Assigned Packages grid filled its team-member filter column by asking audience-preview for allTeamMembers:true on mount -- a name and an email address for e...

kamo·1mo ago
Featurekamo-internal

Assigned Packages sub-tab and deliver/redeliver/void actions

AG Grid Community over a MUI-paginated fetch — Community has no server-side row model, so the server pages and the grid renders exactly what it was handed. The ...

kamo·1mo ago
Featurekamo-internal

Legal package deliver/redeliver/void proxies and assignment client

Thin 1:1 forwardToApi routes — one upstream request each, because OTKAuthFilter does getAndDelete and a per-member loop in a Next route would need one OTK per m...

kamo·1mo ago
Docskamo-internal

Add the legal package CRUD plan

Phase 3 of the HR Legal & Compliance series: DocsService package CRUD, the content fingerprint, publish freezing a byte-pinned version, audience preview, and th...

kamo·1mo ago
Fixkamo-internal

Wire publish and audience preview, and stop rendering a broken label

publishPackage, previewAudience and getPackage shipped with no caller. The templates grid now has a Publish row action — disabled when the package has no binder...

kamo·1mo ago
Featurekamo-internal

Package Templates sub-tab for Legal & Compliance

Replaces the HrTabPlaceholder body only — the route, the tab entry and the gate already exist in hrTabs.ts. AG Grid Community list plus a create/edit dialog wit...

kamo·1mo ago
Featurekamo-internal

Legal package proxy routes, client api and pure helpers

Thin 1:1 forwardToApi routes under /api/docs/legal — one upstream request each, because OTKAuthFilter does getAndDelete and a fan-out loop in a Next route would...

kamo·1mo ago
Fixkamo-internal

Restore external images in email bodies

External images stopped rendering when the page-level image policy shipped. The middleware sets `img-src 'self' data: blob: https://theme.<apex> https://*.<apex...

kamo·1mo ago
Docskamo-internal

Add the signing-correctness plan

Phase 2 of the HR Legal & Compliance series, shippable on its own: signer-slot binding, server-side required-field enforcement, invite suppression, and recipien...

kamo·1mo ago
Fixkamo-internal

Cap the send dialog's recipients at the template's declared slots

The Send for signature dialog seeds one recipient row and offers an unbounded "Add recipient", but it never fetched the template's signer slots. ESigService rej...

kamo·1mo ago
Refactorkamo-internal

Drive the remaining polled screens from NATS/WebSocket

Fifteen network polls across the app, replaced with the events that were already happening or with events added to the services that own the state. Mail — the ...

kamo·1mo ago
Docskamo-internal

Add the legal package entities plan

Phase 1 of the HR Legal & Compliance series: the com.kamo.z.shared.hr.legal entity set and its schema migration.

kamo·1mo ago
Fixkamo-internal

Drive the mail badge from pushed unread counts, not a 30s poll

MailButton ran setInterval(fetchUnreadCount, 30_000) in every open tab, and each tick called /api/email/folders — an endpoint that opens every folder in the mai...

kamo·1mo ago
Docskamo-internal

Add the Legal & Compliance design and the binder-scoping plan

The design is the full cross-repo analysis of the HR Legal & Compliance module (package templates, delivery, execution wizard, navtop badge, notification email)...

kamo·1mo ago
Fixkamo-internal

Guard loadBinders by request identity, not scope value

sameBinderScope alone can't tell two in-flight requests for the SAME scope apart (A -> B -> A), so a slower older request could still overwrite a newer one. Tra...

kamo·1mo ago
Fixkamo-internal

Show only the binders belonging to the open collection

OrganizerTab already received assocType/assocObjectId and passed them to the editor's document picker, but loaded the binder LIST unscoped — so every DocManager...

kamo·1mo ago
Featurekamo-internal

Make the binder store aware of its collection

The store is a module singleton, so it now tracks the active scope, clears on a scope change, and drops stale in-flight responses.

kamo·1mo ago
Fixkamo-internal

Add a close button to the automated-imports manage dialog

The manage popup had no dismiss affordance in its header — only the backdrop and Esc closed it. Add an X icon button beside the edit action.

kamo·1mo ago
Featurekamo-internal

Group the meeting-invite fields by meaning when maximized

Splitting the form into equal halves used the wrong unit. It stretched a date input across half the window and stranded its All-day box at the far edge, left tw...

kamo·1mo ago
Otherkamo-internal

Rename the DocManager Organizer tab to Binders

The tab lists binders, so name it for what it holds. Points the tab label and the row action at the renamed dictionary keys (tabs.binders, addToBinder); the pic...

kamo·1mo ago
Fixkamo-internal

Tell a tool component when its window is maximized

Maximizing a tool window repaints the shell at 100vw/100vh but leaves the window's stored size untouched, and that stored size is what ToolDock hands the compon...

kamo·1mo ago
Fixkamo-internal

Keep fields on the page when a document opens at a remembered zoom

Reopening a document could draw every field small and up in the corner, until one click of the zoom control snapped them all into place. The page box that fiel...

kamo·1mo ago
Featurekamo-internal

Keep the quoted original out of the editable body

Replying dropped the whole quoted message into the Quill editor as body text. Quill can only model a simple grid, so every layout table in the quote was flatten...

kamo·1mo ago
Fixkamo-internal

Stop replies drawing a gridded copy of the quoted signature

Replying to a message sent from Kamo showed the signature twice: the live one, and above it a mangled version of the quoted original's, drawn as a bordered spre...

kamo·1mo ago

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing