Strumenti comuni per l'importazione di contatti, griglia promozionale, aggiornamento
Aggiungi etichette di disponibilità navtop e stringhe di segreteria softphone
Aggiungi i tasti di stato* dei componenti.navtop attraverso le località in modo che la presenza dell'intestazione a discesa mostra le etichette tradotte. Aggiun...
Resolve STATUS_CONFIG scope errors on POS detail pages
Validate agreement status against STATUS_TRANSITIONS and derive commitment status keys from STATUS_TRANSITIONS so module-level helpers do not reference STATUS_C...
Load org logos from MinIO theme public path like dashboard
Use getThemePublicBaseForDomain so logo URLs match getThemePath()/img/logo.svg instead of legacy /domain/.../kamosite paths that 404 and fell back to initials.
Add missing nav-top strings and scope translations
English messages listed components.navtop.* keys for Mail/Docs/Voip buttons but never defined hi/welcome, branches, account, credits, calendar, chat, etc., so n...
Resolve nav-pri labels showing raw i18n keys
Use namespaced next-intl translators for nav and components.nav.navPri so lookups resolve against the merged message trees; add panel aria strings under navPri;...
Add MessageBrowser i18n strings and restore load error copy
next-intl threw MISSING_MESSAGE for components.messages.browser.* keys missing from en.json, breaking /messages render. Add English strings, use loadMessagesFai...
Creare la registrazione chiave dell'oggetto MinIO come il flusso di immagini
Omettere l'estensione quando FILE EXT è null/empty quindi il nome dell'oggetto corrisponde RecordingImagingService e ImagingController. Java string concat con n...
Annullare il quadrante se il blocco chiamato prima sdk.invite risolve
Stato di gara: hangup() durante la connessione non aveva sessione di terminare ancora (sdk.invite è atteso prima di wireSession), quindi la chiamata collegata c...
Auto-enter nuovo org dopo la creazione così membro atterra con il proprio ruolo e diritti
Dopo la creazione org la sessione è rimasta nel contesto genitore (senza diritti di amministratore), lasciare il nuovo proprietario org in grado di vedere le im...
Consentire la chiamata finale durante la connessione, disabilitare l'assistente AI, rimuovere la scheda di coda
- Pulsante di chiamata finale è ora attivo e rosso durante lo stato di connessione in modo che le chiamate possono essere annullate prima di collegare - Disabil...
Risolvere l'estensione della cronologia delle chiamate da member voip config, non phone extension
E' stato NULL per delle estensioni anche quando... member voip config correttamente mappato il membro alla loro estensione. Utilizzo member voip config (stessa ...
Full touch support for softphone popup on tablets
- Add touch-action: manipulation + WebkitTapHighlightColor to iconBtnStyle so window control buttons (minimize/maximize/close) respond instantly on touch - Ad...
Add go-sql-driver/mysql v1.7.1 checksum to go.sum
go mod tidy without source files is a no-op, so the mysql checksum was never added. Generated the correct h1 hashes via a throwaway golang:1.22-alpine container...
Gestisci stringhe ordinali legacy per CountryType tramite AttributeConverter
Le file DB avevano un paese conservato come interi ordinali (ad esempio "186" per UNITED STATES) invece di nomi enum, causando IllegalArgumentException su findA...
Cancella tradurre i lavori istantaneamente eseguendo tsx in background
Quando Forgejo cancella un flusso di lavoro, bash aspetta qualsiasi bambino di primo piano per finire prima di elaborare il segnale — in modo da un lavoro in es...
Spostare ASTERISK CDR DSN su config.json locale, non segreti CI/CD
Le credenziali CDR sono locali per ogni server FreePBX e non hanno business nella pipeline CI/CD. Gli operatori aggiungono ASTERISK CDR DSN direttamente al loro...
Consentire l'accesso elevato su getDomainById e verifica-dns endpoints
I proprietari di org di livello superiore e i membri del sistema stavano ottenendo 403 su getDomainBy Id e verifica-dns perché quegli endpoint controllati èUser...
Mostrare il dominio org esistente al posto del modulo di iscrizione quando nessun dominio personalizzato
Torna al sottodominio della piattaforma di org come dominio del display in modo da DnsProgressView rende piuttosto che DomainEntryForm quando non esiste un domi...
Surface imaging fallback when provider has no call history
KamoPBXProvider.getCallHistory now returns null instead of throwing **************** so the 501 response no longer bypasses the imaging fallback. The provider c...
Correct account list member/teamMember fallback labels and trigger redeploy
Restore NavPri panel labels and LeadHistory column headers
NavPri: salvage-keys grabbed href URLs as label values and swapped label/description pairs for Accounts, KB, and Notes nav panels. LeadHistoryPanel: MUI bgcolo...
Show platform domain context when no custom domain is set
Surface the active *.kamocrm.com hostname in the domain entry form so users can see their current platform domain instead of a blank entry screen. Also fixes ve...
Checkpoint translations per chunk and per locale on main
Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...
Checkpoint translations per chunk and per locale on main
Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...
Disable Docker BuildKit cache so every pipeline run does a full rebuild
Sets no-cache on both image build steps so npm ci and npm run build always run, even when the source tree is unchanged.
Bust Docker BuildKit cache per commit so npm run build runs every push
Identical checkout trees (e.g. empty commits) reused cached layers and skipped a real Next build. Pass GIT_COMMIT from the workflow and label the image revision...
Suppress grep uscita non-match nella cattura OLD PID per evitare abortire pipefail
Consenti ai proprietari di org di livello superiore e ai membri del sistema di gestire i domini di qualsiasi org
Sincronizza i membri.email quando la casella di posta primaria viene assegnata, modificata o rimossa
Quando una casella di posta è stata assegnata a un membro in un org KAMO MAIL, i membri.email non è mai stato aggiornato, inducendo EmailCredentialService a non...
Prevenire domini radice duplicati e fissare display di dominio primario
ONE DOMAIN PER ORG verifica erroneamente escluso .kamocrm.com web-alias domini, permettendo a un org di accumulare più domini root (e 10 alias ciascuno) riprova...
Serializzare le chiamate dei membri e dei membri PUT per evitare il conflitto CockroachDB
Due scritture concomitanti alla stessa riga `members` causarono una serializzabile conflitto di isolamento — sicurezza dei membri leggere la riga mentre i membr...
Ridurre la latenza della creazione org e correggere i guasti della cascata di traduzione
- OrganizationController: sostituire garantireTeamMembersForAllOrgs (full org scansione della tabella) con garantireTeamMemberForOrg (single org) — elimina il ~...
Widen commit log translations.title to TEXT to match colonna DB
La colonna era VARCHAR(512) sia nell'annotazione che nel DB, causando inserti di traduzione per fallire per lunghi titoli tradotti. La colonna DB è ora STRING (...
Unwrap catalogo e calcolo dalla busta di risposta backend
getSubscriptionCatalog restituito { catalogo: {...} } ma fu lanciato direttamente come AbbonamentoCatalog, lasciando catalog.plans non definito e il piano selez...
Aggiungi @JsonProperty ai campi DTO booleano prefisso
Lombok genera isXxx() is-getters per campi booleani chiamato isXxx. Jackson spoglia il leader 'è' da is-getters e serializzarli come 'xxx' piuttosto che 'isXxx'...
Utilizzare ss invece di fuser per uccidere stallo port-forward (fusatore non su k0m1)
fuser e lsof non sono installati sul runner host. Utilizzare ss -tlnp con grep per estrarre il PID tenendo la porta 18080 e ucciderlo direttamente. Anche passar...
Pulire la stale port-forward così cancellato tradurre il lavoro non blocca la prossima corsa
Bash non inoltra i segnali ai processi di sfondo, quindi kubectl port-forward outlived cancellata flusso di lavoro e ha tenuto il porto 18080, bloccando ogni su...
Ripristinare tutti i valori segnaposto rotti su pagine
Lo script Salvage-keys aveva afferrato la classe CSSNames, gli stili in linea, e JS modello letterali invece del testo originale inglese per 114 messaggio chiav...
Ripristina porta titolo eroe pagina e sottotitolo da storia git
eroeTitle era 'Hero Title' (placeholder), eroeSubtitle era 'flex gap-2' (le chiavi salvage afferrarono accidentalmente il nome della classe CSS adiacente). Valo...
Abilitare il pulsante Fine in polling widget.getState() e passare a auto=onload
L'ascoltatore dell'evento Statechange non è stato in grado di attivare in modo affidabile il pulsante Fine dopo la verifica. Due cause principali: 1. La logica...
Includi account di registrazione in elenco org
listForOrg ora restituisce anche i conti i cui abbonamenti mirano al richiesto org — non solo conti direttamente di proprietà di esso. Nel multi-org modello il ...
Aggiungi statusWindow etichette namespace e fissa tutti i segnaposto di impostazione
- Aggiungi le impostazioni. nav sidebar mostra testo reale invece di percorsi chiave - Fix branchTypesLabel formato ICU: \${branchLabel} → {branch} - Fix tr() f...
Abbinare altre finestre utensili dimensioni + schema di colori
- defaultSize e minSize ora 320x650, resizable: false (matches Softphone, Chat, Calculator, SMS, AI Chat) - Passato dal gradiente di ardesia scuro al gradiente ...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
