Live Change Log

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

17,845
Total Changes
4,566
Features
4,508
Fixes
32
Projects
Filter by project
All Projects17,845AIService110APIService138BillingService132ConversionService85DaemonService107DocsService189ESigService78EmailService347InitializerService299KBService73KlusterServices539MCPGatewayService43MediaService459RAGService61SecurityService1,515TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,546kamo-login318kamo-marketing580kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,319kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore669Docs226Feature4,566Fix4,508Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
September 11, 2026
FeatureESigService

Signature requests for the Docs manager, with new counts per member

The Docs manager gets a Signature Requests tab: every document a collection's templates sent out for signature, in three buckets by signatures (nobody, some, or...

KamoΒ·11h ago
FeatureESigService

Saving a template's fields is a version of the template

A template is a document with a layer of fields over it, and a version of it is both halves: its bytes and that layer. Its underlying file's saves already reach...

KamoΒ·14h ago
September 10, 2026
FixESigService

Signing and document-manager links only name a live domain

**************** settled for any active root domain, so an org still setting up its domain had signing links mailed to sign.<that domain>, which answered nothin...

KamoΒ·20h ago
September 9, 2026
FixESigService

The certificate must not claim a disclosure nobody was shown

Verified against a real completed envelope on the cluster, and the closing paragraph read "Each signer was shown, and accepted, the consumer disclosure required...

KamoΒ·1d ago
FixESigService

Stop asserting an eIDAS assurance tier this product does not implement

`buildSession` reported `stepUpRequired ? "AES" : "SES"`, so requiring a one-time passcode made every signing session assert an ADVANCED electronic signature β€” ...

KamoΒ·1d ago
FeatureESigService

A real Certificate of Completion, and the three copies of a signed record

What the flatten pipeline appended was one page per signature carrying seven lines: name, email, member id, timestamp, capture method, IP, user agent. No routin...

KamoΒ·1d ago
TestESigService

Prove submit actually writes the signature date, and ignores the wire

The unit tests around this cover the pieces β€” the format, the type predicate, the required-field exclusion β€” and none of them can see the wiring. A signature_da...

KamoΒ·1d ago
FixESigService

Every e-signature email was a silent 403, and a Signature Date field

**No e-sign email had been leaving the cluster.** EmailService gates /api/email/templates/send on the cluster-wide internal-auth secret (mlos-internal-auth -> I...

KamoΒ·1d ago
September 5, 2026
FixESigService

Prove the deploy by digest, not by tag

The preceding commit stops `set image` being a silent no-op. This asserts the outcome: after the rollout, the tag is resolved to a digest at the registry and th...

KamoΒ·6d ago
FixESigService

A rebuild of the same commit deployed nothing and reported success

The image is tagged with the commit SHA, so rebuilding the same commit produces an identical image reference. `kubectl set image` then changes nothing, the Depl...

KamoΒ·6d ago
September 4, 2026
FeatureESigService

Lock the shared sweeps, and run two pods

Every @Scheduled sweep here whose effect is shared now takes a named distributed lease through SingletonTaskRunner before it does anything, so it runs once acro...

KamoΒ·6d ago
FixESigService

Let a rollout finish what the old pod was doing

Deploys replaced the only pod of each service with nothing to catch the requests in flight. Three settings, applied across the fleet: - preStop sleeps 10s befo...

KamoΒ·6d ago
September 2, 2026
FixESigService

Redact when the document is served, not only when it is signed

The redaction was applied at flatten time, which is after signing. Everything before that β€” the whole signing session β€” was served the raw source: fetchDocument...

KamoΒ·1w ago
StyleESigService

An em-dash in a comment, not its escape

β€” is processed by javac before the file is even tokenised, so it compiled to the same character it renders as here β€” but the source read as the escape.

KamoΒ·1w ago
FeatureESigService

Put the designer's annotations into the signed document

flatten() applied blank pages, rotations, modifiers, field values, page order and certificates. It never drew the annotations. A rectangle, a highlight or an ar...

KamoΒ·1w ago
FixESigService

OrgBranding gained a sixth component and this stub kept passing five

Broken on main since e9faf11. The image build runs mvn package -DskipTests, so nothing has been compiling the test tree and no red build ever said so β€” but it m...

KamoΒ·1w ago
August 26, 2026
FixESigService

The signer app gets the sender's brand, not Kamo's

Two separate ways the same wrong assumption showed up. The signing page's logo URL was https://<org fqdn>/theme/logo-full.<ext>, which is not a path anything s...

KamoΒ·2w ago
August 25, 2026
ChoreESigService

Pin kamo-shared-library 1.6.0

The library moved to 1.6.0 while every consumer stayed on 1.5.0. Consumer CI builds the library from a fresh clone into a cold ~/.m2 and ci-settings.xml mirrors...

KamoΒ·2w ago
August 24, 2026
FixESigService

Stop handing an alias row over as the org's domain

**************** walked org.getDomains() filtering only on isActive. That collection holds the org's root domain AND its alias rows -- api, login, theme and the...

KamoΒ·2w ago
August 16, 2026
FixESigService

Size the pod above its own JVM heap ceiling [skip ci]

The image starts the JVM with -XX:MaxRAMPercentage=70 -XX:+AlwaysPreTouch, so the heap alone may take 70% of the container limit and pre-touch keeps every commi...

KamoΒ·3w ago
August 14, 2026
FixESigService

Resolve a native PDF's source bytes instead of demanding a rendition

**************** required dat.convertedDat to be non-null. ConversionService only mints a second ImgDat when it actually converts something -- a document that a...

KamoΒ·4w ago
August 11, 2026
FixESigService

Declare the object-storage secret the ConfigMap no longer carries

The MinIO key was moved out of the ConfigMap into the minio-app-credentials secret, but the envFrom that supplies it was only ever applied to the live deploymen...

KamoΒ·4w ago
FixESigService

Stop shipping a shared credential as a config default

The platform's shared password was baked in as the fallback for DB_PASSWORD and MINIO_ROOT_PASSWORD, so it lived in this repo and in the built image as well as ...

KamoΒ·4w ago
August 10, 2026
ChoreESigService

Rebuild against shared-library @Lob LONGVARCHAR fix

Hibernate's PostgreSQL dialect read @Lob String columns as OIDs via getLong(). Affects notes, contacts, calendar, OAuth tokens, IMAP passwords, email campaign b...

KamoΒ·4w ago
FeatureESigService

Point at YugabyteDB and use PostgreSQLDialect

CockroachDB has been replaced by YugabyteDB. Connection strings move from cockroachdb-public:26257 to yb-tserver-service:5433, and the Hibernate dialect from **...

KamoΒ·4w ago
August 7, 2026
CIESigService

Rebuild against the fixed shared library, behind a mirror that survives a bad byte

ESigService is CrashLooping for a reason that has nothing to do with e-signatures: it rebuilt against a shared library whose DepartmentService had grown a Mailb...

KamoΒ·1mo ago
FixESigService

The expiry sweep ran with no transaction

@Transactional is applied by a proxy and sweep() called expireDue() on this, so the annotation was inert. The expiry notices read the envelope's organization do...

KamoΒ·1mo ago
FixESigService

Close out the signing lifecycle β€” notices, routing, guards, expiry

Everything after a signer presses Finish was incomplete. Notices: an envelope's last signature produced a flattened PDF in MinIO that only the final signer eve...

KamoΒ·1mo ago
August 6, 2026
ChoreESigService

Rebuild for the unified imaging bucket

Picks up kamo-shared-library 3045cc3: ImageAssocType.getBucket() now returns the single "imaging" bucket for every association, so a deduplicated file is stored...

KamoΒ·1mo ago
FixESigService

Put memberId on RecipientSummary, and stop the IP check DNS-resolving

A caller that acts on a recipient's status has to be able to establish WHOSE status it is. DocsService's legal-package Finish writes a WORM attestation on the s...

KamoΒ·1mo ago
FeatureESigService

Staff-authenticated member signing surface at /api/esig/member/**

OTKAuthFilter bypasses only /actuator, /api/esig/public and /api/esig/internal, so this prefix is behind staff OTK auth with orgId/memberId already on the reque...

KamoΒ·1mo ago
RefactorESigService

Sign on (envelopeUid, recipientUid, orgId), not a SignerSession

**************** now take the triple. The public controller keeps resolving it from SIGNSESH, so the signer app is unchanged; a staff-authenticated member surfa...

KamoΒ·1mo ago
FixESigService

Let a send under-fill a template's signer slots, keep rejecting over-fill

The signer-count check added last round demanded an EXACT match against the template's declared slots, which would have silently stopped mortgage disclosures go...

KamoΒ·1mo ago
FixESigService

Complete delegated envelopes, and reject a bad signer count before sending

envelopeComplete required a literal SIGNED from every recipient, but delegate() leaves the delegator DELEGATED forever and ADDS the replacement instead of subst...

KamoΒ·1mo ago
FixESigService

Scope a decoder to the recipient who decoderd

Any single recipient declining set the whole envelope DEcoderD, so a counter-signer could destroy signatures the other parties had already given, with no recove...

KamoΒ·1mo ago
FeatureESigService

Allow a sender to suppress the per-envelope invite email

Creating an envelope unconditionally emailed an invite, so a caller batching many envelopes behind one notification had no way to stay quiet. Null preserves the...

KamoΒ·1mo ago
FixESigService

Enforce required fields on the server, not just in the browser

submit() validated only consent and step-up; it accepted an empty values list and still marked the recipient SIGNED. Ports validation.ts (esign-core), including...

KamoΒ·1mo ago
FixESigService

Bind every recipient to a template signer slot

No caller supplied signerUid, so recipients were created without one. buildSession filters a signer's fields by signerUid, so myFields came back empty, completi...

KamoΒ·1mo ago
FeatureESigService

Apply page operations and modifiers to the signed document

The designer has always offered page rotate, delete, reorder and add-blank, plus watermark, page-number and label modifiers, and the flatten read none of it: it...

KamoΒ·1mo ago
ChoreESigService

Stop tracking build output

target/ was committed here, alone among the Java services β€” every other one ignores it. Compiled classes and surefire reports churn on every build and can only ...

KamoΒ·1mo ago
August 3, 2026
ChoreESigService

Commit outstanding work in progress

Staged and committed as-is so nothing is left uncommitted in the working tree. 76 files changed, 254 insertions(+)

KamoΒ·1mo ago
FixESigService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

KamoΒ·1mo ago
FeatureESigService

Resolve signer display timezone from member, then org

Signing dates were rendered in whatever zone the client defaulted to, so an envelope expiring 2026-08-03T05:00Z could read "Aug 3" to a Pacific signer for whom ...

KamoΒ·1mo ago
August 2, 2026
ChoreESigService

Gitignore superpowers SDD scratch directory

KamoΒ·1mo ago
FeatureESigService

Emit the signer locale segment in signing links

Extracts the byte-for-byte duplicated buildSignLink into SignLinkBuilder and adds a locale segment sourced from Organization.language, falling back to English f...

KamoΒ·1mo ago
July 17, 2026
FeatureESigService

Internal signed-document download + recipient delegation fields

- GET **************** streams the executed (flattened) PDF for an org-owned envelope (404 until fully signed). - RecipientSummary carries **************** ...

KamoΒ·1mo ago
July 16, 2026
FeatureESigService

Surface recipient decoder reason + internal resend endpoint

- RecipientSummary now carries decoderReason + decoderdAt (persisted by the decoder ceremony but previously omitted from every projection), so a compliance-...

KamoΒ·1mo ago
FeatureESigService

Internal mint-sign-link primitive for first-party signing surfaces

POST **************** re-mints a recipient's access token and RETURNS the signing deep-link (no invite-email round-trip), so the MLOS borrower portal can hand a...

KamoΒ·1mo ago
July 11, 2026
FixESigService

AntPathRequestMatcher β€” immune to multi-servlet contexts

Belt-and-braces with the shared-lib SoapClientOnlyGuard (c4a3b2c): the 891c58c build raced the guard's push into shared-lib main and kept crash-looping on 'more...

KamoΒ·2mo 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