Aggiungere DEFAULT falso alla definizione della colonna email verified
Lo schema migratorio di Hibernate genera ALTER TABLE senza un default, fallire sui tavoli con righe esistenti. colonnaDefinizione lo costringe a includere i fal...
Corretto Pulitura dell'ascoltatore Capcha e reset stato verificato sull'uscita del passo
Resolve duplicate emailTemplateServiceClient bean conflict
**************** and **************** were identical @Components with the same default bean name, causing **************** at startup. Delete the duplicate in r...
Bump kamo-shared-library to 1.4.0
Docker Stage 1 builds kamo-shared-library main (now 1.4.0) and installs it to the local .m2; the service pom still referenced 1.0.0 which Maven could not find, ...
Applicare la correttezza e l'implementazione SP6 correzioni di qualità
C1: utilizzare NEXT PUBLIC H*** SITE KEY env var invece di segnaposto hardcoded C2: cambiare RegisterResponse.userId e tutti i param API dal numero alla stringa...
Address 4 code-review findings in registration and login paths
- Hide raw exception message in /register 500 path; log instead - Fail-closed (503) on email-verified DB check failure in login - verifyEmailToken throws if use...
Append Z to dateCommitted so JS parses it as UTC
LocalDateTime.toString() produces no timezone designator, causing JavaScript's new Date() to treat the UTC value as local time and display timestamps 7-8 hours ...
Convert PT midnight cutoff to UTC for today-count query
Commits are stored in UTC but the cutoff was a naive LocalDateTime in PT, causing yesterday-evening PT commits (00:00–06:59 UTC) to be counted as today.
Rinominare mailboxId→id e providerStatus→status nella risposta della mailbox
Allineare i nomi dei campi con le aspettative di frontend per gli elenchi delle caselle di posta dei membri.
Sostituisci tutte le istanze logo CSS-filter con SVG bianco
Navigazione, SubNavigazione, Footer, SubFoooter e Preloader tutti utilizzati lo stesso filtro rotto luminosità-0 invert pattern. Sostituito con logo-full-white....
Utilizzare il logo SVG bianco nel piè di pagina invece del filtro CSS
Stessa correzione del nav — filtro CSS su img all'interno dello sfondo-filtro è inaffidabile su iOS Safari.
Protezione colore-schema con !importante contro il tema CSS override
DynamicMetaLoader può iniettare CSS remoto che vince la cascata. Aggiunta !importante assicura il colore-schema: il buio non può mai essere superato da fogli di...
Escludere i collegamenti footer e nav da TouchOptimized min-height
TouchOptimized stava impostando minHeight:44px su tutti gli elementi <a> più brevi 44px, compresi i collegamenti nav footer (~20px alto). Questo ha funzionato d...
Utilizzare il logo SVG bianco pre-rendered invece del filtro CSS
Il filtro CSS su img all'interno dello sfondo-filtro non è affidabile su iOS Safari. Generare logo-full-white.svg con tutti i file impostati su #ffffffff e cari...
Lock Tailwind variante modalità dark a base di classe, mai OS media query
Tailwind v4 defaults dark: utilità per rispondere a prefers-color-scheme (preferenze OS). L'override @variant garantisce il buio: le classi si attivano solo qua...
Utilizzare lo stile del filtro in linea sul link del logo per un rendering bianco affidabile
Le classi di filtro a vento su elementi img sono incoerenti tra i browser mobili. Lo stile inline sull'elemento di ancoraggio garantisce luminosità(0) invert(1)...
Force dark color-scheme in modo che il browser non applica mai la modalità di rendering della luce
Cambiare da 'solo luce' a 'dark' in globals.css, generareViewport, e il stile elemento html — questo impedisce al browser di rendere SVGs e UI nativo in modalit...
Evitare il logo da rendering dietro la riga nav su mobile
L'involucro div con il filtro CSS ha creato un nuovo contesto di impilamento in conflitto con lo sfondo-filtro dell'intestazione sui browser mobili, facendo dip...
Risolvere la barra di scorrimento e la clip mobile su JumpToBar e PreviewBanner
- Aggiungi overflowY: nascosto al contenitore interno JumpToBar per evitare la barra di scorrimento verticale - Consentire il contenuto di PreviewBanner per avv...
Sostituire spazio-y-4 con il gap flex in linea su liste di collegamento piè di pagina
Tailwind space-y-4 utilizza:where() (specificity 0) che corre con CSS carico su rinfresco duro causando spaziatura verticale inconsistente. In linea stili sono ...
Set Traefik externalTrafficPolicy=Local to preserve client IP
With the default "Cluster" policy, kube-proxy SNATs external traffic to the node IP before forwarding to Traefik. That caused Traefik to see the node IP as the ...
Aggiungi la richiesta mancanteIntegration i18n key in tutte le localitÃ
Il pulsante "Invia una richiesta" sotto il "Need a custom integration?" CTA Su /integrazioni stava tornando alla chiave cruda. perché la chiave non è stata defi...
Use pg Pool options instead of connection string for geo DB
CockroachDB rejects insecure connections and node-pg can't verify self-signed certs via connection string alone. Parse the URL into Pool options and pass ssl:{r...
L'obiettivo di Backlink su www.kamocrm.com (ospite canonica)
Il componente PoweredByKamo spedito puntando all'apice https://kamocrm.com/ ma l'ospite canonica kamo-marketing è https://www.kamocrm.com/. Aggiornamento di tut...
*** session check, loading spinner, rebrand analytics to Kamo Analytics
Use redis get instead of exists for more reliable *** validation on logout. Replace "Authenticating..." text with an animated spinner on the OTK auth page. Rena...
Copy GeoLite2 database to production image for country detection
The /geo/ directory containing GeoLite2-City.mmdb was built during the builder stage but never copied to the runner stage, so all country/region lookups returne...
Move CSP to proxy.ts instead of middleware.ts to avoid build conflict
Next.js 16 doesn't allow both middleware.ts and proxy.ts. The Docker build copies proxy.ts as the middleware, so add CSP frame-ancestors header there instead. T...
Clean up legacy analytics deployment on each CI run
Delete old analytics deployment, service, and ingressroute that conflict with the kamo-analytics deployment managed by its own CI/CD pipeline.
Use Next.js middleware for CSP so frame-ancestors works at runtime
The standalone build bakes next.config.ts headers at build time, so ALLOWED_FRAME_URLS was always empty. Move CSP to a Next.js middleware that reads the env var...
Strip X-Frame-Options header in iframe-compatible middleware
Set X-Frame-Options to empty string to remove the SAMEORIGIN value that was being inherited, allowing CSP frame-ancestors to control iframe embedding instead.
Read ALLOWED_FRAME_URLS at runtime so CSP frame-ancestors works in standalone mode
The env var was being read at module scope during build, baking an empty value into the standalone server. Move CSP and all header construction into functions c...
Reset document.title in rebrand() when React overwrites it
React re-applies RSC payload after hydration, resetting the title to "analytics". Add a title check inside the MutationObserver callback so it gets corrected ev...
Replace "analytics" text nodes with "Kamo Analytics" instead of clearing
Come quello che vedi la spedizione?
Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.