Use ref for memberPanelOpen in openChat to prevent stale closure
When a user opens the member panel, clicks a member to chat, then closes the panel before the async session API call returns, the chat window was positioned wit...
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 traffic through Traefik on port 443
- Add MEDIASERVICE_URL env var for cluster-internal service access - Fix getMediaServiceBaseUrl in 9 API routes to use env var first - WebSocket hook connects t...
Route WebSocket through Traefik on port 443
- service.yaml: fix port 80→8443 to match pod's actual listen port - ingressroute.yaml: use scheme https + port 8443 for backend - serverstransport.yaml: add in...
Make commerce beans conditional on repository availability
Add **************** to EngagementLifecycle and CommerceService so they only load when commerce repositories are scanned. Prevents UnsatisfiedDependencyExceptio...
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...
Use cluster-internal DNS for NATS connection
Change default NATS URL from WireGuard IPs (100.64.x.x) to nats.kamo.svc.cluster.local for the local server. Remote nodes (k0m1, k2m1) remain on WireGuard IPs.
Allow app startup when NATS is unavailable
Remove @ConditionalOnBean from jetStream() and add @Nullable to the Connection parameter. When natsConnection() returns null (NATS unreachable), Spring no longe...
Reorder stat cards to match tab order
Communications → Docs → Open Tasks → History
Remove layout.tsx, fix docCount/historyCount type errors
- Delete layout.tsx that was incorrectly added (would affect entire site) - Revert page.tsx wrapper div (not needed) - Move gradient background back into LeadVi...
Refactor leads view: fix overflow, replace score with comms card, add layout
- Add layout.tsx with flex constraint chain matching pipeline pattern - Fix overflow bug: use **************** hierarchy instead of 100vh which didn't account...
Redesign leads view page: consolidate layout, remove sidebar and overview tab
- Remove right summary rail column from all screen sizes - Remove Overview tab, merge its content (insights, score, contact) into Details - Consolidate all fiel...
Add sessionTimeoutMinutes to all security DTOs and request objects
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...
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.
