Live Change Log

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

17,925
Total Changes
4,612
Features
4,537
Fixes
32
Projects
Filter by project
All Projects17,925AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService373InitializerService300KBService74KlusterServices546MCPGatewayService43MediaService461RAGService61SecurityService1,520TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,576kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,322kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs226Feature4,612Fix4,537Other6,781Performance136Refactor274Revert23Style48Test70Upgrade1
August 7, 2026
Fixkamo-shared-library

Stop HTML-escaping the package title in the four HR subjects

EmailTemplateService renders a template's SUBJECT and BODY from ONE variable map, and all four canonical HR subjects carry {{packageTitle}} — which LegalNotific...

Kamo·1mo ago
August 6, 2026
Featurekamo-shared-library

Four canonical HR legal-package templates

hr.package_assigned, hr.package_reminder, hr.package_voided and hr.package_completed, as {json,html} pairs plus four CANONICAL_KEYS entries. The CONSTANT is no...

Kamo·1mo ago
Fixkamo-shared-library

Let a caller own the realtime announcement of the message it is still building

createMessage announced every new message on the session's realtime subject the moment the row was saved — inside the caller's transaction, before the caller ha...

Kamo·1mo ago
Featurekamo-shared-library

One security right per Human Resources tab

The /hr tabs were gated on whichever pre-existing HR right happened to be an OR-term in the front end: Attendance opened on VIEW_SCHEDULES, Training on VIEW_EMP...

Kamo·1mo ago
Featurekamo-shared-library

Expose the content-addressed store so chat attachments can dedup

Chat attachments never went through the hashing pipeline — they wrote a private "<imgId>/<fileName>" object per upload, so the same file attached three times oc...

Kamo·1mo ago
Fixkamo-shared-library

Store every image in one bucket so dedup means one copy

Association is metadata, not a storage boundary. Each ImageAssocType used to name its own MinIO bucket, which contradicted the hashing pipeline: dedup is scoped...

Kamo·1mo ago
Fixkamo-shared-library

Copy a deduplicated document's objects into its own association bucket

Object storage is bucket-per-association (every reader resolves img.getAssocId().getBucket()), but deduplication is scoped ORG-wide or GLOBALly and so crosses a...

Kamo·1mo ago
Featurekamo-shared-library

Let sync progress and domain state be announced instead of polled

Two hooks for the push conversion in SecurityService, where several platform screens refreshed on timers because there was no way to tell them anything. Retail...

Kamo·1mo ago
Fixkamo-shared-library

Make the audience FKs and the attested wording actually hold

Five defects from the whole-branch review, all in the evidence path. The audience FKs did not cascade. cascade = CascadeType.DETACH is a persistence-context ca...

Kamo·1mo ago
Featurekamo-shared-library

Record package attestation as append-only evidence

The package-level 'I have read and agree' is a different legal instrument from the E-SIGN consent to transact and from any per-document signature, and it is the...

Kamo·1mo ago
Featurekamo-shared-library

Add per-member assignments and per-document progress

The document row is the join that makes N e-sign envelopes read as one package. The badge count comes off the assignment status, not e-sign status: recipient st...

Kamo·1mo ago
Featurekamo-shared-library

Freeze package content into immutable versions

Pins the ImgDat blob id and its SHA-256, not just imgId — a Docs save repoints the same Img at new bytes, so imgId alone would let two members sign different do...

Kamo·1mo ago
Featurekamo-shared-library

Target a package at departments, job types or named members

Shaped on SystemUserAccess. Adds the audience resolver to TeamMemberRepo, which was an empty interface; the ACTIVE + recordState predicate is what keeps termina...

Kamo·1mo ago
Featurekamo-shared-library

Add the legal package template entities

A package is an ordered set of binders plus an audience. Binder references are soft ids because binders are user-deletable and cascade their items. The attestat...

Kamo·1mo ago
Featurekamo-shared-library

Narrow binder visibility to one document collection

Replaces findVisibleToMember with a scoped variant and drops the two unreferenced finders that sorted by the dead date_updated column.

Kamo·1mo ago
Featurekamo-shared-library

Give a binder the document collection it belongs to

Binders had no assoc scoping, so every DocManager rendered the same global per-member pool and a binder built under Marketing could be filled with HR documents....

Kamo·1mo ago
August 5, 2026
Fixkamo-shared-library

Map the metadata array columns as Java arrays, not List

Both entities declared their array columns as List<T> under an explicit @JdbcTypeCode(SqlTypes.ARRAY). On Hibernate 6.2.13 that combination resolves the array's...

Kamo·1mo ago
Fixkamo-shared-library

Record the uploader on a deduplicated document

registerExistingDocument built its Img without .createdByMember(member), which the normal upload path sets. Every document registered through dedup therefore la...

Kamo·1mo ago
Fixkamo-shared-library

Targeted conversion updates, so a detached ImgDat save cannot abort conversion

Conversion runs on a virtual thread against a DETACHED ImgDat. save() therefore merges an instance whose LAZY `images` collection is no longer the managed one, ...

Kamo·1mo ago
Fixkamo-shared-library

Put unowned intake leads into the auto-assignment pool

Every lead-creation path funnels through LeadService.createLead — CSV import, the lead-intake endpoints and their scheduled DaemonService job, the public webina...

Kamo·1mo ago
Featurekamo-shared-library

HR_RESOURCE assoc type for the org HR resource library

The /hr Resources tab publishes handbooks, policies, forms and reference material to the whole team, and no existing assoc type fits: MY_DOCS is a person's own ...

Kamo·1mo ago
Testkamo-shared-library

Pin the contact-point and linker invariants, and drop timeline count queries

The two classes the whole feature rests on had no tests, and all three properties they guarantee fail silently in production: an unmatched call is indistinguish...

Kamo·1mo ago
Fixkamo-shared-library

Make communication source ids natural keys, not row ids

A source id derived from the source row's generated UUID is only stable if that row commits. The VOIP ingest paths write inside the sync transaction while LeadC...

Kamo·1mo ago
Featurekamo-shared-library

Point-in-time contact-point index and lead communication links

Adds the spine the lead Communications tab reads from. LEAD_CONTACT_POINTS records every phone number and e-mail a lead has ever had, as a window with activeFr...

Kamo·1mo ago
Featurekamo-shared-library

Public demo-request lead capture primitives

A visitor who fills in the marketing site's demo form but never books a time left no trace: the lead was only ever written inside the booking transaction. Captu...

Kamo·1mo ago
Featurekamo-shared-library

MICROSOFT_TEAMS provider type

Appends MICROSOFT_TEAMS to VoipProviderType. The enum persists as ORDINAL on **************** so the position is load-bearing and the constant goes last; the cl...

Kamo·1mo ago
Featurekamo-shared-library

Model meetings as provider-agnostic

Kamo Meets was the only possible backend: OrgMeetConfig was a flat Meet settings bag and a MeetingRecord held nothing but a room name. This adds the schema for ...

Kamo·1mo ago
Featurekamo-shared-library

Read quality on adjustments and guideline versions

An assembled price is a base cell PLUS the adjustments stacked onto it, so judging only the cell judges half the number: a cleanly-read 99.875 with a misread -1...

Kamo·1mo ago
Fixkamo-shared-library

Publish the agent's cell when it is the only number they have

An agent's number can live in any of three columns and commonly sits in only one: e_phone_number on the team member, m_phone_number and m_cell_number on the mem...

Kamo·1mo ago
Featurekamo-shared-library

Per-cell extraction confidence + eligibility-matrix provenance

Two gaps in the confidence model, both on the money path. PER-CELL. A sheet-wide floor is the wrong grain for judging one price: a single badly-read coupon dra...

Kamo·1mo ago
Featurekamo-shared-library

Publish every way to reach the agent, not just a name

Name and title alone tell a customer who owns the quote but not how to ask about it. The block now carries email and phone, resolved by the caller — the primary...

Kamo·1mo ago
Featurekamo-shared-library

Extraction confidence on the catalog spine + auto sign-off basis

A price is only as trustworthy as the sheet it was assembled from, and nothing on the pricing path carried that signal: confidence existed ONLY on pre-promotion...

Kamo·1mo ago
Fixkamo-shared-library

The opportunity templates own their own markup again

The company line was changed to arrive as a complete <p> element from the sender, so an absent company would not leave an empty paragraph. That was the wrong tr...

Kamo·1mo ago
Featurekamo-shared-library

Page and filter an account's quotes in the database

An account view needs every quote across all its leads. Loading them to render a page degrades every month the account is in use, and any total shown would only...

Kamo·1mo ago
Featurekamo-shared-library

Name the lead's assigned agent on the document

The letterhead identifies the org, but a customer with a question about a price needs the person who owns the relationship. The quote now carries the lead's ass...

Kamo·1mo ago
Featurekamo-shared-library

Reassignable primary agent, and nine notification templates

An approver can hand an opportunity — and the commission with it — to a different agent. PRIMARY_AGENT_MEMBER_ID is who holds it now; REQUESTED_BY_MEMBER_ID is ...

Kamo·1mo ago
August 4, 2026
Featurekamo-shared-library

The overall commission on a sale, and market defaults for it

A reserved opportunity now records what the organization pays out of the sale to the requesting agent and the group they share with — the pot the per-colleague ...

Kamo·1mo ago
Fixkamo-shared-library

Carry lead ids as strings — a JS number silently corrupts them

Lead ids are CockroachDB unique_rowid() values above Number.MAX_SAFE_INTEGER: 1189175700550025222 becomes 1189175700550025200 the moment it touches a JS number....

Kamo·1mo ago
Featurekamo-shared-library

Put the client's details on the document, read off the lead

Dropping the quote's own addressee fields left the document with nothing to say about the client: customerName only ever came from a linked Account, which lead-...

Kamo·1mo ago
Featurekamo-shared-library

Quotes belong to leads, configured per market

Quotes were a commerce-pipeline artifact, which put them beside orders and carts rather than beside the client they are for. They now hang off the lead: the mar...

Kamo·1mo ago
Featurekamo-shared-library

Entities for time-boxed lead opportunity reservations

An agent stakes an exclusive claim on closing a lead for a bounded window; an approver grants, edits or denies it, and colleagues can be offered a share of the ...

Kamo·1mo ago
Featurekamo-shared-library

Address a quote to someone who is not yet an account

The addressee was derived solely from a linked Account, so any quote raised for a prospect — which is most of them — printed a blank "Prepared for" line and the...

Kamo·1mo ago
Fixkamo-shared-library

Resolve the org's real hostname and logo extension for the letterhead

Correcting the theme URL was necessary but not sufficient — the logo still did not render, for two further reasons found in the live data. org_domains stores a...

Kamo·1mo ago
Fixkamo-shared-library

Point the letterhead logo at the path the theme bucket actually serves

The logo URL was built as **************** which that host answers with a 308 rather than an image — so every quote, sent as well as previewed, silently fell ba...

Kamo·1mo ago
Featurekamo-shared-library

PHI_ACCESS_ALERT canonical template

SecurityService's hourly review of phi_access_log needs somewhere to send what it finds. Rather than invent a channel it uses the existing transactional-email r...

Kamo·1mo ago
Featurekamo-shared-library

Audit vocabulary for a change to the compliance boundary itself

Adds PhiResourceType.ORGANIZATION and PhiAccessKind.CONFIGURE so that turning Organization.handlesPhi on or off can be recorded as what it is. Every existing r...

Kamo·1mo ago
Refactorkamo-shared-library

Share the letterhead resolution between the public page and staff

The staff preview has to show exactly what the customer receives, so branding, the document term and the link host now resolve in one place. Two copies would dr...

Kamo·1mo ago
August 3, 2026
Fixkamo-shared-library

Pin option FK column definitions so they do not inherit gen_random_uuid()

Hibernate copies the referenced id's columnDefinition onto a new @JoinColumn, so quote_id and option_id were both created DEFAULT gen_random_uuid(). An insert t...

Kamo·1mo ago
Featurekamo-shared-library

Multi-option quotes with per-option comparison totals

A quote can now present several mutually-exclusive ways to buy — monthly, annual, three-year — instead of forcing three separate documents that drift apart the ...

Kamo·1mo ago
Featurekamo-shared-library

WORM pricing sign-off entity (mlos_pricing_signoff)

Append-only steward APPROVE/REJECT judgement on a frozen priced result. @PreUpdate throws (a reversal is a new row). Table + 4 indexes (org, run, result, loan) ...

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