Redesign support page and webinar wizard to match account page layout
Both pages now use the same gradient hero header with embedded tab navigation, matching the /account page pattern. The webinar scheduling wizard uses numbered s...
Properly forward multipart FormData and set route handler body size limit
- Revert to parsing FormData and rebuilding for forwarding (fixes MalformedStreamException from raw arrayBuffer forwarding) - Add routeHandlerBodySizeLimit: 5...
Add support dropdown with sections, extract webinar scheduling to dedicated page
Support nav button now has a dropdown arrow and Popover with two sections: "Online Support" (Contact Support, View Active Tickets) and "Training" (Request Webin...
Stream upload body directly to avoid Next.js 10MB body size limit
- Read request as arrayBuffer and forward raw bytes with content-type header instead of parsing FormData (which triggers Next.js body limit) - Add serverActio...
Rename e-signature tabs and reorder to Available Templates, Drafts, Archived
Real-time conversion progress via WebSocket with dual percentages
- Add useConversionWebSocket hook supporting both member and template topics - Create page connects WebSocket before upload, shows live conversion progress fr...
Call SecurityService directly via RKE2 DNS, fix hash computation, add staged upload progress
- All template API routes now call SecurityService directly via internal K8s DNS instead of proxying through APIService - Use computeBlake3/computeSha3256 fro...
Implement e-signature template management UI
- Replace E-Signatures tab placeholder with full template datagrid (AG Grid) with sub-tabs for Pending/Completed/Archived and Create New Template button - Add...
Align field name to isAvailableToChildren and enhance advance booking UI
Fixes 400 Bad Request when creating webinar types by sending isAvailableToChildren to match the Java DTO field name (Lombok generates getIsAvailableToChildren f...
Make webinar settings forms and table fill available content area
Removes maxWidth constraint from the details form so it fills the full width. Makes the types table and its container use flex layout to fill the available heig...
Widen formStrategy state type to string for TypeScript compatibility
The const assertion on WebinarPresenterStrategy made useState infer a literal type, causing a type mismatch with the string prop setter.
Redesign webinar settings from dialog-based to sub-page navigation
Replaces popup dialogs and separate accordion sections with a two-level inline navigation flow: - Level 1: clean webinar types table with click-to-navigate - Le...
Add minimum advance booking field to webinar settings UI
Adds a number input for configuring how far in advance a slot must be to allow reservations, with helper text explaining the field.
Add PUBLIC_WEBINAR scope toggle to API key management UI
Adds the Public Webinar scope option with VideoCall icon to the API Access settings page, allowing admins to enable webinar API access per key.
Add webinar scheduling UI with admin settings and member views
Implements the full webinar frontend in kamo-internal: - WebinarSettingsTab: admin CRUD for webinar types, presenter pools, reminder intervals, availability s...
Pass pre-fetched overview data to StatusResponseTimes to prevent redundant fetch failure
Normalize Quill HTML output for consistent email rendering
Route all email body content through normalizeQuillHtmlForEmail and wrapBodyForEmail before sending, ensuring consistent HTML output whether or not a template i...
Separate support settings from member-level support page into dedicated settings page
- Remove Settings tab from /support page, keeping only Tickets and Analytics - Add sub-tabs to Analytics: Overview and Status & Response Times (moved from setti...
Add dynamic Help & Tips panel and webhook URLs to provider integrations
- CommerceProviderSetup now uses HelpTipsOverrideContext to show contextual help that changes based on the current view (list, selector, or per-provider) - Co...
Download resultSvg directly without any manipulation
The pipeline SVG already has the background removed. Download it as-is.
Strip white background from SVG before download for true transparency
Parses the vectorized SVG and removes full-size white rect/path elements that the vectorizer generates from the original background, producing a genuinely trans...
Download transparent background-removed PNG instead of white-background SVG
The preview shows the background-removed PNG with transparency, but the download was providing the vectorized SVG which bakes the background as white paths. Now...
Add download SVG button to logo vector converter for mid-process export
Send firstName/lastName directly to create account endpoint
Backend now stores contact fields directly on Account — no User lookup needed.
Build complete provider integrations tab for retail e-commerce sync
Add full UI for managing 10 e-commerce provider integrations (Shopify, BigCommerce, WooCommerce, Wix, Ecwid, Squarespace, Magento, Shift4Shop, PrestaShop, OpenC...
Wire New Account button onClick in AccountManager component
The button inside AccountManager had no onClick handler. Added router.push to /account/new and imported useRouter.
Create account page at /account/new with minimal form
Asks only essential fields: first name, last name, email, phone, company, account type, and optional market association. On submit creates account via accountsA...
Add catch-all API route handler for /api/security/account/*
No proxy existed for /customers, /groups, and other new account endpoints. Existing explicit routes (members-subscribers, team-members-contractors) take priorit...
AccountsApi missing /customers path, hide TeamMemberManager internal tabs
- accountsApi was calling /api/security/account instead of /api/security/account/customers for all customer endpoints — fixed all methods to include /customer...
Separate AccountManager from TeamMemberManager on /account page
3 page-level tabs: Clients & Customers, Members, Team Members. - Tab 0: new AccountManager component — standalone, fetches real account data from accountsApi,...
Full account view/manage page at /account/view/[id]
New enterprise account detail page with 6 tabs: - Overview: 4 stat cards (orders, spent, leads, members), account info, contact info, address, recent orders/l...
Add retail pipeline sub-tabs — Customers, Fulfillment, Carts & Drafts
RETAIL verticals in the Pipeline page now have 4 sub-tabs instead of a single Orders view: 1. Orders — existing PipelineOrdersTab (unchanged) 2. Customers — Ag...
Enterprise retail settings UI — 5 new/rewritten market tabs for RETAIL
Product Catalog (rewritten): 4 sub-views — Products table with search/filters, hierarchical Categories tree, Brands management, Attributes with typed values and...
Add ~90 retail API methods and 30+ TypeScript interfaces to commerceApi
Full frontend API coverage for KamoRetail: categories, brands, attributes, variants, images, tags, reviews, customers, addresses, customer groups, tax classes/z...
Correct remaining subscription API paths and remove double header
API paths: getFeatures, updateFeature, deleteFeature now use /subscription-features; getAddOns, updateAddOn, deleteAddOn use /subscription-addons; getBundles, u...
Agreement editor layout — prevent whitespace overflow and content jamming
- Add width: 100% to root flex container - Add minWidth: 0 to right panel and content area to prevent flex overflow - Add overflowWrap/wordBreak to preview HTML...
Migrate all pipeline components from commerceMarketApi to commerceApi
Update 10 files to import directly from commerceApi instead of the deleted commerceMarketApi. Remove the compatibility shim and dead CommerceMarketManager compo...
Restore commerceMarketApi.ts as compatibility re-export from commerceApi
Pipeline components (PipelineOrdersTab, PipelineView, orders detail page, etc.) still import from commerceMarketApi. Re-export needed symbols from commerceApi.
Add enterprise-grade Agreement Templates tab to all market types
Reusable MarketAgreementTemplatesTab added to every commerce market with: - Two-panel layout: template list sidebar + full editor - Commerce-type-specific templ...
Correct API paths, professional page layouts, remove dead code
- Fix frontend API path mismatches: use subscription-features, subscription-addons, subscription-bundles, **************** subscription-plan-prices, subscri...
Promote Features, Add-ons, Bundles to market-level tabs for SUBSCRIPTION markets
Features, add-ons, and bundles are shared market-level resources, not per-plan. - Add Features tab (manage + feature matrix), Add-ons tab, Bundles tab to market...
Unwrap backend response envelopes in all commerceApi single-object methods
Backend wraps responses in { market: {...} }, { product: {...} }, etc. but API client was returning the raw envelope, causing market.id and other properties to ...
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.
