Remove all 14-day trial references from pricing and offer pages
Trial removed from Starter and Business plans. Free plan serves as the try-before-you-buy experience. Updated CTA buttons ("Get Started"), FAQ, footer text, off...
Remove 14-day trial from Starter and Business plans
Free plan serves as the trial experience — no need for separate trial periods on paid plans.
Convert /pricing page from hardcoded data to live API-driven catalog
- Split pricing page into server component (data fetching) and client component (interactive UI with animations, toggles, FAQ) - Add pricing-catalog.ts utilit...
Refactor API Access UI with granular scope toggles per key
Rename "Public Chat API Keys" to "Organization API Keys". Add scope management with toggle switches per key (PUBLIC_CHAT, SUBSCRIPTION_CATALOG). Scopes shown as...
Support internal service auth for subscription catalog and promotions endpoints
Add X-Internal-Auth + X-Public-Chat-Org-Id header validation so APIService can proxy public catalog requests to the subscription endpoints. Session auth still w...
Add scopes column to PublicChatApiKey and ApiKeyScope enum
Adds a JSONB scopes column to the API key entity with default value ["PUBLIC_CHAT"]. New ApiKeyScope enum defines available scopes: PUBLIC_CHAT and SUBSCRIPTION...
Add polished MatrixCell component for feature matrix editing
New reusable MatrixCell component with modern, animated micro-interactions: Read mode: - Circular icon badges (green check / gray X) for booleans - Colored pil...
Add Edit Matrix button to toggle between read and edit modes
The matrix now starts in read-only view mode. Clicking "Edit Matrix" switches to inline edit mode with checkboxes, switches, and text inputs. Cancel reverts cha...
Redesign Features tab with tabbed layout and production-grade matrix
- Fix planFeatures API response key mismatch (subscriptionPlanFeatures -> planFeatures) - Split Features into two views via internal tabs: 1. Categories & Fea...
Parse JSONB string fields before array operations in grid renderers
compatiblePlanIds, includedInPlanIds, and applicablePlanIds come from the backend as JSON strings, not arrays. Added safe JSON.parse fallback in cell renderers ...
Remove mock subscription data from DataLoader
Remove loadMockSubscriptionData (BASIC/PRO/ENTERPRISE fake plans) from loadMockPOSData. All subscription data for KamoCRM is now exclusively managed by KamoCRMP...
Align API response keys with backend and fix AG Grid rendering
- Fix 7 response key mismatches in posApi.ts (featureCategories, features, addOns, bundles, volumeDiscounts, promotions, agreementTemplates) - Switch all AG G...
Use docker/login-action + buildx for reliable registry auth
Replace bare docker login/build/push with the docker/login-action@v3, docker/setup-buildx-action@v3, and docker/build-push-action@v5 pattern that handles creden...
KamoCRMPricingLoader looks up org by titleShort and runs from DataLoader.run()
Add KamoCRMPricingLoader with full marketing pricing model
Preloads the complete KamoCRM subscription pricing structure into the KamoCRM organization, mirroring the /pricing page on kamo-marketing: - 4 plans: Free, Sta...
Update seed data to use new subscription plan DTO fields
Replace deprecated **************** with planType, maxSeats, and description in DataLoader subscription plan seed data.
Align POSController subscription endpoints with SubscriptionService signatures
Enterprise subscription POS system - complete frontend rebuild
- Extended posApi.ts with 70+ subscription API methods and 28 new TypeScript interfaces - Added useSubscriptionPermissions hook for granular permission-based re...
Hide 30% promo banner on calculator, show dynamically when discount code applied
Add subscription DTOs, SubscriptionService, and fix legacy CommerceService
38 new DTOs for plan config, orders, subscriptions, invoices, promotions, and agreements. 2000+ line SubscriptionService with full business logic for plan manag...
Add subscription API endpoints to POSController (50+ endpoints)
Add complete enterprise subscription management endpoints covering plans, prices, features, add-ons, bundles, volume discounts, catalog, orders, subscriptions, ...
Add complete subscription commerce entity model with 24 entities and repositories
Add complete subscription commerce entity model
24 JPA entities, 12 enums, 21 repositories, and 20 new permission rights for the enterprise subscription POS system. Includes plan configuration (plans, prices,...
Add POS (Commerce) to settings navigation menus
POS app was missing from settings sidebar and FeaturesManager route map, so enabling it from Apps & Features had no effect on navigation.
Mobile chat is minimized by default, opens fullscreen with no in-between
On mobile (<640px): always starts minimized regardless of first visit. Tapping the tab opens fullscreen. Minimize returns to tab. No 70vh intermediate state — j...
Raise z-index above nav, add mobile bottom sheet, update welcome message
- Bumps widget z-index to 10002 (nav is 10001) so maximized mode isn't hidden - Mobile: renders as a 70vh bottom sheet with drag indicator and rounded top cor...
Remove unreachable minimized state check to resolve TypeScript narrowing error
Wrap PublicChatWidget in client component to resolve ssr:false in Server Component error
Next.js 16 disallows dynamic() with ssr:false in Server Components. Adds PublicChatLoader as a client component wrapper.
Set PUBLIC_CHAT_API_KEY and API_SERVICE_URL in K8s configmap
Configures the public chat API key and internal API service URL for the chat widget to communicate with backend services in production.
Integrate public chat key management into existing API Access tab
Rewrites APIManager.tsx with real backend calls to /api/public-chat-keys (backed by MediaService). Removes the separate PublicChatKeyManager tab and all nav ref...
Route public chat key API calls to MediaService instead of SecurityService
Changes proxy path from /api/security/public-chat-keys to /api/media/public-chat-keys to match the actual backend controller location in MediaService.
Add /api/media/** route mapping to MediaService for public chat key management
Add ***-authenticated API key management endpoints for public chat
Adds /api/media/public-chat-keys CRUD endpoints for managing PublicChatApiKey shown once at creation. Uses same *** auth pattern as SupportController.
Trigger rebuild with updated shared library (PublicChatVisitor @MapsId fix)
Trigger rebuild with updated shared library (PublicChatVisitor @MapsId fix)
Use @MapsId pattern for PublicChatVisitor to resolve IdClass error
Switches from @OneToOne-as-@Id to @MapsId with explicit String sessionGuid field. Fixes Hibernate "does not define an IdClass" error at startup. Repository ID t...
Add missing Member import and fix createMember call in DataLoader
Adds missing import for Member class and replaces non-existent memberService.createMember() with memberRepository.save() for the website-contact system member c...
Add hybrid popup chat widget with AI Chat and Live Support modes
Adds a production-quality chat widget that auto-opens for new visitors with two modes: AI Chat (REST-based with RAG integration) and Live Support (WebSocket rea...
Add public chat API key management to security settings
Adds PublicChatKeyManager tab under Settings > Security for creating and managing public chat API keys. Keys are shown once at creation, stored hashed, and supp...
Add public AI chat endpoints with RAG integration for anonymous visitors
Adds /api/ai/public/sessions endpoints for anonymous AI chat on marketing sites. Bypasses OTK auth filter for public paths. Uses public-facing system prompt and...
Add public chat support endpoints with anonymous visitor sessions and WebSocket auth
Adds REST endpoints for public chat session creation, messaging, and visitor management. Includes PublicChatWebSocketInterceptor for token-based WebSocket auth ...
Add public chat gateway with API key validation, rate limiting, and WebSocket proxy
Adds public chat endpoints at /api/public-chat/** for anonymous website chat. Includes API key validation (SHA-256 hashed, Redis-cached), per-key and per-IP rat...
Add PublicChatVisitor and PublicChatApiKey entities for public chat widget
Adds entities, repositories, and DTOs to support anonymous public chat sessions on marketing sites. PublicChatVisitor captures visitor context (headers, IP, nam...
Default contact form to Unspecified topic and link footer email icon to contact page
Replace all email addresses with contact form links and add support ticket submission
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.