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
FeatureDocsService

A save reaches every colleague with the template open

A save of a template's file told only the member who saved it, so a colleague with the same template open kept placing fields over pages the file had moved on f...

KamoΒ·10h ago
FixDocsService

Sharing a document works again, as someone who can read it

The share dialog sends a document id as a string β€” an img id is an int64 past 2^53, which a JSON number would round β€” and createShare cast it to Number. Every s...

KamoΒ·12h ago
FeatureDocsService

Read a template's layer by design version

The version history draws a template's fields over each version's pages. It asked for them through a document version (/{imgId}/{n}/design), and a template's wo...

KamoΒ·12h ago
FeatureDocsService

Files and templates, edited in place, with the versions each category keeps

A document was two records: the upload, which nothing edited, and one modified copy derived the first time anyone opened it in either editor. The Docs manager s...

KamoΒ·14h ago
September 10, 2026
FixDocsService

Legal, training and careers emails link only to live hosts

- Legal: the org's console (OrgLinkHosts.internalOrigin) and the member page's Legal & Compliance tab. It linked the bare apex, which serves the marketing s...

KamoΒ·20h ago
September 9, 2026
FeatureDocsService

Serve the document categories from the enum that defines them

The docs settings page named its own categories and sent the ordinal it believed each one had. Those ordinals were written when ImageAssocType was six constants...

KamoΒ·1d ago
FixDocsService

A rename answered with no Url skips Docs's rename callback

Docs shares one client-side callback between RenameFile and Save As, and **************** skips its whole body β€” the File_Rename event the embedding page listen...

KamoΒ·1d ago
FixDocsService

Losing the race to store identical content is not a failed save

The look-up before the ImgDat insert is not a lock, and kamowsdocs runs two replicas behind one gateway β€” two documents whose bytes are identical (two members c...

KamoΒ·1d ago
FixDocsService

A Save As that changes format is not the source document's type

uploadDocument refuses an upload whose claimed MIME type disagrees with what it detects from the bytes, and saveAsNewDocument claimed the type of the row it was...

KamoΒ·1d ago
FixDocsService

A Docs save could not store bytes the platform already held

Saving a document twice, and renaming one, both ended in "Document cannot be saved, please check your permissions" β€” and after five retries Docs gave up and dis...

KamoΒ·1d ago
September 6, 2026
FeatureDocsService

Gate the member board on being a team member with a role open

The member Careers tab now appears on two conditions and no right among them: the viewer is a team member, and the organization has at least one posting open an...

KamoΒ·5d ago
September 5, 2026
FeatureDocsService

Retire applying without an account, and notify both sides of one that lands

The public board's Apply button is now a link into registration, so this drops the endpoints behind the old form: /{orgRef}/apply/{uid} in both content types, /...

KamoΒ·5d ago
FixDocsService

Retry the two reads a catalog bump broke document editing with

WopiController.checkFileInfo is called repeatedly through an editing session β€” on open, around locks, after every save β€” so a conflict on its organization looku...

KamoΒ·5d ago
FixDocsService

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Β·5d ago
FixDocsService

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
FeatureDocsService

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
FixDocsService

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
FixDocsService

Three self-invoked transactions that were doing nothing

@Transactional and @Async are PROXIES. A call from inside the same bean never reaches one, so all three of these annotations were inert. Found by audit, not by ...

KamoΒ·6d ago
FeatureDocsService

The CV reader, employee referral links, and the form shape on the public listing

Three things the public careers site needed from this service. The form shape now rides on the public listing (the twelve ask* settings, the additional-info pr...

KamoΒ·1w ago
FeatureDocsService

Apply-first, the job network, alerts, translation and retention

Eight things, all behind the anonymous careers surface, and all sharing the rules the single-org board already enforces rather than growing their own. APPLY-FI...

KamoΒ·1w ago
PerformanceDocsService

The profile endpoint stops loading the whole board

Its own comment said it existed so a page could paint the employer "without pulling every advert down with it", and the line under that comment called board() β€”...

KamoΒ·1w ago
FixDocsService

A country is not its enum name

Every card on every careers surface has been printing "United states" β€” the words after the first lose their capitals when an enum name is prettified β€” and "CΓ΄t...

KamoΒ·1w ago
FeatureDocsService

The anonymous API behind careers.<apex>

The public job board reads this. It is the only surface in Careers with no session, so the safety comes from the QUERY rather than from a rights check: PublicCa...

KamoΒ·1w ago
September 3, 2026
FixDocsService

A REQUIRED resume is now actually enforced

A review of my own commit found the enforcement it claimed. JobApplicationService carried the comment "a REQUIRED resume is enforced at that point by requireRes...

KamoΒ·1w ago
FeatureDocsService

/api/docs/careers β€” job postings, the member board, and applying

Two controllers behind one feature, and the split is the point. /careers/** is HR's and requires MANAGE_JOB_POSTINGS; /careers/member/** is the employee's and r...

KamoΒ·1w ago
September 2, 2026
FeatureDocsService

Fill a rectangle, honour a highlight's opacity, and redact

Three things about the way a prepared document renders the designer's marks. A rectangle was drawn as an outline, so the fill a member now picks to cover somet...

KamoΒ·1w ago
August 27, 2026
ChoreDocsService

Stop ignoring markdown

The "no .md in repos" rule is retired; docs, plans and READMEs are tracked like any other source file.

KamoΒ·2w ago
FixDocsService

A document whose bytes are gone answers 410, not 500

The streaming download caught every storage failure as one unexpected error and returned 500, which tells a reader nothing and leaves a viewer with a blank erro...

KamoΒ·2w ago
BuildDocsService

Rebuild against the storage dedup fix

Picks up kamo-shared-library d21e01ce. uploadDocument created its ImgDat with isMissing=false BEFORE sending the bytes, and its @Transactional did not roll back...

KamoΒ·2w ago
August 25, 2026
ChoreDocsService

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 22, 2026
RefactorDocsService

Open the one modified record, whichever layer asked

getOrCreateClassic and getOrCreateFormFillable collapse into getOrCreateModified: "open this for editing" means the same thing whichever editor asked, and the a...

KamoΒ·2w ago
PerformanceDocsService

Drop hasDesignVersion and its per-row template lookup

Every document list ran an esign_templates lookup for EACH row β€” 100 per page β€” to answer "is this an original that happens to carry a design". That was how the...

KamoΒ·2w ago
TestDocsService

Give the audit test the new constructor argument

Missed in the previous commit, which I pushed off a grep's exit code instead of maven's β€” so a red suite went out as green. The controller gained a ClassicSaveP...

KamoΒ·2w ago
FeatureDocsService

Announce a classic save to the member who made it

A WOPI save on a CLASSIC version now publishes docs.classic-saved.{memberId} so the Kamo PDF editor, if it is open on the form-fillable version, can redraw the ...

KamoΒ·2w ago
FeatureDocsService

Save As branches a new original, not a new copy of one

PutRelativeFile was unimplemented, so "Save As" in the LibreOffice editor did nothing. It now does what the member means by it: the bytes become a brand-new ORI...

KamoΒ·2w ago
FeatureDocsService

Derive modified versions instead of editing originals

Opening a document in the LibreOffice editor no longer hands over the original. It derives that document's CLASSIC version β€” once, reused every time after, and ...

KamoΒ·2w ago
August 21, 2026
FixDocsService

Let an unscoped binder hold its own grid's documents

sameCollection demanded an exact assoc_object_id match in both directions, which made every binder in My Docs refuse every document My Docs was showing it. The ...

KamoΒ·3w ago
FeatureDocsService

Serve and sync the Selected Docs binder

POST /api/docs/binders/scratch fetches the caller's Selected Docs binder for one collection, creating it on first use, and replaces its documents with the grid ...

KamoΒ·3w ago
August 15, 2026
FixDocsService

The document verbs are enforced, as the org's security model resolves them

ImagingController checked ImageAccessLevelType and nothing else, and DocumentController checked only that a session existed. Access level is a real control but ...

KamoΒ·3w ago
August 14, 2026
FeatureDocsService

The outstanding-course badge moves when the course does, not a minute later

The NavTop obligation badge sums two counts β€” packages to sign and courses to take β€” and only one of them was live. The legal half has pushed since its NATS blo...

KamoΒ·3w ago
FixDocsService

Enforce the doc-share alias rights server-side

GET /shares/resolve-alias turns a guessable alias into a real person's NAME and required only a valid session. The rule lived solely in ShareDocumentDialog, and...

KamoΒ·3w ago
FixDocsService

Writing the org legal settings needs BOTH HR rights

The Legal & Compliance settings tab is the only writer and is now offered only to a member holding MANAGE_HRS_SETTINGS *and* MANAGE_LEGAL_AND_COMPLIANCE, so the...

KamoΒ·3w ago
FeatureDocsService

GET/PATCH the org's default legal text

/api/docs/legal/settings, behind the same guarded() funnel as every other mapping on this controller. The read NEVER creates a row: it resolves to LegalDefault...

KamoΒ·3w ago
FixDocsService

Connect DocsService to NATS so the badge lights without a refresh

LegalPendingCountPublisher takes its NATS Connection as required=false and returns quietly when it is null. The shared NatsConfig is **************** and this C...

KamoΒ·4w ago
August 12, 2026
FixDocsService

One snapshot per block, and figures that say what they measure

Both summarize methods are @Transactional(readOnly = true). Each issues six or seven reads whose figures are cross-checked ACROSS query boundaries: countOverdue...

KamoΒ·4w ago
FixDocsService

Fill the per-member overdue rollup instead of sending zero

Both summary services built members[] with .overdue(0). The Overview's matrix branches on that field, so legal and training could only ever render amber or gree...

KamoΒ·4w ago
FixDocsService

Bound the Resources block to count/sum/recent queries

**************** was loading the org's entire non-hidden HR_RESOURCE Img collection into memory to filter trashed, sum bytes and take 5 recent rows in Java β€” un...

KamoΒ·4w ago
FeatureDocsService

Legal, training and resource summary for the HR Overview

One read per tab domain, each block gated on its own right and omitted rather than refused when out of reach.

KamoΒ·4w ago
August 11, 2026
FeatureDocsService

The complete HR Training backend

Course authoring, publishing, assignment, the member player, server-side grading, WORM evidence and the reminder sweep β€” the whole module behind /api/docs/train...

KamoΒ·4w ago
FeatureDocsService

The member-facing Training API

Registers com.kamo.z.shared.hr.training in @EnableJpaRepositories β€” @EntityScan is broad so the entities are found either way, but repositories are not. Two au...

KamoΒ·4w 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