Migrare rimanendo esagonale:aprire la spedizione allo strumento:focus in HexHeadGroup
Chat UI polish - colore primario a tema, emoji all'interno input, rotondo inviare btn, hex stato colori
- Dipartimento schede e chatbox intestazione uso --colore-primario invece di verde hardcoded - Pulsante Emoji picker spostato all'interno del campo di ingresso ...
Miglioramenti del sistema di chat - editing spin, rotazione della maschera esagonale, colori, massimizzare-minimizzare
- Rileva l'editing (backspace/delete) vs digitando in input per attivare la rotazione HexHead all'indietro - Ruotare la maschera di esagonale con il bordo duran...
Non invalidare *** sessione quando corrisponde alla nuova sessione OTK
Il percorso convalidato stava cancellando la sessione *** esistente da Redis prima di cercare OTK. Quando OTK ha indicato la stessa sessione, la ricerca fallire...
Accettare *** da query param per cross-subdomain WebSocket auth
****** ID da ***= parametro query in primo luogo, cadendo indietro a cookie. Questo permette al frontend su internal.kamocrm.com di autenticare Collegamenti Web...
Passo *** ID come param query per cross-subdomain WebSocket auth
Invece di affidarsi a cookie cross-domain (che non funzionano attraverso sottodomini), leggere il *** cookie client-side e passarlo come una query parametro qua...
Impostare *** dominio cookie su .kamocrm.com per la condivisione cross-subdomain
Cookie è stato impostato senza dominio esplicito, impedendo che venga inviato a media.kamocrm.com per l'autenticazione WebSocket.
Impostare *** dominio cookie su .kamocrm.com per la condivisione cross-subdomain
Il cookie *** è stato impostato senza un dominio esplicito, predefinito per interno.kamocrm.com. Ciò ha impedito che il cookie venisse inviato a media.kamocrm.c...
Maniglia stale NATS vincolante del consumatore con un'unica riprovazione del consumatore
- Estrarre il gestore del messaggio in creareNatsMessageHandler() metodo - Aggiungere la logica di retry con il nome di consumatore unico quando "Consumer già l...
Risolvere messaggi di chat, monitoraggio della presenza e problemi auto-aperti
- Fissare i messaggi che non vengono ricevuti riprovando l'abbonamento NATS con unico nome del consumatore quando si verifica l'errore "Consumer già bound" - Fi...
Risolvere l'errore di tipo delle icone MUI e condividere la connessione STOMP WebSocket singola
- Aggiungi i percorsi tsconfig override per @mui/icons-material per bypassare ESM rotto esportazioni in v7.3.1 tale punto al non esistente ./esm/index.d.ts - Cr...
Utilizzare ref per membroPanelApri in openChat per evitare la chiusura stala
Quando un utente apre il pannello membro, clicca un membro per chattare, quindi chiude il pannello prima che la sessione asincrona chiamata API, la finestra di ...
Remove forced WebSocket headers from media middleware
Traefik v3 handles WebSocket Upgrade/Connection headers natively. Remove forced headers that broke non-WebSocket API requests.
Route MediaService traffico attraverso Traefik sul porto 443
- Aggiungi MEDIASERVICE URL inv var per l'accesso al servizio interno a cluster - Fissare getMediaServiceBaseUrl in 9 percorsi API per usare env var prima - Web...
Route WebSocket attraverso Traefik sul porto 443
- service.yaml: fissare la porta 80→8443 per abbinare la porta reale di ascolto di pod - ingressroute.yaml: schema di utilizzo https + porta 8443 per backend - ...
Rendere i fagioli commerciali condizionali sulla disponibilità del repository
Aggiunta a Engagement ciclo di vita e CommerceService in modo che carichino solo quando i repository di commercio sono scansionato. Previene insoddisfattaDepend...
Add system account to all NATS configs
Add $SYS account with admin credentials to k0m1, k1m1, and k2m1 NATS configs. Enables nats CLI cluster management operations (peer removal, step-down, etc.) for...
Utilizzare DNS interno cluster per la connessione NATS
Modificare l'URL NATS predefinito da WireGuard IPs (100.64.x.x) a nats.kamo.svc.cluster.local per il server locale. Nodi remoti (k0m1, k2m1) rimangono sugli IP ...
Consentire l'avvio dell'app quando NATS non è disponibile
Rimuovere @ConditionalOnBean da jetStream() e aggiungere @Nullable al Parametro di connessione. Quando natsConnection() restituisce null (NATS non raggiungibile...
Riordinare le schede statistiche per corrispondenza ordine scheda
Comunicazioni → Docs → Attività aperte → Storia
Rimuovi layout.tsx, fix docCount/historyCount errori tipo
- Elimina layout.tsx che è stato aggiunto in modo errato (potrebbe influenzare l'intero sito) - Revert page.tsx wrapper div (non necessario) - Spostare lo sfond...
Utilizzare il timeout di sessione per utente per *** cookie maxAge su validate
Aggiorna i nomi dei campi del fornitore di PipelineOrdersTab per abbinare i DTO di backend
Cambiato v.uid → v.id, v.name → v.companyName, e selezionato tipoVendorId dal numero alla stringa per allineare con CommerceMarketVendor DTO.
Allineare i tipi TypeScript con DTO backend per i mercati di commercio
The CommerceMarket, CommerceMarketVendor, e VendorCategory TypeScript interfacce usate nomi di campo errati (uid/name vs id/title, name vs companyName, sito web...
Mercati Pipeline non carico e layout del gestore di mercato spaziatura
Pipeline mostrava "Nessun mercato di commercio configurato" perché getPOSConfig() mai restituito il campo dei mercati. Ora fetches mercati da commercioMarketApi...
Risolvere 'u.map non è una funzione' sulle impostazioni POS e aggiornare Commerce nav
- Aggiungere l'estrazione di matrice difensiva in commercioMarketApi (getMarkets, ottenereVendorCategories, ottenereMarketVendors, semeVendorCategories) per ges...
Risolvere il conflitto dinamico di rotta Next.js ('id' vs 'market Id')
Unisci [marketId] directory in [id] per le rotte API di commercio-mercati. Next.js richiede tutti i segmenti dinamici allo stesso livello di percorso per utiliz...
Risolvere errori TypeScript nelle schede pipeline aziendali
- Fare il parametro colonne toCSV opzionale con auto-rilevamento da chiavi oggetto - Fix downloadBlob chiamata in ProcurementTab (conto arg sbagliato, wrapper B...
Passare i mercati prop a cruscotto, impegni e componenti di azioni rapide
Remove duplicate session timeout fields from session types
Aligns with SecurityService change that removes createdAt/expiresIn from Redis session records and tokenExpiration from session info responses. - user-info/rou...
Remove duplicate session timeout system from Redis records
Session expiry is now managed solely by the Redis key TTL. The internal createdAt/expiresIn fields stored inside the Redis value have been removed — they formed...
Update internal layout and styles
- Make main wrapper background transparent so home page fixed background is not covered - Include latest adjustments to automation, security access, and account...
Handle optional effectiveDate and processedAt in DateTimeDisplay
Type error: string | undefined not assignable to string | number | Date. Add null checks before passing to DateTimeDisplay, show em-dash when absent.
Align Commerce submenu with actual Commerce page tabs
- Rename Domain Configuration to Engagement Types - Add Rental Assets, Vendors, Subscription Plans - Update tab param to engagement-types for consistency - Labe...
Advanced datagrids fill 100% of content area
- SettingsView: tab content wrapper overflow hidden, motion.div flex chain so tab content gets bounded height and grids can expand. - PipelineRentalAssetsTab:...
Resilient probes so cluster stays up when one node is offline
- Liveness: tcpSocket on 4222 (do not depend on JetStream meta leader) - Readiness: initialDelay 90s, period 15s, failureThreshold 10 so k0m1+k1m1 can form qu...
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.