Add session timeout waterfall implementation plan
25 tasks across 5 chunks covering Java entity/DTO changes, SecurityService controller updates, Next.js cookie/monitor bug fixes, and UI changes for 4 settings p...
Add session timeout waterfall design spec
Covers per-role/dept/job-title/member session timeout with waterfall resolution, cookie expiration bug fix, and UI changes for 4 settings pages.
Update PipelineOrdersTab vendor field names to match backend DTOs
Changed v.uid → v.id, v.name → v.companyName, and selectedVendorId type from number to string to align with CommerceMarketVendor DTO.
Align TypeScript types with backend DTOs for commerce markets
The CommerceMarket, CommerceMarketVendor, and VendorCategory TypeScript interfaces used wrong field names (uid/name vs id/title, name vs companyName, websiteUrl...
Pipeline markets not loading and market manager layout spacing
Pipeline was showing "No commerce markets configured" because getPOSConfig() never returned the markets field. Now fetches markets from commerceMarketApi direct...
Market-aware POS tabs, pipeline tab fix, settings nav cleanup
Pipeline: Remove engagement-type fallback tabs, show empty state when no markets configured. Markets are now the sole source of pipeline tabs. Settings: Rename...
Add marketId query param to POS endpoints and SQL migrations
Add optional marketId query parameter to GET rental-assets, vendors, and subscription-plans endpoints in POSController. When provided, filters results by market...
Add market_id FK to POS entities and market-filtered repository queries
Add market association (ManyToOne FK to CommerceMarket) to Offering, InventoryItem, RentalAsset, Vendor, and SubscriptionPlan entities. Add findByMarketId queri...
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...
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.
