yucheng-ou/kaleido-ai
33.6
Weak · 21 September 2026
66.3k
lines of production code
Java
with TypeScript, JavaScript
4
measurements over time
What this system is
Kaleido is a microservices-based platform that provides an administrative dashboard for managing users, roles, and system configurations. It features specialized services for AI-driven recruitment interviews, content recommendations, and digital wardrobe management. The system also handles core infrastructure tasks such as message queuing, distributed locking, and file storage.
How it got here
2025 — Domain-driven refactoring and admin backend expansion
32 changes.
The codebase underwent a significant architectural shift towards domain-driven design, particularly in the user and admin modules, introducing aggregates, repositories, and event-driven processing. Concurrently, the project expanded its feature set with new admin management capabilities, AI agent support, and distributed infrastructure components like SMS and ID generation.
2026 — AI and microservice expansion
45 changes.
This period focused on expanding the platform's capabilities by introducing new microservices for AI-driven interviews, messaging, and recommendations, alongside a comprehensive admin backend for user and permission management. The work also established foundational infrastructure for file storage, message queuing, and distributed task scheduling to support these new features.
Features
AI Interview Service: Configuration, Memory, and Error Handling
The AI interview service now includes configuration for AI services, including a Milvus-based vector store for resume and knowledge base retrieval, Redis-backed chat memory for conversation history, and distinct agents for intent recognition, general chat, and candidate querying. Additionally, a new error code enumeration and exception class have been introduced to standardize error handling for interviews, sessions, questions, answers, evaluations, and AI-related failures.
kaleido-biz/kaleido-interview/src/main/java/com/xiaoo/kaleido/interview/types · high confidence
AI service introduces chat memory configuration, error handling, and a weather tool
The AI service now includes a Spring configuration for chat memory storage using a MongoDB repository, defines a comprehensive set of error codes and a custom exception class for AI-related business errors, and adds a weather tool that returns a static weather description.
kaleido-biz/kaleido-ai/src/main/java/com/xiaoo/kaleido/ai/types · high confidence
Add AOP-based null return validation
A new AOP module has been introduced to automatically validate method return values. By annotating methods with @CheckNullReturn, developers can ensure that null, empty collections, empty arrays, or empty maps trigger a BizException with a configurable error message. The module includes the annotation, an aspect to enforce the checks, and Spring Boot auto-configuration to enable AspectJ proxies.
kaleido-common/kaleido-aop · high confidence
Add BaseCommand class for Dubbo RPC commands
A new base class, BaseCommand, has been introduced in the kaleido-base module. This class implements Serializable and provides a common foundation for all command objects transmitted via Dubbo RPC, including a default validate() method that can be overridden by subclasses.
kaleido-common/kaleido-base/src/main/java/com/xiaoo/kaleido/base/command · high confidence
Add MQ message API and RPC endpoints
Introduced new endpoints for managing MQ-based messages. The HTTP controller at /message/mq exposes GET /{messageId} and /list to retrieve message details and the current user's message list. A corresponding Dubbo RPC service (RpcMqMessageServiceImpl) exposes createMessage, getMessage, listMessagesByUserId, markAsCompleted, and markAsFailed operations, enabling both web and remote service access to MQ message functionality.
kaleido-biz/kaleido-message/src/main/java/com/xiaoo/kaleido/message/trigger · high confidence
Add MQ message persistence infrastructure
The message service's infrastructure layer now includes the data access and repository implementations for MQ messages. This introduces the MqMessagePO entity mapped to the t\_mq\_message table, a MyBatis-based MqMessageDao for database operations, and an MqMessageRepositoryImpl that handles saving, updating, and querying MQ messages by ID, user, topic, and state.
kaleido-biz/kaleido-message/src/main/java/com/xiaoo/kaleido/message/infrastructure · high confidence
Add MinIO integration for file storage
The file service module now integrates with MinIO as a storage backend. This change introduces configuration classes (MinIOConfig, MinIOProperties), an auto-configuration entry point, and a new IMinIOService interface with a MinIOServiceImpl implementation. Users can now upload, download, and manage files in a MinIO bucket via the provided service methods, with connection details (endpoint, access key, secret key, bucket name) configurable via application properties.
kaleido-common/kaleido-file · high confidence
Add RabbitMQ integration for event publishing
The application now supports RabbitMQ as a message broker. A new auto-configuration class registers an \EventPublisher\ bean that wraps a \RabbitTemplate\ to send messages to specified topics. The configuration is wired via Spring Boot's \AutoConfiguration.imports\ file, and connection details (host, port, credentials) are read from environment variables in the \mq.yml\ configuration file.
kaleido-common/kaleido-mq · high confidence
Add annotation-based distributed lock with Redisson
The \kaleido-lock\ module now provides a \@DistributedLock\ annotation that enables declarative distributed locking via Spring AOP. The implementation leverages Redisson to support multiple lock types (reentrant, fair, read/write, and multi-lock) and allows dynamic lock keys using SpEL expressions. Developers can configure wait and lease times, and the system will automatically acquire and release the lock around the annotated method execution.
kaleido-common/kaleido-lock · high confidence
Add annotation-based rate limiting via Redisson sliding window
The kaleido-limiter module now provides a new rate-limiting capability. Developers can apply the new @RateLimit annotation to methods to enforce request limits using a Redisson-backed sliding window. The change introduces a Spring AOP aspect (RateLimitAspect) that intercepts annotated methods, resolves dynamic keys via a new SpEL parser (RateLimitSpelExpressionParser), and checks limits through a new RateLimitService backed by Redisson's RRateLimiter. The feature is auto-configured via Spring Boot's AutoConfiguration.imports, making it available without manual bean setup.
kaleido-common/kaleido-limiter · high confidence
Add base entity model for common fields
A new base entity class has been introduced to provide a standard set of fields for domain models, including a string id, creation and update timestamps, a soft-delete flag, and an optimistic lock version. This serves as a foundational model for other entities in the application.
kaleido-common/kaleido-base/src/main/java/com/xiaoo/kaleido/base/model · high confidence
Add distributed ID generation via Snowflake algorithm
The \kaleido-distribute\ module now provides a distributed ID generation capability using the Snowflake algorithm. A new \SnowflakeUtil\ class exposes a \newSnowflakeId()\ method that generates unique string IDs. The worker ID is dynamically assigned at startup via a \CommandLineRunner\ that increments a Redis counter, ensuring distinct IDs across different service instances.
kaleido-common/kaleido-distribute · high confidence
Added MQ message application layer services
Introduced the application layer for MQ message management, including the MqMessageCommandService for creating and updating message states, the MqMessageQueryService interface and its implementation for retrieving message details and user-specific message lists, and a MessageConvertor for mapping domain aggregates to response objects.
kaleido-biz/kaleido-message/src/main/java/com/xiaoo/kaleido/message/application · high confidence
Added MapStruct converters for admin domain aggregates
New MapStruct-based converters have been introduced in the admin application layer to handle object mapping. Specifically, AdminConvertor, DictConvertor, PermissionConvertor, and RoleConvertor now provide standardized transformations from domain aggregates (such as AdminAggregate, DictAggregate, PermissionAggregate, and RoleAggregate) to their corresponding API response DTOs (e.g., AdminInfoResponse, DictResponse, PermissionInfoResponse, RoleInfoResponse, and RoleTreeResponse). This change simplifies the application layer by centralizing the logic for converting internal domain models into external-facing response objects.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/application/convertor · medium confidence
Added RPC interface documentation styles
The RPC interface documentation now includes a new CSS file (AllInOne.css) that provides comprehensive styling for the generated documentation pages, ensuring consistent visual presentation of the API reference materials.
kaleido-common · high confidence
Added SMS notification service with auto-configuration
A new SMS notification capability has been introduced via the \kaleido-sms\ module. This includes an \SmsService\ that provides a \sendSmsMsg\ method (currently a placeholder for future integration with Alibaba Cloud SMS) and a Spring Boot \SmsAutoConfiguration\ that automatically registers the service. This establishes the foundational infrastructure for sending SMS messages within the application.
kaleido-common/kaleido-sms · high confidence
Added constants and enums for notifications, data status, and user gender
New constant classes and enums have been introduced to support the notification service and user management features. This includes a new DictConstant class defining notice template codes for admin and user SMS verification, a DataStatusEnum for managing enabled/disabled states, and a UserGenderEnum for male and female options.
kaleido-common/kaleido-base/src/main/java/com/xiaoo/kaleido/base/constant · medium confidence
Added database schema files for interview, AI, Seata, and XXL-JOB
The \doc/sql\ directory now includes four new SQL schema files: \interview.sql\ defines tables for candidate and interview records; \kaleido.sql\ contains the full database structure for the Kaleido application, including tables for admin users, AI agents, workflows, and conversations; \seata.sql\ provides the schema for Seata's distributed transaction management; and \xxl-job.sql\ includes the schema for the XXL-JOB scheduling system.
doc/sql · high confidence
Added domain layer for MQ message handling
Introduced the domain layer for the message service, including the MqMessageAggregate entity, MessageState value object, IMqMessageRepository interface, and the IMqMessageDomainService interface with its MqMessageDomainServiceImpl implementation. This provides the core business logic for creating, querying, and updating MQ messages, including state management and validation rules.
kaleido-biz/kaleido-message/src/main/java/com/xiaoo/kaleido/message/domain · high confidence
Added infrastructure for candidate and interview management
The interview module's infrastructure layer now includes persistent storage and data access for candidates and interviews. This adds repository implementations for saving, updating, and querying candidates (by ID, name, status, and skills) and interviews (by ID, candidate, interviewer, and time range), along with the necessary data objects and mappers to support the AI-driven interview scheduling and candidate status updates.
kaleido-biz/kaleido-interview/src/main/java/com/xiaoo/kaleido/interview/infrastructure · high confidence
Added persistence objects for admin, role, and permission management
New database mapping classes have been introduced for the admin, role, and permission domains, enabling the backend to persist and manage administrators, roles, and access permissions. Specifically, AdminPO maps to the t\_admin table to store administrator details such as real name, mobile number, status, and last login time. AdminRolePO and RolePermissionPO serve as join tables for the many-to-many relationships between administrators and roles, and between roles and permissions, respectively. Additionally, RolePO and PermissionPO provide the core entities for managing roles and their associated permissions, including metadata like codes, names, descriptions, and hierarchical structures for permissions. These changes support the underlying data layer for the admin management system.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/infrastructure/dao/po · high confidence
Admin and user authentication endpoints are restructured
The previous generic /auth/register endpoint has been removed and replaced with specialized controllers for distinct user roles. Administrators can now register and log in via /public/admin, while regular users use /public/user. Additionally, a new /public/sms endpoint has been added to handle SMS verification code requests with rate limiting and circuit-breaking protections.
kaleido-auth/src/main/java/com/xiaoo/kaleido/auth/trigger · high confidence
Admin backend authentication and error handling
The admin backend now includes a new application entry point and configures Sa-Token for authentication and authorization. A global exception handler is added to return standardized error responses for permission and role checks, and a new set of error codes is defined for dictionary, configuration, user, and role/permission management.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/types · high confidence
Automatic application name tagging for metrics
The application now automatically attaches an 'application' tag with the Spring application name to all metrics via a new auto-configuration. This ensures consistent identification of metrics across monitoring systems without manual configuration.
kaleido-common/kaleido-monitor · high confidence
Enable dynamic thread pool management via Spring Boot auto-configuration
The application now integrates the DynamicTp library to support dynamic thread pool management. This is enabled by adding a new Spring Boot auto-configuration class that activates the dynamic thread pool features, allowing for runtime adjustments to thread pool parameters without restarting the application.
kaleido-common/kaleido-dynamic-tp · high confidence
Initial release of the AI Interview service
The AI Interview service is introduced as a new Spring Boot application, providing the foundational infrastructure for the interview feature. This change establishes the service entry point, enabling the platform to host and manage AI-driven interview interactions.
kaleido-biz/kaleido-interview/src/main/java/com/xiaoo/kaleido/interview · medium confidence
Initial release of the Tag service with full CRUD and entity association capabilities
The Kaleido Tag service is introduced, enabling users to create, update, and query tags, as well as associate and dissociate entities with tags. The implementation includes a REST API (TagController) and a Dubbo RPC interface (RpcTagServiceImpl) that expose tag management operations. The service enforces business rules such as unique tag names per user and type, and validates that tags are associated with matching entity types. The domain model (TagAggregate, TagRelation) and infrastructure layers (repositories, DAOs, and converters) support these operations, backed by the t\_tag and t\_tag\_relation database tables.
kaleido-biz/kaleido-tag · high confidence
Initial release of the recruitment assistant frontend
The recruitment assistant's front-end application has been introduced, providing a Vue 3 and TypeScript-based interface for the 'Kaleido Recruitment Assistant'. This update adds the core user interface, including a home page with resume upload, knowledge base upload, and an AI chat interface for interacting with the recruitment assistant. The front-end is configured with Tailwind CSS, Vite, and Vue Router, and includes a theme switching capability (light/dark mode) and a proxy setup for API communication.
kaleido-biz/kaleido-interview/src/fronted · high confidence
Initial setup of frontend plugin infrastructure for the admin dashboard
The admin frontend application is initialized with a new plugin architecture that integrates core UI and utility libraries. This includes configuring ECharts for data visualization, Element Plus for UI components and global styles, UnoCSS for styling, and Vue I18n for internationalization support. These changes establish the foundational layers required for the admin interface to render correctly and support multi-language content.
(repo-wide) · high confidence
Initial setup of the Kaleido admin frontend with environment and build configuration
The Kaleido admin frontend is introduced with foundational configuration files. This includes environment-specific settings for development, production, Gitee, and test builds (\.env.\*\ files) that control build flags like mock usage, sourcemaps, and output paths. Browser compatibility is defined in \.browserslistrc\. Build and linting tooling is configured via \.gitignore\, \.prettierignore\, \.stylelintignore\, and \commitlint.config.cjs\. A \Dockerfile.dev\ is added to containerize the development environment using Node 18 and pnpm. Additionally, a comprehensive CSS file (\doc/AllInOne.css\) is included, likely for documentation or styling reference.
kaleido-admin-frontend · high confidence
Initializes the Kaleido AI service with LangChain4j
The Kaleido AI service has been initialized with the LangChain4j framework. This includes the main application entry point, configuration for Nacos-based service discovery and configuration management, and logging setup via Logback. Additionally, the project is configured with Smart-Doc to automatically generate API documentation for the AI service's controllers.
kaleido-biz/kaleido-ai-langchain4j · high confidence
Integration of XXL-Job for distributed task scheduling
The application now supports distributed job scheduling via XXL-Job. A new auto-configuration class registers the XXL-Job Spring executor, which is conditionally enabled when the 'xxl.job.enable' property is set to true. This allows the system to connect to an XXL-Job admin server using configurable addresses, access tokens, and executor details (app name, IP, port).
kaleido-common/kaleido-job · high confidence
Introduce domain models and services for admin, role, and permission management
Added new domain aggregates for Admin, Permission, and Role, each encapsulating business rules and consistency boundaries. Implemented domain services (IAdminDomainService, IPermissionDomainService, IRoleDomainService) and their implementations to handle creation, updates, and assignment of roles and permissions. The AdminAggregate supports enabling, freezing, and role assignment. The PermissionAggregate manages hierarchical permissions with tree retrieval. The RoleAggregate manages permission assignments. A generic AbstractAdminDomainService provides template methods for common operations. This change establishes the core domain logic for user and access control management within the admin module.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/domain/user/service · high confidence
Introduce domain service for managing dictionary data
Added new domain-layer components for dictionary management: a \DictAggregate\ entity, an \IDictDomainService\ interface, and its \DictDomainServiceImpl\ implementation. This introduces the ability to create and update dictionary entries, including validation for unique dictionary codes and existence checks during updates.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/domain/dict/service · high confidence
Introduce message service error codes and exception handling
Added the MessageErrorCode enum and MessageException class to the message module. The new error code enum defines specific error scenarios for the message service, including general errors (e.g., DATA\_NOT\_FOUND, PARAM\_NOT\_NULL), message-specific errors (e.g., MESSAGE\_NOT\_FOUND, MESSAGE\_SEND\_FAILED), and system-level errors (e.g., system busy, degraded). The MessageException class provides a unified way to throw and handle these business exceptions, supporting construction via error codes, custom messages, and root causes. This change establishes the error handling infrastructure for the message service.
kaleido-biz/kaleido-message/src/main/java/com/xiaoo/kaleido/message/types · high confidence
Introduce new Kaleido MCP service with weather tool and logging
A new 'kaleido-mcp' Spring Boot application is introduced, providing an MCP (Model Context Protocol) server. It includes a 'getWeatherByCity' tool that returns weather information for a given city, and is configured via bootstrap.yml with Nacos integration. The service also features a custom startup banner and structured logback logging that writes to files with daily rotation, with different profiles for dev and prod environments.
kaleido-biz/kaleido-mcp · high confidence
Introduce new notice service for SMS verification and template management
The system now includes a new notice service that handles sending SMS verification codes and managing notification templates. Users can now request and verify SMS codes for user and admin accounts, and administrators can create, update, and query notification templates. The service supports multiple notification channels (SMS, email, WeChat) through an adapter pattern, with SMS implementation currently active while email and WeChat adapters are stubbed. The service also provides pagination and filtering capabilities for both notices and templates.
kaleido-notice · high confidence
Introduce new recommendation service with AI integration and distributed transaction support
A new recommendation service has been added to the system, enabling users to generate outfit recommendations based on their preferences. The service integrates with an AI service to execute recommendation workflows and supports distributed transaction rollback via Seata. It includes command and query services for creating and retrieving recommendation records, with built-in rate limiting and circuit breaking via Sentinel. The implementation covers the full stack from the REST controller to the domain layer, including a new \RecommendRecordAggregate\ model, repository interfaces and implementations, and an event listener for processing AI workflow completion events.
kaleido-biz/kaleido-recommend · high confidence
Introduce the Kaleido Coin service for managing user coin balances and transactions
A new Kaleido Coin service has been added to handle user coin account management, including account initialization, balance checks, and transaction processing. The service implements domain logic for operations such as processing invite rewards, deducting coins for location and outfit creation, and generating recommendations. It enforces idempotency and uses distributed locks to ensure data consistency during coin deductions and deposits.
kaleido-biz/kaleido-coin · medium confidence
Introduce user query service for retrieving user information
Added a new application-layer query service for the user domain, providing methods to retrieve user information by ID, telephone, or invitation code, as well as a paginated query. The implementation, UserQueryServiceImpl, delegates to the UserRepository to fetch UserAggregate objects and uses a converter to transform them into UserInfoResponse DTOs.
kaleido-biz/kaleido-user/src/main/java/com/xiaoo/kaleido/user/application/query · high confidence
Introduce wardrobe management capabilities for brands, clothing, locations, and outfits
The wardrobe module now supports full CRUD operations for brands, clothing items, storage locations, and outfits. Users can create, update, and delete these entities, with the system automatically handling image processing, location tracking, and event publishing. The implementation includes application-layer command and query services, domain models, and event adapters that publish messages to RabbitMQ for cross-service notifications.
kaleido-biz/kaleido-wardrobe/src/main/java · high confidence
Introduces AI-driven interview assistant with multi-agent orchestration and knowledge base support
Users can now interact with an AI assistant that understands user intent and routes requests to specialized agents for candidate queries, interview scheduling, offer management, and enterprise knowledge retrieval. The system supports uploading and processing resumes and corporate documents (PDF/Word/Txt) into a vector store for RAG-based answers. Command services handle candidate and interview lifecycle operations, while query services enable searching candidates by name, status, or skills. The chat interface provides streaming responses for a smoother user experience.
kaleido-biz/kaleido-interview/src/main/java/com/xiaoo/kaleido/interview/application, kaleido-biz/kaleido-interview/src/main/java/com/xiaoo/kaleido/interview/domain · high confidence
Introduces admin user management domain model and repository interfaces
The admin user management feature is expanded with new domain components to support full lifecycle management of administrators, roles, and permissions. A new \AuthChangeEvent\ is added to handle permission change notifications via message queue. Repository interfaces (\IAdminRepository\, \IRoleRepository\, \IPermissionRepository\) are introduced to define data access operations for administrators, roles, and permissions, including methods for saving, updating, querying, and assigning roles/permissions. Additionally, an \AdminStatus\ enum is added to manage administrator states (Normal, Frozen, Deleted) with utility methods for status checking.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/domain/user/adapter · high confidence
Introduces application-layer command service and DTO converters for user management
The user service now exposes a new \UserCommandService\ that orchestrates write operations such as registering a user, changing nicknames, freezing/unfreezing accounts, deleting users, updating avatars, and recording login/logout events. These commands coordinate with the domain layer and publish a \UserRegisteredEvent\ upon successful registration. Additionally, a \UserConvertor\ interface using MapStruct is introduced to map the \UserAggregate\ domain model to the \UserInfoResponse\ DTO, including status and time conversions. This change shifts user write logic into a dedicated application service, providing a structured way to handle user mutations and data transformation.
kaleido-biz/kaleido-user/src/main/java/com/xiaoo/kaleido/user/application/command · high confidence
Introduces application-layer services for managing AI agents, conversations, and workflows
Adds new command and query services to handle the creation, update, and deletion of AI agents, chat conversations, and workflow executions. The change introduces a template-method-based execution model for workflows, supporting both generic execution and specific scenarios like outfit recommendations that publish completion events. Additionally, it includes MapStruct-based converters and repository implementations to bridge the domain models with the application layer.
kaleido-biz/kaleido-ai/src/main/java/com/xiaoo/kaleido/ai/infrastructure · high confidence
Introduces domain model and service layer for AI Agents and Chat conversations
Adds the core domain models, repositories, and services for managing AI Agents and Chat conversations. This includes the AgentAggregate and AgentTool entities, the IAgentDomainService for Agent lifecycle and tool management, and the ConversationAggregate with its corresponding repository and domain service. Additionally, it introduces the AgentFactory and AgentChatClientArmory to handle ChatClient creation and configuration, supporting memory, vector store, and MCP tool integration.
kaleido-biz/kaleido-ai/src/main/java/com/xiaoo/kaleido/ai/domain · high confidence
LangChain4j demo project with RAG, memory, and MCP integrations
The \kaleido-langchain4j-demo\ project is introduced, providing a Spring Boot application that demonstrates various LangChain4j capabilities. This includes basic and advanced RAG implementations (EasyRag, NaiveRag, MetadataAdvancedRag, MetadataFilteringAdvancedRag, MultipleRetrieversAdvancedRag, QueryCompressionAdvancedRag, and QueryRoutingAdvancedRag), chat memory management using Redis, and MCP (Model Context Protocol) integration for tool usage. The demo also features a custom chat model listener for observability and a structured output example.
kaleido-biz/kaleido-langchain4j-demo · high confidence
Launch of AI Interview Assistant with Candidate and Interview Management
Users can now interact with an AI-powered recruitment assistant via a streaming chat interface at /api/agent/chat, which supports intent recognition and multi-agent orchestration. The update also introduces comprehensive management endpoints for candidates (including resume upload and skill updates), interviews (scheduling, querying, and cancellation), and enterprise knowledge base document uploads, establishing the foundational workflow for AI-driven interview preparation and candidate evaluation.
kaleido-biz/kaleido-interview/src/main/java/com/xiaoo/kaleido/interview/trigger · medium confidence
Launch of the Kaleido AI service application entry point
A new Spring Boot application class, KaleidoAiApplication, has been added to the project. This entry point initializes the AI service using Dubbo for RPC and scans the com.xiaoo.kaleido.ai package for components, enabling the service to start and expose its AI-related functionalities.
kaleido-biz/kaleido-ai/src/main/java/com/xiaoo/kaleido/ai · high confidence
New RPC interfaces and data models for AI, admin user, and dictionary management
The \kaleido-api\ module introduces new RPC service interfaces and associated command/query/response classes for three domains. For AI, \IRpcAiService\ and related commands (e.g., \CreateAgentCommand\, \CreateWorkflowCommand\) enable creating, updating, and executing AI agents and workflows. For admin user management, \IRpcAdminAuthService\ and commands like \AddRoleCommand\ and \AddPermissionCommand\ support registering admins, managing roles and permissions, and sending SMS verification codes. For dictionary management, \IRpcAdminDictService\ and its commands (e.g., \AddDictCommand\) allow creating and updating dictionary entries. These changes expand the API surface to support these new capabilities.
kaleido-common/kaleido-api · high confidence
New admin and user authentication services
Added three new command services in the auth application layer: AdminAuthCommandService for administrator registration and login, UserAuthCommandService for standard user registration and login, and SmsCommandService for sending SMS verification codes. These services implement the core authentication flows by validating SMS codes via the notice service and coordinating with remote user/admin services via Dubbo RPC calls.
kaleido-auth/src/main/java/com/xiaoo/kaleido/auth/application · high confidence
New admin infrastructure converters for domain-to-PO mapping
The admin module introduces four new MapStruct-based converters in the infrastructure layer: AdminConvertor, DictInfraConvertor, PermissionConvertor, and RoleConvertor. Each provides bidirectional mapping between domain aggregates (Admin, Dict, Permission, Role) and their corresponding persistence objects (POs). The PermissionConvertor includes custom mapping logic to handle the conversion between the PermissionType enum and its string representation. These changes support the backend management service by standardizing how domain models are persisted and retrieved.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/infrastructure/convertor · medium confidence
New admin management APIs for users, roles, permissions, and AI agents
The admin backend now exposes REST controllers for managing administrators, users, roles, permissions, dictionaries, brands, notifications, files, and AI agents. Administrators can create, update, freeze, and delete user and admin accounts, manage role and permission assignments, and configure notification templates. The system also provides endpoints for managing AI agents (create, update, enable/disable, add/remove tools) and brand information. A startup runner initializes a default super admin and role, while a RabbitMQ listener clears cached admin roles and permissions upon authorization changes.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/trigger · high confidence
New command service interfaces and implementations for admin, brand, dict, file, notice, permission, role, and user management
The admin module now exposes a comprehensive set of application-layer command services to handle write operations across the platform. This includes local domain-driven implementations for managing administrators, dictionaries, permissions, and roles, alongside RPC-based services for brands, notifications, and users. These new interfaces and their implementations enable the admin backend to create, update, and delete resources such as admin accounts, brand profiles, system dictionaries, file uploads, notification templates, permissions, roles, and user accounts.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/application/command · high confidence
New data access layer for admin, roles, permissions, and dictionaries
The admin backend now includes new MyBatis-Plus mapper interfaces for managing administrators, roles, permissions, and dictionary data. These DAOs provide methods for finding, querying, and deleting records, enabling the admin service to interact with the underlying database for user and authorization management.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/infrastructure/dao · high confidence
New dev-ops deployment configuration for the Kaleido environment
Added a comprehensive set of deployment files to the \doc/deploy/dev-ops\ directory to support the local development environment. This includes a \docker-compose.yml\ that orchestrates core infrastructure services (MySQL, Redis, MongoDB, RabbitMQ, Nacos, Prometheus, Grafana, SkyWalking, Sentinel, and Seata). The update also introduces configuration files for monitoring and logging tools, including \grafana.ini\, \ldap.toml\, and \datasource.yml\ for Grafana; \kibana.yml\ and \logstash.conf\ for the ELK stack; and SQL initialization scripts for Nacos, Seata, and XXL-Job to ensure all required databases and tables are created upon startup.
doc/deploy/dev-ops · high confidence
New message service application entry point
A new Spring Boot application class, KaleidoMessageApplication, has been added to the message module. This entry point initializes the application with Spring Boot and enables Dubbo RPC support, marking the introduction of the message service as a distinct microservice.
kaleido-biz/kaleido-message/src/main/java/com/xiaoo/kaleido/message · high confidence
New repository implementations for admin, dict, permission, and role domains
The infrastructure layer now includes new repository implementations for managing administrators, dictionaries, permissions, and roles. Each implementation handles data persistence and retrieval via DAOs, with caching support via Jetcache for specific query methods. The admin repository includes delay cache deletion, while the permission and role repositories manage many-to-many relationships with their respective permission associations.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/infrastructure/adapter · high confidence
Behavioural changes
Added Windows batch script to initialize environment variables
A new Windows batch script (init\_env.bat) has been added to the deployment documentation to automate the configuration of environment variables for services such as Nacos, Seata, Sentinel, SkyWalking, and others, providing default values for local development and deployment.
doc/deploy · high confidence
Database sharding and data access layer refactoring
The data source configuration now includes a custom sharding algorithm that distributes data across 2 databases and 4 tables, enabling horizontal scaling for large datasets. Additionally, the data access layer has been restructured: the \BaseEntity\ class was renamed to \BasePO\ with its primary key type changed from \Long\ to \String\, and the package structure was updated to reflect these changes, including a rename from \infrastructure.mapper\ to \infrastructure.dao\.
kaleido-common/kaleido-ds/src/main/java · high confidence
Enhanced authentication error handling and error codes
The authentication module now supports more specific error handling. A new REGISTER\_FAILED error code has been added to the AuthErrorCode enum, and the NOTICE\_SERVICE\_UNAVAILABLE code has been renamed to reflect its purpose. Additionally, the AuthException class now includes a static factory method (of) and a constructor that accept both error code and message strings, allowing for more flexible exception creation.
kaleido-auth/src/main/java/com/xiaoo/kaleido/auth/types · medium confidence
Improved error handling and JSON serialization configuration
The global exception handler now captures validation errors (MethodArgumentNotValidException) and returns a map of field-specific messages, whereas previously it only handled business and system exceptions. Additionally, the handler now detects Sentinel's BlockException via reflection to allow proper flow control, and Jackson is configured to treat unknown enum values as null.
kaleido-common/kaleido-web · medium confidence
Introduce event-driven user processing
A new UserEventListener component has been added to the user service, enabling asynchronous handling of user domain events. This change introduces listeners for user creation, nickname changes, and status updates, allowing the system to process these events independently of the main transaction flow.
kaleido-biz/kaleido-user/src/main/java/com/xiaoo/kaleido/user/trigger/event · high confidence
Introduces a domain-level repository interface for managing dictionary data
A new IDictRepository interface has been added to the admin domain's adapter layer, defining persistence operations for the DictAggregate. This includes methods to save, update, find by ID or code, check existence, delete, and perform paginated queries for dictionary entries, establishing the data access contract for the dictionary feature.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/domain/dict/adapter · high confidence
Introduces configurable, strategy-based authentication in the gateway
The gateway now enforces authentication using a dynamic strategy pattern. A new \AuthStrategyEnum\ defines three modes: \PUBLIC\ (no auth), \USER\ (requires user login), and \ADMIN\ (requires admin login). The \DynamicStrategyFactory\ loads path-to-strategy mappings from configuration (prefix \gateway.auth\), allowing administrators to define which URL patterns require which level of authentication. The \SaTokenConfig\ integrates this factory into the global filter, routing requests to the appropriate \LoginCheckStrategy\ implementation (\PublicPathStrategy\, \UserPathStrategy\, or \AdminPathStrategy\). Additionally, \StpUserInterfaceImpl\ is added to handle user permission checks based on user status.
kaleido-gateway/src/main/java · high confidence
Migrated API documentation from Swagger to Smart-Doc
The project has replaced the previous Swagger-based API documentation with Smart-Doc. This involves a new configuration file (smart-doc-config.json) that defines how the documentation is generated, including package filters for the admin trigger controllers and header information for authentication. The old SpringDocAutoConfiguration class is now marked as deprecated and empty, indicating the migration is complete.
kaleido-common/kaleido-doc · high confidence
Migrated database sharding configuration to ShardingSphere YAML format
The project has replaced the previous Spring Boot/YAML-based datasource configuration (ds.yml) with a dedicated ShardingSphere YAML configuration (sharding.yaml and its template). This new setup defines two MySQL data sources (ds\_0, ds\_1) and applies sharding rules for tables such as t\_user, t\_user\_operate\_stream, and t\_recommend\_record, while keeping system, brand, user, clothing, tag, and AI-related tables as single non-sharded tables.
kaleido-common/kaleido-ds/src/main/resources · medium confidence
Refactored Result class to remove SingleResp dependency and add error message parameter
The Result class no longer accepts a SingleResp object in its constructor, removing the dependency on that intermediate response wrapper. Additionally, the error() factory method now accepts an explicit error message string alongside the error code, allowing callers to provide custom error descriptions rather than relying solely on the ErrorCode's default message.
kaleido-common/kaleido-base/src/main/java/com/xiaoo/kaleido/base/result · high confidence
Refactored admin query services to use domain models and RPC
The admin module's query services have been refactored to use domain models and RPC calls. Admin, permission, and role queries now operate on domain aggregates and convert to response objects, while brand, notice, and user queries delegate to remote services via Dubbo RPC. This change improves separation of concerns and aligns the admin layer with the new domain-driven structure.
kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/application/query · high confidence
Refined JavaDoc for the KaleidoAuthApplication entry point
The JavaDoc for the KaleidoAuthApplication class has been updated to provide a more detailed description of the service's responsibilities, specifically noting that it handles login, registration, and permission verification for both users and administrators.
kaleido-auth/src/main/java/com/xiaoo/kaleido/auth · high confidence
Simplified base response structure
The common response classes MultipleResp, PageResp, and SingleResp have been removed, and the BaseResp class has been significantly reduced by stripping out success/fail factory methods and status fields. This change alters the standard API response format, requiring consumers to adapt to the new, minimal BaseResp structure.
kaleido-common/kaleido-base/src/main/java/com/xiaoo/kaleido/base/response · high confidence
Simplified exception handling and added new error codes
The exception handling in the base module has been simplified: the BizException class no longer carries a generic context map, making error handling more straightforward. Additionally, new error codes have been introduced for admin and user login states, as well as for missing request URLs, allowing the system to provide more specific feedback for these conditions.
kaleido-common/kaleido-base/src/main/java/com/xiaoo/kaleido/base/exception · high confidence
Updated admin API documentation styles
The CSS styles for the admin API documentation have been updated, affecting the visual presentation of the documentation pages.
doc/api · medium confidence
User domain model and domain service refactored to DDD aggregate pattern
The user domain has been refactored to use a UserAggregate root that encapsulates the User entity and its operation streams, replacing the previous separate service and entity structures. This introduces new domain events (UserCreatedEvent, UserNickNameChangedEvent, UserStatusChangedEvent) and a DomainEventPublisher interface for publishing them. The IUserDomainService interface and its implementation now handle core user lifecycle operations (create, freeze, unfreeze, delete, update avatar) using the aggregate pattern, while the old IUserOperateService and related generators have been removed.
kaleido-biz/kaleido-user/src/main/java/com/xiaoo/kaleido/user/domain · high confidence
User service infrastructure refactored with new repository and event publishing
The user service's infrastructure layer has been restructured to implement a new domain-driven design. A new \UserRepositoryImpl\ now handles user persistence and caching using MyBatis-Plus and JetCache, replacing the previous \UserOperateRepository\. The old MyBatis mappers (\UserMapper\, \UserOperateStreamMapper\) and the legacy repository implementation have been removed. Additionally, a \DomainEventPublisherImpl\ has been added to handle asynchronous domain event publishing, and a \BloomFilterInitializer\ has been introduced to load invite codes into a Redis-based bloom filter for efficient existence checks.
kaleido-biz/kaleido-user/src/main/java/com/xiaoo/kaleido/user/infrastructure · high confidence
User service refactored with new RPC and controller endpoints
The user service implementation was refactored to replace the old \UserOperateFacadeServiceImpl\ with a new \RpcUserServiceImpl\ for RPC calls, and the \UserController\ was updated to expose new endpoints for managing user profiles (nickname, avatar) and querying user lists, aligning with the broader user domain restructuring.
kaleido-biz/kaleido-user/src/main/java/com/xiaoo/kaleido/user/trigger/controller · medium confidence
Dependencies
Added frontend and backend dependency manifests for new services
Added package.json and pnpm-lock.yaml for the kaleido-admin-frontend, establishing a Vue 3, Element Plus, and Vite 6-based admin interface. Added Maven pom.xml files for new backend modules: kaleido-ai (Spring AI), kaleido-ai-langchain4j, kaleido-coin, kaleido-interview, kaleido-langchain4j-demo, kaleido-mcp, kaleido-message, kaleido-recommend, kaleido-tag, and kaleido-wardrobe, each defining their specific library dependencies.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 34 → 34 (-0.8)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 80 → 81 (+1.1)
- Architecture 59 → 56 (-3.6)
- Maturity 54 → 46 (-7.8)
- Readiness 15 → 17 (+1.7)
- Security 63 → 64 (+0.5)
- Domain Modelling 100 → 100 (-0.1)
- Accessibility 39 → 38 (-1.1)
Resolved (108)
- Critical CVE: [GHSA redacted] (kaleido-admin-frontend/pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (kaleido-admin-frontend/pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (kaleido-admin-frontend/pnpm-lock.yaml)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-coin/src/main/java/com/xiaoo/kaleido/coin/domain/account/service/impl/CoinDomainServiceImpl.java)
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-interview/src/main/java/com/xiaoo/kaleido/interview/infrastructure/tools/InterviewTools.java)
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-langchain4j-demo/src/main/java/com/xiaoo/langchain4j/demo/controller/rag/NaiveRagController.java)
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/application/query/impl/LocationQueryServiceImpl.java)
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/infrastructure/adapter/repository/OutfitRepositoryImpl.java)
- Duplicated block (10 lines × 3) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/application/command/ClothingCommandService.java)
- Duplicated block (10 lines × 3) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/application/command/ClothingCommandService.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-ai/src/main/java/com/xiaoo/kaleido/ai/domain/chat/service/impl/ChatServiceImpl.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-ai/src/main/java/com/xiaoo/kaleido/ai/domain/chat/service/impl/ConversationDomainServiceImpl.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-ai/src/main/java/com/xiaoo/kaleido/ai/infrastructure/adapter/repository/WorkflowRepositoryImpl.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-coin/src/main/java/com/xiaoo/kaleido/coin/domain/account/model/entity/CoinStream.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-recommend/src/main/java/com/xiaoo/kaleido/recommend/infrastructure/adapter/repository/RecommendRecordRepositoryImpl.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/application/command/ClothingCommandService.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/application/query/impl/LocationQueryServiceImpl.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/domain/clothing/service/impl/ClothingDomainServiceImpl.java)
- Duplicated block (12 lines × 2) (kaleido-biz/kaleido-coin/src/main/java/com/xiaoo/kaleido/coin/infrastructure/adapter/repository/CoinAccountRepositoryImpl.java)
- …and 88 more
New (265)
- Critical CVE: [GHSA redacted] (kaleido-admin-frontend/pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (kaleido-admin-frontend/pnpm-lock.yaml)
- Critical CVE: [GHSA redacted] (kaleido-admin-frontend/pnpm-lock.yaml)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Dormant codebase
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-ai/src/main/java/com/xiaoo/kaleido/ai/domain/agent/model/entity/AgentTool.java)
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-coin/src/main/java/com/xiaoo/kaleido/coin/infrastructure/adapter/repository/CoinAccountRepositoryImpl.java)
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-interview/src/main/java/com/xiaoo/kaleido/interview/infrastructure/tools/InterviewTools.java)
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-langchain4j-demo/src/main/java/com/xiaoo/langchain4j/demo/controller/rag/NaiveRagController.java)
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/infrastructure/adapter/repository/ClothingRepositoryImpl.java)
- Duplicated block (10 lines × 2) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/infrastructure/adapter/repository/LocationRepositoryImpl.java)
- Duplicated block (10 lines × 3) (kaleido-admin/src/main/java/com/xiaoo/kaleido/admin/application/query/impl/PermissionQueryServiceImpl.java)
- Duplicated block (10 lines × 3) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/domain/clothing/service/impl/ClothingDomainServiceImpl.java)
- Duplicated block (10 lines × 3) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/domain/clothing/service/impl/ClothingDomainServiceImpl.java)
- Duplicated block (10 lines × 3) (kaleido-biz/kaleido-wardrobe/src/main/java/com/xiaoo/kaleido/wardrobe/domain/clothing/service/impl/ClothingDomainServiceImpl.java)
- Duplicated block (10 lines × 7) (kaleido-biz/kaleido-langchain4j-demo/src/main/java/com/xiaoo/langchain4j/demo/controller/rag/advanced/MetadataAdvancedRagController.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-ai/src/main/java/com/xiaoo/kaleido/ai/domain/chat/service/impl/ConversationDomainServiceImpl.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-ai/src/main/java/com/xiaoo/kaleido/ai/infrastructure/adapter/repository/WorkflowRepositoryImpl.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-recommend/src/main/java/com/xiaoo/kaleido/recommend/infrastructure/adapter/repository/RecommendRecordRepositoryImpl.java)
- Duplicated block (11 lines × 2) (kaleido-biz/kaleido-recommend/src/main/java/com/xiaoo/kaleido/recommend/infrastructure/adapter/repository/RecommendRecordRepositoryImpl.java)
- …and 245 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
yucheng-ou/kaleido-ai was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit db84ec7e76065427520e9b304c0066bb33494d2b — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.