পরিবর্তনের ইতিহাস
কি খবর?
প্ল্যাটফর্মের প্রতিটি উন্নতি, যখন সে জাহাজে উঠবে।
· DaemonService
Add manual job trigger controller with duplicate execution guard
POST /api/daemon/trigger/{jobName} triggers any Quartz job immediately. Returns 409 if the job is already executing. GET /api/daemon/trigger/status returns running state of all jobs. GeoLiteSyncService now uses AtomicBoolean guard to prevent concurrent runs. Reverted cron back to weekly Sunday 3 AM.
· kamo-internal
Add support page with ticket list, analytics, and settings
· kamo-internal
Add support tool window with ticket creation, chat, and rating
· kamo-internal
Add shared status/priority badges and system message component
· kamo-internal
Remove old help system, add support nav items
Delete app/help/ and app/components/help/ directories. Add SupportButton to NavTop toolbar and Support menu item to NavPri sidebar navigation.
· kamo-internal
Add frontend types and API proxy routes
TypeScript interfaces for all support DTOs and 13 API proxy routes forwarding to MediaService for topics, tickets, and reporting endpoints.
· MediaService
Add support ticket services, REST controllers, and STOMP relay
Implements the MediaService backend for the support ticket system: - SupportTopicService: CRUD for org-scoped support topics - SupportAssignmentService: round-robin (with pessimistic lock), manual pickup, admin assigns - SupportNotificationService: NATS agent notifications - SupportTicketService: ticket lifecycle (create, status, priority, assign, reassign, escalate, rate) - SupportReportingService: overview and agent metrics aggregation - SupportController: REST endpoints for topics and tickets - SupportReportingController: reporting endpoints (MANAGE_SUPPORT required) - SupportStompRelayController: NATS support.agent.* to STOMP relay
· kamo-shared-library
Apt সংগ্রহস্থল এবং DToos সমর্থন করুন
· kamo-shared-library
JPA কর্পোরেশন যোগ করো
· kamo-shared-library
নতুন লাইব্রেরি যোগ করার জন্য কনফিগার করো..
· kamo-internal
Add deep-linking support to notes page via query param
Support /notes?id={noteId} URL pattern so AI chat source links can navigate directly to a specific note. Opens the note in edit view when the page loads with an id parameter.
· AIService
Include clickable source links in RAG context for AI chat
Update RagClient to embed markdown links in the context sent to the AI model. KB articles link to /kb/{guid}, notes link to /notes?id={noteId}. Instructs the model to cite sources with clickable links so users can navigate directly to referenced content.
· kamo-internal
Add AI processing toggle to notes UI
Add aiProcessingEnabled field to Note types and toggle button in NoteEditor toolbar. Members can enable/disable AI processing per note, which controls whether note content is sent to the RAG pipeline for AI chat integration.
· APIService
Route /api/notes to KBService instead of SecurityService
Notes management has been moved from SecurityService to KBService.
· AIService
Pass memberId to RAG for note-aware AI chat
Add extractMemberId to SessionHelper. Update RagClient to send memberId in search requests so RAG returns both org KB articles and the member's own AI-enabled notes. Differentiate KB vs note sources in AI context injection.
· RAGService
Add note embedding support to RAG pipeline
Add NoteEventConsumer for NOTE_EVENTS NATS stream and NoteEmbeddingPipelineService for processing notes. Update Qdrant to store sourceType, memberId, noteId. Search now returns both KB articles and member-specific notes with proper access filtering.
· KBService
Add notes management with RAG integration
Move notes CRUD from SecurityService to KBService. Add note encryption, NATS event publishing for RAG pipeline, and AI processing toggle support. Notes with AI enabled are decrypted and sent to RAGService via NOTE_EVENTS stream.
· InitializerService
Add AI processing column and note embedding records table
Add AI_PROCESSING_ENABLED column to notes table and create NOTE_EMBEDDING_RECORDS table for tracking note RAG vectorization.
· kamo-shared-library
নোটের মধ্যে উপস্থিত তথ্য মুছে ফেলার জন্য AI পুনরায় সহায়তা প্রদর্শন করা হবে
নোট, DTOOs, এবং অনুরোধ অনুযায়ী একটি একটি এক একটি এক Infined ক্ষেত্র সংযুক্ত করুন । অনুসরণ করার উদ্দেশ্যে নোটPutic রেকর্ড ও সংগ্রহস্থল প্রস্তুত করা হবে RG লাইনের মধ্যে ভেক্টর হচ্ছে।.
· kamo-internal
Use sized avatar variants — medium for profiles/emails, small for nav/lists
Add size parameter to fetchMemberAvatar (defaults to 'sm'). Email signatures, email sending, profile headers, posts, comments, and hex heads now request the medium (150x150) variant. NavTop and Interaction Center member list use small (50x50). Avatar Creator SVG avatars pass through unchanged. All areas support both photo and Avatar Creator avatar types.
· SecurityService
Support multi-size photo avatar uploads and crop endpoint
Update uploadPhotoAvatar to accept optional sized variants (fileSm, fileMd, fileLg) stored with suffix naming ({hash}_sm.png, etc). Add PUT /{id}/crop endpoint for re-cropping existing photos. GET endpoints now return url pointing to _sm variant and urlOriginal for the full image. Delete removes all 4 file variants.
· kamo-internal
Add photo crop tool with react-easy-crop and multi-size avatar storage
Replace the old PhotoCropDialog with an interactive crop tool using react-easy-crop. When uploading or editing a photo, users now select a square crop area (with circle guide) and the system generates 4 versions: original, small (50x50), medium (150x150), and large (350x350). Backend URL responses now point to the _sm variant by default so all avatar displays across the project use the optimized small version.
· kamo-internal
Load countries from CountryType enum, add flag icons to geo-blocking
Countries route now proxies to /api/security/countries (CountryType enum) instead of **************** (empty GeoLite table). Adds react-world-flags for country flag display in the Autocomplete dropdown and blocked countries table.
· kamo-internal
Rewrite Access Blocks help tips for clarity
Explains all four sections (whitelist, blacklist, temp blocks, geo-blocking) in plain language. Adds a CIDR range guide with examples showing /32, /24, /16, /8 and what each means in terms of addresses covered. Includes practical tips like whitelisting your own IP first.
· InitializerService
Add RoleRightsSyncRunner to backfill missing role rights
When new RoleRightType entries are added to the enum, existing roles don't have OrgRoleRight entries for them. This runner checks all roles on startup and adds missing entries — GRANTED for admin roles, defaultSetting for others. Safe to re-run, only inserts missing entries.
· kamo-internal
Add access security system frontend
13 API proxy routes, access check module with CIDR matching, proxy.ts enforcement integration. Reworks AccessBlockManager (real API + geo-blocking), creates SystemAccessLogsManager (stats, filters, virtualized log table, detection rules config), reworks AccountActivityTab (real API + admin actions: force logout, lock/unlock, block IP). Updates security page tab from suspicious-behavior to system-access-logs.
· DaemonService
Add GeoLite2 sync job for MaxMind IP-to-location database
Quartz-scheduled job (weekly Sunday 3 AM) that downloads MaxMind GeoLite2-City-CSV, parses IPv4/IPv6 blocks and locations, loads into staging tables, and performs atomic table swap. Includes SHA-256 dedup, zip slip protection, and sync status tracking. Adds *** secret reference to K8s deployment.
· APIService
Add access enforcement filter for IP-based access control
Redis-backed servlet filter that evaluates whitelist/blacklist/temp-block rules on every inbound request. Adds spring-boot-starter-data-redis dependency and Redis config. Fails open if Redis is unavailable.
· SecurityService
Add access security system backend
8 new services (AccessCacheService, GeoLiteService, GeoLiteSyncService, AccessRuleService, GeoBlockService, AccessLogService, DetectionRuleService, SuspiciousDetectionService) and 6 new controllers for IP whitelist/blacklist, geo-blocking, suspicious behavior detection, system access logging, and member security actions. Integrates login/logout event logging into SecurityController. Adds @EnableAsync and geolite/access config.
· InitializerService
Add access security system schema migration
Creates 7 new tables (org_access_rules, org_geo_block_rules, org_suspicious_detection_rules, system_access_logs, geolite_blocks, geolite_locations, geolite_sync_status) plus 2 staging tables for GeoLite shadow-table swap strategy. Includes all indexes and constraints.

তোমার মহাবিশ্ব অপেক্ষা করছে।
মিনিটের মধ্যে বিনামূল্যে শুরু করুন। যখনই আপনি প্রস্তুত হন তখনই পণ্য যোগ করুন - কোন স্থানান্তর নেই, কোন নতুন লগইন নেই।
চিরকালের জন্য বিনামূল্যে — কোন ক্রেডিট কার্ডের প্রয়োজন নেই