ClouisleClouisle

Changelog

All significant changes to the Clouisle project

This document records all significant changes to the Clouisle project.

Format follows Keep a Changelog, versioning follows Semantic Versioning.

[Unreleased]

Added

Admin Observability

  • Rebuilt the admin observability console with six focused views for run outcomes, on-demand traces, model/tool/retrieval dependencies, queues, infrastructure, and alerts.
  • Added bounded tool and knowledge retrieval spans to durable AgentRun details, plus tool and retrieval success-rate and latency aggregates in the Dependencies view.
  • Agent dependency traces retain at most 128 spans per run and display when the cap truncates a trace; historical runs are not backfilled.
  • Added translations for every persisted AgentRun lifecycle status in both locales and a raw-status fallback for future values.
  • Added bounded PostgreSQL, Redis, Celery worker, and Qdrant connectivity probes for infrastructure dependencies, including measured latency and explicit unhealthy/unconfigured states.
  • Added single-leader terminal AgentRun summary reconciliation every minute, repairing stale status, timing, model, and token fields in bounded batches without replaying runs; fixed the ORM query that dropped terminal summaries.
  • Model dependency cards now resolve existing telemetry UUIDs to configured model names and provider labels, including custom gateway names, while keeping same-named models separate.
  • Reduced queue snapshot latency by collecting active tasks, reserved tasks, scheduled tasks, and active queues concurrently with independent Celery inspectors; preserved existing cache and failure behavior.
  • Reduced infrastructure snapshot latency by collecting health probes and slow-query statistics concurrently and shortening Celery reply collection to 0.5 seconds; retained existing probe deadlines, failure behavior, and caching.
  • Added Redis-backed API instance discovery with per-instance reporter leases, host-scoped resource samples, readable names, and stale/offline aging; infrastructure now lists retained instances across backends rather than only the serving process.
  • Added a two-month calendar range picker to observability, with rolling presets at the bottom of its popover, inclusive local-day selection, URL persistence, and consistent UTC filtering for overview, runs, and dependency statistics.
  • Added the same calendar range picker to the dashboard with 7/30/90-day and all-time shortcuts; custom dates consistently filter trends, rankings, model usage, workflow summaries, and conversation/message/token summaries and averages, while unrelated cumulative indicators retain their definitions.

Sandbox Security

  • Added a persisted Security setting for exact sandbox egress hostnames; updates apply to new jobs without restarting workers.

Sandbox Lifecycle Audit

  • Added audit events for sandbox task start, completion, failure, cancellation, and recovery. Entries capture available task/session/worker context and safe error codes without recording code, arguments, output, or raw exception text.

Models and Workflows

  • Added the TypeSafe AI (typesafe) decision-model provider and the decision model type, which evaluates a state against typed choice (up to 255 options), score (2–10 ordered levels), or noul (true/false) questions and returns typed answers with probability distributions and confidence.
  • Added the Decision workflow node: it asks one typed question, routes on the returned answer (or the highest-probability score level), and supports a fallback branch plus an optional confidence threshold. The node outputs answer, selected_handle, confidence, probabilities, and usage.

Chat and File Previews

  • Added a unified artifact list with file counts, expandable results, authenticated downloads, and shared previews for common document, media, and code formats.
  • Added DOCX thumbnails, page synchronization, responsive fit-to-width, and zoom controls; added read-only PDF and spreadsheet preview controls.
  • Added the Agent Hide Artifact List setting, off by default, to hide the generated files list below assistant messages in chat.

Memory and RAG

  • Added optional background memory extraction controls in the admin memory site-settings category, including model selection, debounce cooldown, and pending-turn trigger limits.
  • Added the bounded get_memory_subgraph Agent tool for relationship-aware memory retrieval.

Admin Observability

  • Aligned console tabs and filters with the shared dashboard Tabs, Select, and Input components; standardized control heights.

Agent Studio

  • On phones, the Agent preview opens in a full-screen, drawer-like overlay instead of compressing the editor and chat side by side.

Assets and Media

  • Persisted generated images and videos as scoped Assets and exposed conversation/workflow-scoped media references for model use.
  • Updated CSV handling for GBK/GB18030 content and removed duplicate spreadsheet viewer downloads.

Agent Retrieval and Chat Timeline

  • Agents with no knowledge-base associations now persist and run with rag_mode: off; the Agent editor hides the RAG selector until a knowledge base is selected.
  • Chat thought-process rendering preserves the emitted order of retrieval, compression, reasoning, tool, and generation steps.
  • RAG context remains null when retrieval did not run and [] when retrieval ran but returned no contexts.

Dependencies and Tooling

  • Updated backend and frontend dependency manifests and lockfiles to current compatible releases.
  • Made the Python lint policy explicit for stable Ruff upgrades and audited the complete Bun production dependency closure.
  • Replaced the sandbox tests' Redis-server process with an in-process fake and removed the Redis server install from backend CI.
  • Added MIT-0 to the approved permissive-license policy.

Fixed

Admin Observability

  • Kept the Dependencies view available when tool and retrieval spans have no token counts; those rows now report unavailable token usage instead of failing the response.
  • Migrated model_name and message_started_at on existing PostgreSQL observability_runs tables before Tortoise schema and index generation, preventing API startup and summary-query failures on older databases.

Sandbox Sessions

  • Routed session jobs to per-worker Celery queues and persisted a fenced worker/storage binding. Stale-generation messages are rejected; a command with uncertain completion is never automatically replayed.
  • Added sandbox-worker readiness heartbeats, same-disk supervised restart and checkpoint recovery, plus bounded atomic rebinding to a fresh workspace generation when the original worker storage is unavailable. AgentRun receives WORKSPACE_RESET and replans instead of reusing stale paths or process state.
  • Kept each sandbox worker's workspace and checkpoints on worker-local storage (Compose named volume; Kubernetes node-local hostPath DaemonSet). Same-node process replacement can restore checkpointed data; permanent loss of the node or disk cannot.
  • Used the platform's ELOOP errno constant when rejecting symlinked workspace paths.
  • Routed deferred cleanup and idle-eviction retries through separate Redis indexes so an unavailable owner queue cannot block later sessions; spread first-time session placement across ready workers and bounded binding/tombstone retention.
  • Rejected zero-valued sandbox worker recovery timeouts.
  • Routed isolated sandbox and dependency-install egress through a per-job HTTPS proxy with exact-host allowlisting; blocked hosts are reported in execution diagnostics.
  • Kept legacy code execution and workflow code nodes behind the sandbox gateway; disabled, unavailable, and failed runtimes fail closed without executing payloads on the caller.
  • Bounded Python and Node dependency installation to 300 seconds by default; timed-out install process groups are terminated and incomplete environments are discarded.
  • Bounded captured sandbox output in memory and applied per-process prlimit controls. Direct payloads drop all capabilities in Bubblewrap; the trusted egress bridge raises loopback in its isolated network namespace, then sets no-new-privileges and clears payload capabilities. Supplied workers receive NET_ADMIN for that setup and remain resource-capped.

Asset Access and Previews

  • Protected generated images, generated videos, and sandbox artifacts with scope-aware authorization and authenticated client downloads.
  • Preserved explicit too-large, unauthorized, permission-denied, unsupported, and parse-failure preview states without falling back to unprotected URLs.

Chat Experience

  • Kept agent conversations pinned to the latest message as soon as a send begins, before streaming starts.
  • Deduplicated overlapping Agent conversation pages and preserved the loaded pagination position when refreshing the chat sidebar.

Dependency Compatibility

  • Adapted Redis, MCP, SMTP, sandbox session, React, Radix, TypeScript, and ICU message-format integrations to their refreshed APIs while preserving exception tracebacks.

[0.2.9] - 2026-06-09

Added

Admin and Observability

  • Added an admin observability dashboard for platform usage, performance, errors, and activity monitoring
  • Added admin management panels and routes for agents and workflows

Packages

  • Added Clouisle package import and export support for moving apps and resources between environments

Knowledge Base

  • Added multimodal knowledge base asset support for uploaded images and media references
  • Added failed chunk retry and bulk knowledge base document/chunk actions

Chat and Agents

  • Added uploaded chat images as media references
  • Expanded prompt generation context for agent configuration

Changed

Chat Experience

  • Reworked chat message rendering, chain-of-thought displays, tool displays, and scrolling behavior to reduce flicker and frozen states
  • Optimized AI conversation streaming timeout handling

Platform and Permissions

  • Allowed superadmins to transfer team ownership
  • Improved skill capability views and completed skill action mappings
  • Simplified media generation selectors to show model names only

Automation and Dependencies

  • Updated GitHub automation action versions and dependency lockfiles
  • Removed generated repository activity and documentation sync workflow reports from version control

Fixed

Chat and Workflow

  • Fixed agent chat flicker, thought-chain scroll state, chat scrolling, agentic workflow rendering, and production chat collapsible freezes
  • Fixed agent message version branch context when continuing conversations

Knowledge Base

  • Fixed knowledge base bulk action review issues and media asset processing/search paths

Admin and Tools

  • Fixed admin tool management copy and skill capability page regressions

Security

Dependencies

  • Updated backend aiohttp, starlette, and idna dependencies for security maintenance

[0.2.5] - 2026-05-20

Changed

UI Consistency

  • Unified destructive delete affordances across platform menus and dialogs, including SSO provider, knowledge base, and capability actions.
  • Kept notification badge text legible when hovering destructive menu items.
  • Aligned workflow run status labels and badge styling across workflow logs, run details, and activity logs.

Deployment

  • Packaged the backend application as bytecode in Docker images.
  • Enabled Docker standalone frontend deployments to proxy /api/* requests to the internal backend service.
  • Added a server-side API URL resolver for frontend SSR fetches when the public API URL is relative.

Fixed

Chat and Logs

  • Fixed Docker builds excluding logs route directories and causing logs pages to return 404 in production.
  • Prevented UnboundLocalError during chat streaming failures.
  • Fixed Docker deployment failures for auth and public chat SSR metadata fetches.
  • Restored workflow log run details when selecting a run from the workflow logs page.
  • Fixed workflow log filtering to use backend run status values and corrected workflow monitor navigation from the logs page.
  • Localized workflow run detail labels for started time, finished time, and debug mode.

Skills and Automation

  • Installed Git in the skill import environment so Git-backed skill imports can complete successfully.

Security

Chat Streaming

  • Removed stack trace exposure from chat streaming error responses.

[0.2.3] - 2026-05-19

Fixed

Authentication

  • Redirect unauthenticated users away from protected app and dashboard pages before rendering credential-dependent content
  • Preserve backend invalid-credential messages on login instead of replacing them with the session-expired notice
  • Keep authentication form borders on the centered card layout while preserving the borderless split layout

Dashboard

  • Give dashboard trend charts measurable containers to avoid invalid Recharts width and height warnings

[0.2.2] - 2026-05-17

Added

Authentication

  • Added a configurable split authentication layout so deployments can switch between centered and split-screen auth pages

Automation

  • Added automatic GitHub issue and pull request assignment workflow support

Changed

Frontend and Site Settings

  • Updated site settings UI and API wiring for configurable auth layout options
  • Refined numeric input handling across admin and platform forms
  • Updated frontend dependencies including React, React DOM, shadcn, lucide-react, TypeScript, and Next.js lint configuration

CI/CD

  • Updated GitHub Actions release and automation dependencies

Fixed

Documentation

  • Corrected PostgreSQL environment variable references in deployment documentation from POSTGRES_HOST to POSTGRES_SERVER
  • Tightened documentation sync verification notes for repository automation

[0.2.1] - 2026-05-11

Fixed

Chat and Agent Runtime

  • Preserved uploaded file context across agent conversations by caching parsed file content and reusing it during follow-up turns.
  • Restored knowledge search tool execution in backend chat tool handling.
  • Avoided wrapping errored agent messages in the full message container so error display matches manual interruption behavior.
  • Returned structured, localized validation errors for unsupported HTTP tool URL templates.

Security and Dependencies

  • Updated langchain-core to the patched backend dependency version for the reported security advisory.
  • Adjusted Dependabot frontend update grouping so incompatible frontend dependency upgrades are handled separately.

Documentation

  • Corrected backend startup commands in the English README, Chinese guide README, and quick-start guide.
  • Documented explicit celery_app usage for Celery worker and beat startup commands.

[0.1.2] - 2026-03-04

Added

User Memory System

  • Interactive memory graph visualization with D3.js force-directed layout
  • Memory management dashboard with full CRUD operations
  • LLM function calling for autonomous memory creation and updates
  • Semantic search with vector retrieval using Qdrant
  • Multi-tenant data isolation with user-based filtering
  • 10 entity types with color-coded nodes (person, preference, skill, project, goal, fact, concept, organization, location, custom)
  • 9 relation types with color-coded edges (prefers, works_on, knows, uses, works_at, located_in, has_goal, related_to, part_of)
  • Configurable auto-extract, importance threshold, and max memories per retrieval
  • Search, filter, zoom controls for graph visualization
  • Entity detail sheet with relationship navigation

Agent Features

  • Agent interactive question tool with structured multi-question input
  • Multiple choice options support in conversations
  • Dynamic question generation during chat flow
  • Memory configuration in agent orchestration form

Workflow Enhancements

  • Knowledge retrieval node for workflow integration
  • Parameter extractor node for data processing
  • Sub-workflow support for modular workflow design
  • Variable reference validation system
  • Loop iteration with internal variable access
  • Debug mode with breakpoints and time-travel debugging
  • Real-time execution monitoring with streaming updates

Documentation

  • Comprehensive bilingual documentation (EN/ZH) with 18,000+ lines
  • Architecture guides and API references
  • Deployment guides for Docker and Kubernetes
  • MCP (Model Context Protocol) documentation
  • Sandbox execution documentation
  • Auto-generation scripts for documentation

Authentication and Security

  • SSO provider name routing
  • JSONPath support in SSO attribute mapping
  • Email templates for password reset and verification
  • Default role assignment on registration
  • Global role synchronization from team membership

Notifications

  • Browser push notifications for new messages
  • User locale-aware notification delivery
  • Workflow run notifications to triggering user
  • Knowledge base document processing notifications

Internationalization

  • Complete frontend i18n support with modular structure
  • Complete backend i18n support for system messages
  • User locale persistence and auto-sync
  • Language-aware system prompts for agents
  • Builtin tool display names in user's language
  • Default language site setting

Infrastructure

  • Health check endpoint for container orchestration
  • CI/CD workflow for automated Docker image builds
  • Multi-stage Docker builds for optimized images
  • Kubernetes manifests without YAML anchors

Changed

  • Reorganized platform header dropdown menu with logical grouping
  • Improved conversation list updates and state management
  • Enhanced error handling with better user feedback
  • Optimized chunk reindexing with bulk updates
  • Refactored LLM chat adapters for better modularity
  • Improved vector store service performance

Fixed

Frontend

  • SSE parser dropping events when TCP splits across chunks (#61)
  • Tool call status stuck on "Running" after completion (#60)
  • Prompt editor newlines preservation (#59)
  • Chat input auto-resize for multi-line text (#59)
  • Dev page auto-refresh and auth redirect loop (#58)
  • Password validation and email verification (#57)
  • Locale sync and favicon theme switching
  • Conversation list updates and reasoning block state management
  • Browser notification icon using absolute URL

Backend

  • Bcrypt 5.0 compatibility by using bcrypt directly
  • N+1 queries in user serialization with prefetched data (#56)
  • SSO callback URL construction using public site_url
  • Duplicate /api/v1 prefix in SSO login URL
  • Language detection from user.locale instead of request header
  • Workflow run notifications using triggering user's locale
  • Knowledge base document notifications using uploader's locale
  • Skip logging middleware for SSE stream responses

Deployment

  • Bun lockfile compatibility in Docker build (#52)
  • CORS configuration using JSON array format (#51)
  • Kubernetes manifest compatibility for kubectl

Security

  • Enhanced password validation
  • Secure credential storage for custom tools
  • API key scoped access with expiration tracking

[0.1.0] - 2025-02-07

First public release of Clouisle - an enterprise-grade knowledge base and AI Agent platform.

Core Features

Agent System

  • Agent Types: Support for Chat Agent and Workflow Agent
  • Agent Orchestration: Modern three-column layout with real-time preview
    • Prompt editor with AI generation
    • Variable configuration
    • Knowledge base association
    • Tool configuration
    • Vision capability support
  • Agent Publishing: Publish/unpublish workflow with status management
  • Agent API Access: OpenAI-compatible API with documentation and code examples
  • Agent Monitor: Usage statistics, conversation trends, token usage, response time metrics

Workflow Engine

  • Visual Workflow Editor: React Flow based drag-and-drop workflow builder
  • Node Types:
    • Start/End nodes
    • LLM nodes (with model selection and parameter tuning)
    • Condition nodes (branching logic)
    • Code nodes (JavaScript/Python execution)
    • Tool nodes (HTTP API, MCP, built-in tools)
    • Iteration/Loop nodes
    • Variable assignment/aggregator nodes
    • Sub-workflow nodes
    • Question classifier nodes
    • Parameter extractor nodes
  • Variable System: Upstream variable reference with validation
  • Execution: Real-time streaming execution with node-level status tracking

Knowledge Base

  • Document Management:
    • Multi-format support: PDF, DOCX, TXT, MD, HTML, CSV, XLSX, JSON, PPTX
    • URL import
    • Drag-and-drop batch upload
  • Document Processing:
    • Smart text chunking (configurable chunk_size, chunk_overlap, separator)
    • Chunk preview before committing
    • Text cleaning options
  • Search Modes:
    • Vector search (semantic similarity)
    • Full-text search (jieba Chinese tokenization)
    • Hybrid search (RRF algorithm)
  • Dynamic Embedding: Support for multiple embedding dimensions (768, 1024, 1536, 3072)

Chat System

  • Universal Chat Components: Reusable chat component library
  • Message Types: Text, reasoning (chain of thought), tool calls, files, sources
  • Streaming: Real-time streaming responses with Streamdown rendering
  • Multi-turn Conversations: Conversation history management

Tool System

  • Built-in Tools: Calculator, time/timezone
  • HTTP API Tools: Configurable URL, method, headers, body template
  • MCP Server Tools: stdio/sse transport, command execution
  • Code Tools: Online JavaScript/Python editor

Platform Features

User Management

  • Authentication: Username/password, SSO (OIDC, SAML, CAS)
  • Registration: Configurable registration, approval workflow, email verification
  • Password Policy: Configurable strength requirements
  • Session Management: Timeout, single session mode
  • Login Security: Max attempts, lockout, captcha

Team Management

  • Multi-tenant: Team-based resource isolation
  • Role-based Access Control: Customizable roles and permissions
  • Team Members: Invite, remove, role assignment

Model Management

  • Multi-provider Support: OpenAI, Anthropic, Azure, local models
  • Model Authorization: Team-level model access control
  • Usage Tracking: Token usage statistics per team

API Key Management

  • API Key CRUD: Create, rotate, expire API keys
  • Agent Binding: Restrict API key access to specific agents
  • Rate Limiting: Configurable rate limits

Site Settings

  • General: Site name, description, URL, icon
  • Default Language: Configurable default language for system messages
  • Security: Registration, password policy, session, login security
  • Notifications: Email (SMTP), DingTalk, WeChat Work, Feishu, Slack, Webhook
  • Auto Notifications: Configurable system event notifications
  • SSO: OIDC, SAML, CAS provider configuration
  • Storage: Audit log retention and archiving

Audit Logging

  • Comprehensive Logging: All user actions logged
  • Log Viewer: Filterable, searchable audit log interface
  • Export: CSV export support
  • Archiving: Configurable retention with automatic archiving

Internationalization

  • Languages: English, Chinese (Simplified)
  • User Locale: Per-user language preference
  • Site Default: Configurable default language for system messages
  • Dynamic i18n: All user-facing messages internationalized

UI/UX

  • Theme: Light/dark mode with system preference detection
  • Dynamic Favicon: Theme-aware favicon switching
  • Responsive Design: Desktop-optimized dashboard
  • Component Library: shadcn/ui based components

Technical Stack

Backend

  • Python 3.13, FastAPI
  • Tortoise ORM with AsyncPG
  • Celery for background tasks
  • Redis for caching and pub/sub
  • Qdrant for vector storage

Frontend

  • Next.js 15, React 19
  • TypeScript
  • Tailwind CSS
  • shadcn/ui components
  • Bun package manager

Contributing

When submitting code, please reference related Issues in commit messages:

feat(knowledge-base): implement knowledge base search

- Add vector search, full-text search, hybrid search modes
- Integrate jieba Chinese tokenization

Closes #12

How is this guide?

On this page