ข้ามไปยังเนื้อหา
KAMOUniverse

บันทึกการเปลี่ยนแปลง

มีข่าวอะไร

การปรับปรุงทุกอย่างของแพลตฟอร์ม เมื่อมันถูกส่งออกไป

  1. · 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.

  2. · kamo-internal

    Add support page with ticket list, analytics, and settings

  3. · kamo-internal

    Add support tool window with ticket creation, chat, and rating

  4. · kamo-internal

    Add shared status/priority badges and system message component

  5. · 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.

  6. · 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.

  7. · 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

  8. · kamo-shared-library

    เพิ่มค่าชดเชยตั๋ว

  9. · kamo-shared-library

    เพิ่มองค์กรรองรับตั๋ว JPA

  10. · kamo-shared-library

    เพิ่มรายการตั๋วที่รองรับ และสิทธิ์ในการใช้ไลบรารีร่วมกัน

  11. · 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.

  12. · 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.

  13. · 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.

  14. · APIService

    Route /api/notes to KBService instead of SecurityService

    Notes management has been moved from SecurityService to KBService.

  15. · 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.

  16. · 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.

  17. · 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.

  18. · 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.

  19. · kamo-shared-library

    เพิ่มการรองรับการประมวลผล AI ในโมเดลบันทึกข้อมูล

    เพิ่มช่องข้อมูล aniProcessing ennabled ที่ใช้บันทึกย่อ, DTOs และร้องขอ สร้างรายการบันทึกย่อ โน้ตการเคลื่อนที่ของท่อ RAG.

  20. · 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.

  21. · 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.

  22. · 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.

  23. · 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.

  24. · 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.

  25. · 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.

  26. · 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.

  27. · 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.

  28. · 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.

  29. · 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.

  30. · 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.

จักรวาลของคุณกำลังรออยู่

เริ่มฟรีในไม่กี่นาที เพิ่มผลิตภัณฑ์เมื่อคุณพร้อม - ไม่มีการย้าย, ไม่มีการล็อกอินใหม่

ฟรีตลอดกาล — ไม่จำเป็นต้องใช้บัตรเครดิต