KamoCRM

Live Change Log

Ogni funzione, correzione e miglioramento, postato come navi. Niente è tenuto indietro per un lancio.

17,494
Variazioni totali
5,983
Caratteristiche
5,282
Fissazioni
30
Progetti
Filtra per progetto
Tutti i progetti17,494AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices738MCPGatewayService248MediaService602RAGService79SecurityService1,846TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filtra per tipo
Tutti i tipiBuild16CI523Chore773Docs3,254Feature5,983Fix5,282Other994Performance165Refactor278Revert23Style42Test160Upgrade1
April 19, 2026
FixEmailService

Update EMAIL_VERIFICATION sample vars to match current template

Use expiryText instead of expiryMinutes (renamed variable), and update verifyLink to point to the register subdomain (correct send path).

Kamo·6mo ago
Fixkamo-internal

Prevenire doppio-wrapping di full-document bodyHtml in block designer

Quando bodyBlocks è null e bodyHtml è un documento completo <!DOCTYPE html> (ad esempio, modelli di seme canonico), importandolo come un singolo blocco causato ...

kamo·6mo ago
FeatureSecurityService

Pass human-readable expiry time to email verification template

Add humanizeMinutes() helper that formats minutes as days/hours/minutes (e.g. "1 day" for 1440 min). Pass as {{expiryText}} to match updated canonical template ...

Kamo·6mo ago
Featurekamo-shared-library

Migliorare il modello di verifica e-mail — URL fallback, testo di scadenza, soggetto

- Aggiungi il link di verifica del testo semplice qui sotto pulsante come copia-paste fallback - Cambiare la variabile di scadenza da {{expiryMinutes}} a {{expi...

Kamo·6mo ago
Fixkamo-register

Ripristinare il layout della pagina di verifica mediante lo zero delle dimensioni di input nascoste

MUI Box interpreta i valori numerici di larghezza/altezza 0–1 in percentuale, quindi larghezza:1 ha fatto coprire l'ingresso nascosto la scheda completa. Cambia...

Kamo·6mo ago
April 18, 2026
FixEmailService

Preserve DB domain case in NoReply from address

Removed toLowerCase() — the domain already comes from resolvePrimaryDomain which reads org_domains from the database, so case is canonical from DB.

Kamo·6mo ago
Featurekamo-internal

Serializzare l'HTML completo dell'email con il frame esterno sul modello salva

- serializzareFullEmailHtml avvolge i blocchi interni nella cornice esterna di marca (Testo logo, titolo/sottotitolo, area contenuti, logo piè di pagina + nome ...

kamo·6mo ago
Stylekamo-shared-library

Aggiungi cornice esterna di marca a modello canonico di e-mail-verificazione

Avvolge contenuti interni con una shell e-mail corretta: intestazione con nome org, area di contenuto imbottita, e piè di pagina. Utilizza {{orgName}} come iden...

Kamo·6mo ago
FeatureSecurityService

Add code-based email verification path to /verify-email endpoint

The endpoint now handles both token (link click) and userId+code (manual 6-digit entry). Token path unchanged; code path hashes the supplied code and matches ag...

Kamo·6mo ago
Fixkamo-register

Token link auto-verifica e reindirizza a login; aggiungere codice focus indicatore

- /verification?token=xxx ora chiama verificareEmailByToken sul supporto e reindirizza a login sul successo; torna alla voce del codice sul fallimento - La case...

Kamo·6mo ago
Fixkamo-register

Ascensore *** widget sopra il overlay click-to-focus (z-index)

L'overlay (posizione:absolute, z-index:0) copre il Capcha widget perché è apparso in seguito in ordine DOM. Aggiungere z-index:1 al *** contenitore permette agl...

Kamo·6mo ago
FixKlusterServices

Remove nonexistent postfix-lmdb package, install lmdb library instead

postfix-lmdb is not a valid Alpine package; lmdb support is built into the base postfix package. The pod was CrashLoopBackOff due to apk failure.

Kamo·6mo ago
FeatureKlusterServices

Add weekly image prune and journal vacuum CronJob for k1m1

CronJob runs every Sunday 3am, privileged, pinned to k1m1. - crictl rmi --prune removes unused container images - nsenter journal vacuum enforces 500MB cap - CI...

Kamo·6mo ago
FeatureKlusterServices

Add Docs deploy step to workflow

Kamo·6mo ago
FixKlusterServices

Fix Docs image registry, add Recreate strategy to coturn/postfix, increase qdrant memory

- Docs: fix wrong image registry (redis.kamo.svc... → **************** add Recreate strategy - coturn: add Recreate strategy to prevent rolling update port conf...

Kamo·6mo ago
Refactorkamo-internal

Intestazione redattore compatto — rimuovere grandi titolo / tag, spostare le azioni in riga nav

Rimuove la carta di intestazione appiccicosa (titolo, sottotitolo, Salva/Cancella/Anteprima pulsanti, Modifica/Anteprima scheda barra) da EmailTemplateEdit per ...

kamo·6mo ago
Featurekamo-register

Richiedere *** nella pagina di verifica prima di ogni tentativo di verifica/rimanda

*** viene resettato dopo ogni azione (successo o fallimento) in modo da un fresco risolvere è richiesto per ogni tentativo successivo.

Kamo·6mo ago
FixKlusterServices

Switch Postfix sasl_passwd from hash to lmdb format

Alpine postfix build does not include hash support — postmap and smtp_sasl_password_maps were silently failing, deferring every outbound relay attempt through s...

Kamo·6mo ago
Fixkamo-register

Reindirizzare a /verificazione dopo la registrazione invece di rendere inline

Mantiene l'URL accurato — mostra del browser /verificazione non /member.

Kamo·6mo ago
FixEmailService

Resolve root domain for NoReply from-address instead of bare subdomain

resolvePrimaryDomain() was returning the first domain entry (e.g. "www") which produced NoReply@www. Now prefers root domains (parent == null) so transactional ...

Kamo·6mo ago
FixSecurityService

Populate all EMAIL_VERIFICATION template variables

Was sending only {token, code} — template also needs orgName, firstName, verifyLink, and expiryMinutes. Load org and user to build the full vars map, and resolv...

Kamo·6mo ago
FixEmailService

Add internal.auth.secret to EmailService configmap

InternalAuthFilter was rejecting all service-to-service calls (send, seed-org) with 503 because internal.auth.secret was unconfigured. Matches the same INTERNAL...

Kamo·6mo ago
Refactorkamo-login

Reindirizza EMAIL NOT VERIFIED per registrare/resend-verification

Rimuove la inline EmailVerifyCard dalla pagina di login e tutti i relativi State/callbacks. Su EMAIL NOT VERIFIED, l'utente è ora inoltrato E' il posto giusto. ...

Kamo·6mo ago
Featurekamo-register

Aggiungi /resend-verification pagina per reindirizzare il login

Crea un percorso standalone /resend-verification che accetta ?email e ?userId query params, riutilizzando PostCompletionScreen per una coerente verifica e-mail ...

Kamo·6mo ago
FixEmailService

Allow transactional send on port-25 relay and auto-seed missing templates

Port-25 SMTP (postfix) requires no auth — transactionalCredentials() was throwing ProviderUnavailableException when user/pass were unconfigured, blocking all ve...

Kamo·6mo ago
FixSecurityService

Use subdomain-aware SQL to match findByDomain JPQL logic

Org domain lookup in resendVerification was doing an exact-match query that failed for subdomains stored as child records (e.g. 'api' with parent 'kamocrm.com')...

Kamo·6mo ago
Fixkamo-login

Impostare Host/X-Forwarded-Host così APIService risolve il corretto org

APIService sovrascrive X-Forwarded-Host con request.getServerName(), che legge dall'intestazione Host. Senza un intestazione Host esplicita il servizio interno ...

Kamo·6mo ago
FixSecurityService

Correct EmailService URL port in configmap (4203 -> 80)

EmailService K8s service exposes port 80, not 4203. Verification emails were timing out on every registration attempt.

Kamo·6mo ago
Featurekamo-register

Riprogettare la schermata di verifica dell'e-mail + correggere l'errore di email del risend

- PostCompletionScreen: layout a pagina intera con sfondo org animato, carta di vetro morfismo, logo, caselle di codice visive a 6 cifre, successo / stati verif...

Kamo·6mo ago
FixSecurityService

Bypass JPA org lookup to avoid Hibernate cascade flush error

**************** triggers **************** which causes a Hibernate auto-flush. That flush fails because Organization.features was previously replaced with a pl...

Kamo·6mo ago
Refactorkamo-shared-library

Rimuovere il carico di funzionalità impaziente da getOrganizationByDomain

Le caratteristiche sono una preoccupazione di livello org non correlata alla maggior parte dei chiamanti di questo metodo (ad esempio registrazione, risoluzione...

Kamo·6mo ago
Fixkamo-shared-library

Mutate presenta la collezione in loco per evitare cascade orfano Errore di ritorno

Calling org.setFeatures (newList) sostituisce il persistente tracciato dall'ibernato raccolta, causando JpaSystemException quando qualsiasi query attiva automat...

Kamo·6mo ago
FixSecurityService

Use getReferenceById to avoid cascade orphanRemoval flush error on registration

Loading Organization via findById inside @Transactional caused Hibernate to detect the features collection was de-referenced during auto-flush, throwing JpaSyst...

Kamo·6mo ago
Fixkamo-login

Invia la verifica utilizzando e-mail non userId, avanti X-Forwarded-Host

SecurityService /register /resend-verification si aspetta e-mail nel corpo, non userId (che la risposta di errore di login non include mai). Anche in avanti X-F...

Kamo·6mo ago
Featurekamo-register

Abbinamento di avatar kamo-internal — 3 dimensioni, MinIO, passo di caricamento separato

La finestra di dialogo Crop ora produce tre blobs PNG (50/150/350px) tramite tela, identico AvatarManager di kamo-internal. Dopo la registrazione restituisce us...

Kamo·6mo ago
FeatureSecurityService

Add register-photo endpoint for unauthenticated post-registration avatar upload

POST **************** accepts userId + file/fileSm/fileMd/fileLg without a session. Guards: user must be unverified and have no avatar yet, preventing abuse aga...

Kamo·6mo ago
Featurekamo-login

Sostituisci l'errore EMAIL NOT VERIFIED con una ricca scheda di verifica

Quando il login fallisce con EMAIL NOT VERIFIED la carta di accesso è ora sostituita da una schermo lucido "Check your inbox": busta animata SVG con patta di ap...

Kamo·6mo ago
Featurekamo-register

Estendere il caricamento di foto per supportare i formati AVIF e SVG

Aggiunge immagine/avif e immagine/svg+xml all'elenco di accettazione dell'ingresso del file e convalida regex. Aggiorna l'etichetta di suggerimento per elencare...

Kamo·6mo ago
Featurekamo-register

Aggiungi reag-easy-crop photo editor per la fase di upload di registrazione

Specchi il PhotoCropDialog di AvatarManager di kamo-internal: - finestra di dialogo raccolto si apre immediatamente dopo la selezione del file - padella trascin...

Kamo·6mo ago
FixEmailService

Add dao.repositories to JPA scan so EmailTemplateRepository is found

Same pattern as KamoInitializerService — explicit basePackages overrides default scanning and must include every package that has repositories.

Kamo·6mo ago
Fixkamo-register

Passare il corpo di errore a monte tramite proxy di sicurezza invece di un messaggio generico

Precedentemente restituito {error: "Upstream error"} su non-2xx, perdendo il reale messaggio di errore da SecurityService. Ora inoltra il codice di stato e il c...

Kamo·6mo ago
FixSecurityService

Align registration field names and response shape with frontend contract

Frontend sends nameFirst/nameLast but controller read firstName/lastName, causing 400 "First name is required". Success response now returns {status, userId, al...

Kamo·6mo ago
Fixkamo-register

Prevenire stale ageReqType cache da mostrare il controllo dell'età in modo non corretto

- Org route: ridurre Redis TTL da 24h a 5min e aggiungere etàReqTypeMember al rilevamento delle macchie in modo che i campi di sicurezza rimangano freschi dopo ...

Kamo·6mo ago

Come quello che vedi la spedizione?

Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.

Inizia gratis per sempreVisualizza il prezzo