跳转到内容
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

    添加支持票服务、REST控制器和STOMP中继器

    执行支持票系统的MediaService后端: - 支持TopicService:用于Org范围支持主题的 CRUD - 支持指定服务:圆形robin(带有悲观锁),手动接车,管理员指定 - 支助通知服务:NATS代理通知 - 支持TicketService:售票生命周期(创建、状态、优先级、分配、重新分配、升级、费率) - 支助报告服务:概览和代理计量汇总 - 支助主计长:专题和罚单的REST终点 - 支助报告管理员:报告终点(要求报告) - 支持StompRelay控制器:NATS支持.agent.* 到STOMP中继器

  8. · kamo-shared-library

    添加支持票寄存器和 DTO

  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 处理支持

    向 Note 实体、 DTOs 和请求添加 aiProcessioned 字段。 创建用于跟踪的备忘Embedding记录实体和寄存器 注: 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

    为 MaxMind IP 对位置数据库添加 GeoLite2 同步任务

    下载 MaxMind 的Quartz 排期工作( 每周星期天 3 AM) GeoLite2-City-CSV, 剖析 IPv4/IPv6 个块和位置, 装入 进行原子表交换 包括SHA-256DUP, 拉链滑行保护 同步状态跟踪 添加 *** 秘密提及K8s的部署.

  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.

你们的宇宙正在等待。

只需几分钟即可免费开始。 随时随地添加产品 — — 无需迁移,无需新登录。

永久免费 — — 无需信用卡