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...
Add mock commerce market data seeding with vendors
Adds loadMockCommerceMarketData() to DataLoader that creates 7 markets across all 6 commerce types with realistic vendor data under auto-seeded built-in categor...
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
Add market filtering to engagements tab and market awareness to dashboard
Complete procurement tab and wire all enterprise components into vertical section
Complete mortgage pipeline tabs with enterprise features
- Enhanced PipelineApplicationsTab with borrower/property/loan detail dialogs, 10-step status workflow with color-coded chips, vendor assignment via marketId,...
Update pipeline to use market-driven tabs with backward compatibility
Add CommerceMarketManager and update POS settings to Markets & Fields
Add frontend API proxy routes and client for commerce markets system
Modify getPOSConfig to include commerce markets and derive enabled types
Add CommerceMarketService with full CRUD for markets, categories, and vendors
Add DTOs for commerce markets, vendor categories, and market vendors
Add repositories for commerce markets, vendor categories, and market vendors
Add commerce markets implementation plan
36 tasks across 7 chunks covering backend entities, controllers, frontend proxy routes, settings UI, pipeline integration, and enterprise-level tab completion f...
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...
Fix background scrolling issue on home page
- Made main container background transparent to prevent white background from covering fixed background image - Changed background image from fixed attachment t...
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...
Datagrid column sizing + DateTimeDisplay for all dates
- Datagrids: columns fill width with flex/minWidth/maxWidth; one flex column per grid - All pipeline grids use DateTimeDisplay for date columns (agDateColumnFil...
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...
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.
