Resolve 'u.map is not a function' on POS settings and update Commerce nav
- Add defensive array extraction in commerceMarketApi (getMarkets, getVendorCategories, getMarketVendors, seedVendorCategories) to handle wrapped API responses ...
Resolve Next.js dynamic route slug conflict ('id' vs 'marketId')
Merge [marketId] directory into [id] for commerce-markets API routes. Next.js requires all dynamic segments at the same path level to use the same parameter nam...
Resolve TypeScript errors in enterprise pipeline tabs
- Make toCSV columns parameter optional with auto-derivation from object keys - Fix downloadBlob call in ProcurementTab (wrong arg count, missing Blob wrapper) ...
Pass markets prop to dashboard, engagements, and quick actions components
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...
Use string IDs for pipeline detail APIs (JS safe integer)
- posApi: getOrder, getMortgageApplication, getEngagementById, getBooking accept number | string, URL uses String(id) - Detail pages: pass route id (string) to ...
Serialize POS DTO uid/id as string in JSON for JS safe integer
- RetailOrderDTO.uid, **************** EngagementDetailDTO.id/linkId, MortgageAppDTO.uid - Use @JsonSerialize(using = ToStringSerializer.class) to avoid precisi...
Restore form controls on settings member tabs - fix flex layout collapse
- TabPanel: keep overflow-y auto for scroll, use overflowX hidden - SettingsView: move scroll to parent Box, motion.div uses display block to size to content - ...
Restore vertical scrollbar and fix collapsed panes on settings pages
- TabPanel: change overflow from hidden to auto for tab content scrolling - SettingsView: enable overflow-y auto on tab content Box and motion.div - ProfileTab:...
Force light mode - prevent OS/browser dark mode from affecting site
- Add force-light-mode-styles.ts with override rules - Inject override in DynamicMetaLoader after external theme CSS loads - Add server-rendered fallback style ...
Use explicit @Query for findByUidAndOrganization_Id to avoid deployment/startup issues with derived query
Null-safe API response handling + shared layout for sub pages
- posApi: add null checks for getOrder, getMortgageApplication, getEngagementById, getBooking, getProduct, getRentalAsset, getRentalRequest, getAgreement, g...
Use relative import for StatsManager to resolve module resolution in build
Add EmbNameFull.formatFull(), fix @Builder warnings, repo method renames
Replace formatFull() with formatEmbNameFull() - EmbNameFull has no formatFull method
Pipeline datagrids collapsed, restructure to match leads layout
- SettingsView: tab content container now uses display:flex, overflow:hidden so flex chain passes height to grids (fixes collapsed grids in POS settings) - Pi...
Enable commerce JPA repos for POSController/CommerceService
SecurityService POSController depends on CommerceService which uses engagement, order, intent, etc. repositories. These live in com.kamo.z.shared.commerce.* but...
Use Uid instead of Id for BaseEntity-derived relations
- FulfillmentOrderRepository: findBySourceCommitmentId -> findBySourceCommitmentUid (Commitment uses uid) - TransactionRepository: findByOrderId -> findByOrderU...
Resolve Map type inference in POS controllers for CI compilation
- Use explicit Map<String, Object> in ResponseEntity Map.of() calls - Fixes 'incompatible types: inference variable V has incompatible bounds' when mixing DTO...
DataLoader IOException import and mock lead assignment FK errors
- Add missing java.io.IOException import for copyJavaEnumsToNextJS - Use saveLead instead of saveLeadWithAssignment for mock data to avoid lead_assignments FK...
Stabilize connection line physics and mouse proximity
- Only apply mouse proximity force after mouse has moved (avoids 0,0 affecting lines on load) - Guard mouse position with Number.isFinite before use - Clamp con...
Unify section title underline and grid for lower sections
- Use var(--color-primary) for CRM, E-Mail, Phone section underlines - Use 3-column grid on lg for E-Mail and Phone (3 cards) for consistent layout
New answer field maintains focus while typing
- Added local state for new answer input (newAnswerValue) - Input no longer triggers array update on each keystroke - Answer is added on blur or when pressing E...
Restore task item selection while keeping line clicks
- SVG container back to pointer-events-none (allows clicks to pass through) - Hit area paths use pointer-events: stroke (only the line itself is clickable) - Vi...
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.
