1. 22 Jun, 2026 4 commits
    • adapt old version config (#7158) · f3404e6a
      Archer committed
    • perf: http repalce (#7156) · 8b19376a
      * perf: http repalce
      
      * doc
      
      * doc
      Archer committed
    • fix(mcp): only fall back to legacy SSE transport on a 4xx Streamable HTTP error (#7154) · 62ae4f16
      * fix(mcp): only fall back to legacy SSE transport on a 4xx Streamable HTTP error
      
      The MCP client caught any Streamable HTTP connection error and immediately
      retried with the legacy HTTP+SSE transport. For a Streamable-HTTP-only server,
      a failure unrelated to protocol support (network error, 5xx, or an error after
      a successful initialize) was masked by a misleading SSE error such as
      "Non-200 status code (405)", hiding the real root cause.
      
      Follow the MCP spec's backwards-compatibility flow: fall back to SSE only when
      the server rejects the Streamable HTTP request with a 4xx (e.g. 404/405),
      which signals it does not speak Streamable HTTP. Other errors now surface
      as-is, and when the SSE fallback also fails both errors are reported.
      
      * test(mcp): cover conditional SSE fallback behavior
      
      Update the fallback test to use a 4xx StreamableHTTPError and add cases for:
      non-HTTP errors and 5xx not triggering fallback, and both errors being
      surfaced when the SSE fallback also fails.
      
      * perf: code
      
      * perf: code
      
      ---------
      
      Co-authored-by: archer <545436317@qq.com>
      Serhii Zghama committed
  2. 18 Jun, 2026 15 commits
  3. 17 Jun, 2026 3 commits
    • refactor: align system tool JSON schema codec (#7116) · ffa1037a
      * refactor(core): optimize system tool input/output schema management
      
      - Use `JSONSchema` instead of `InputConfig` for system tool I/O
        definitions
      - Centralize JSON Schema to Node I/O conversion utilities
      - Cleanup redundant type definitions and schema properties across
        packages
      
      * refactor(app): optimize SecretInputModal UI and logic
      
      - Migrate to updated MyModal component and refactor layout
      - Update input styling and placeholder logic
      - Add missing input controller for 'input' type fields
      
      * refactor(global): improve workflow JSON schema mapping and tool catalog
      
      - Update `getJsonSchemaPropertyFromValueType` to handle complex types
        like `arrayObject` and `chatHistory` properly instead of falling back
        to default types.
      - Refactor `getEnumValuesFromNodeInput` to correctly collect enum values
        from different input configurations.
      - Update `useToolCatalog` to use `nodeInputs2JsonSchema` for consistent
        schema generation across tools and nodes.
      - Add comprehensive test cases to verify JSON schema conversion for
        various value types and enum sources.
      
      * perf: get tool client code
      
      * chore: avoid schema loading for tool display metadata
      
      * perf: tool throw error
      
      ---------
      
      Co-authored-by: archer <545436317@qq.com>
      Finley Ge committed
    • Fix/http nodes (#7111) · cc59ee8b
      * feat: add httpFullError output handling and localization support
      
      * refactor: remove ensureHttp468Outputs, rely on template output merge
      
      * perf: http code
      
      * doc
      
      * fix: test
      
      ---------
      
      Co-authored-by: archer <545436317@qq.com>
      siigure committed
  4. 16 Jun, 2026 13 commits
    • Fix chat (#7131) · da3d14bc
      * fix: interactive
      
      * fix: test
      Archer committed
    • fix: slider title (#7130) · a6fc27f6
      Archer committed
    • fix(sandbox): resolve inotify infinite loops & proxy loopback connection (#7129) · eb27fafe
      * Update repository.ts
      
      * refactor(fastgpt): update default fastgpt-ide-agent image to ghcr.io
      DigHuang committed
    • fix: action (#7128) · a1674a5f
      * fix: action
      
      * perf: modal
      
      * fix: openapi
      Archer committed
    • refactor(app): optimize tool selector UI/UX (#7127) · 4f30121d
      Refactor tool selector and modal layout to improve responsiveness and
      consistency. Update grid structures, adjust padding and sizing, and
      streamline component interaction flows.
      Finley Ge committed
    • feat: chat title generate (#7120) · 2a715bcc
      * perf: chat title generation
      
      * fix: ts
      
      * test: align sandbox proxy secret validation error
      
      * perf: zero point
      Archer committed
    • fix: 数据集更新接口不支持 API Key 鉴权 (#7006) (#7123) · ff03d538
      问题 (#7006):
      
      通过 API Key 调用知识库更新接口(api/core/dataset/update)返回 403
      unAuthorization。API Key 可正常使用 list/create/delete,唯独 update 报错。
      
      根因:
      
      update.ts 中 authDataset/authUserPer 调用缺少 authApiKey: true。
      parseHeaderCert() 默认 authApiKey=false,API Key 鉴权分支不会被执行,
      请求走到末尾被拒绝。
      
      对比其他端点:
      - create.ts — authDataset({ authApiKey: true, ... }) ✓
      - collection/create.ts — authDataset({ authApiKey: true, ... }) ✓
      - collection/list.ts — authDataset({ authApiKey: true, ... }) ✓
      - update.ts — authDataset 和 authUserPer 均缺少 authApiKey ✗
      
      改动:
      
      update.ts 四处调用各添加 authApiKey: true:
      1. authDataset 主入口 Read 权限检查 (L88)
      2. authDataset 移动目标文件夹 Manage 权限检查 (L109)
      3. authDataset 移动源文件夹 Manage 权限检查 (L122)
      4. authUserPer 移动至/从根目录的团队创建权限检查 (L132)
      
      测试:
      
      新增 projects/app/test/api/core/dataset/update.test.ts:
      - token 认证更新数据集
      - API Key 认证更新数据集
      
      Fixes #7006
      
      Signed-off-by: DadaVinqi <DadaVinqi@users.noreply.github.com>
      Co-authored-by: DadaVinqi <DadaVinqi@users.noreply.github.com>
      DadaVinqi committed
    • feat(sandbox): migrate to standalone Rust proxy and implement stateless WSS… · 0b86c361
      feat(sandbox): migrate to standalone Rust proxy and implement stateless WSS gateway with dynamic file sync (#7034)
      
      * feat(sandbox): implement stateless WSS gateway, Rust agent-proxy service, and interactive terminal
      
      - Implement stateless WSS gateway for agent-sandbox connection.
      - Migrate WSS proxy to a standalone Rust service.
      - Integrate interactive PTY terminal and clean up obsolete APIs.
      - Add unit & integration tests for Rust proxy & agent with CI workflow.
      - Unify proxy secrets under AGENT_SANDBOX_PROXY_SECRET.
      - Implement fine-grained session ticket permissions & enhance proxy log security.
      
      * refactor(sandbox): upgrade agent & proxy to Rust 2024, optimize file operations, and support connection limiting
      
      - Implement dynamic file change sync with debounce and robust connection limiting.
      - Upgrade Rust dependencies, split ide agent modules and enhance file access security.
      - Optimize Docker build targets, configure default Sealos image, and implement native file operations.
      - Support dynamic gateway hostnames, add proxy ping keepalive, and refine terminal resize checks.
      - Upgrade to Rust 2024, secure workspace operations, and refine adapter helpers.
      
      * feat(skill): redesign skill detail page with split layout and refine sandbox editor styling
      
      * refactor(sandbox): optimize edit-debug hot-reload and skip S3 pull on cold-start
      
      - Refine edit-debug sandbox hot-reload and auto resume logic.
      - Skip S3 pull on cold-start when volume exists and fix OpenSandbox getInfo.
      
      * feat(sandbox): implement cold archive and restore, unify file limits, and relax proxy secret
      
      * style(skill): adjust chatbox and input layout padding for skill detail page
      
      * feat(sandbox): add archive migration API and restore   support for empty or archived workspaces
      
      refactor(sandbox): enhance workspace archiving/restore, zip safety, and websocket stability
      
      * feat(sandbox): migrate archived records across providers, adjust probe timeout and command limits
      
      * feat(skill): add preview empty state, disable sending before sandbox ready, and unify error handling
      
      * refactor(skill): simplify export, fix import encoding, and use default LLM
      
      * feat(sandbox): ensure zip availability and track archiving failures
      
      * feat(sandbox): refactor workspace fs watcher with debouncer, improve terminal styling, and add archive progress tracking
      
      - rust ide agent: Integrate notify-debouncer-full to debounce workspace file system events and broadcast batches with sequential numbers to handle lagged events.
      - frontend/sandbox: Remove client-side debounce in favor of backend debouncing, refine workspace file tree refreshing, and adjust terminal background and horizontal padding.
      - archive: Introduce onProgress callback for resource archiving and utilize it in initSandboxArchive API to log real-time progress and errors.
      
      * docs(skill): comprehensive user guides for agent skills
      
      * refactor(sandbox): improve TS safety, simplify markdown frontmatter, and support sandboxToolMap info
      DigHuang committed
    • fix: update pro modal titles in multiple languages for consistency (#7107) · 7bf0b268
      * fix: update pro modal titles in multiple languages for consistency
      
      * feat: add commercial dataset type handling and pro modal integration
      
      * perf: pro modal ui
      
      ---------
      
      Co-authored-by: archer <545436317@qq.com>
      siigure committed
  5. 15 Jun, 2026 4 commits
    • perf: node store (#7112) · 9f383002
      * perf: node store
      
      * revert
      
      * fix: loop
      
      * doc
      
      * feat: source
      
      * perf: store chat
      
      * perf: optimize chat node response preview reads
      
      * perf: speed up persisted node response tree compose
      
      * doc
      
      * perf: depth
      
      * perf: chat anination
      Archer committed
    • folder-depth-limit (#7103) · 4fa14557
      * feat: implement folder depth management and error handling
      
      - Added new error codes for folder depth limits in CommonErrEnum.
      - Introduced folder depth validation logic in the parent folder management.
      - Implemented API for fetching subtree maximum folder depth.
      - Enhanced folder creation and movement operations to respect maximum folder depth constraints.
      - Updated UI components to handle folder depth checks and display appropriate error messages.
      - Localized new error messages in English and Chinese.
      
      * refactor: simplify folder depth limit to backend validation
      
      Remove frontend drag pre-check and subtreeDepth API; rename env to
      MAX_FOLDER_DEPTH with strict IntSchema validation; keep create-folder
      button hiding only.
      
      * perf: limit tip
      
      * chore: remove unrelated folder depth changes
      
      ---------
      
      Co-authored-by: archer <545436317@qq.com>
      siigure committed
    • Chat UI improvement (#7118) · 7d5b6a5c
      * feat: add chat scroll to bottom button
      
      * fix: refine chat history pagination and scrollbar
      
      * refactor: remove chat scroll button delay
      
      * fix: align chat action buttons
      
      * fix: stop chat auto scroll after user scrolls up
      
      * fix: truncate long chat placeholder app name
      
      * fix: refresh chat history silently after title update
      
      * fix: stabilize chat input placeholder text type
      Xianquan committed
  6. 13 Jun, 2026 1 commit
    • perf: reduce workflow variable replacement CPU cost (#7108) · 725529dd
      * perf: reduce workflow variable replacement CPU cost
      
      * doc
      
      * doc
      
      * refactor: move workflow variable replacement to service
      
      * test: cover variable key detection
      
      * refactor: move workflow node params helper
      
      * refactor: remove default llm request params
      
      * fix: stop oversized variable replacement rounds
      
      * fix: stop oversized variable replacement without throwing
      
      * doc
      
      * fix: i18n
      
      * fix: error show
      
      * chore: log oversized string replacement
      Archer committed