1. 23 Jun, 2026 2 commits
  2. 22 Jun, 2026 8 commits
    • feat(chat): improve chat feedback interactions (#7160) · 4dbfe20c
      * feat(chat): improve like feedback animation
      
      * feat(chat): refine agent plan choice selection
      
      * fix(chat): correct like feedback click typing
      
      * fix(chat): narrow like feedback icon props
      
      * fix(chat): keep choice toggle below options
      
      * fix(chat): tighten choice toggle height
      
      * fix(chat): render choice toggle as compact text button
      
      * fix(chat): remove choice toggle wrapper spacing
      
      * fix(chat): prevent choice highlight clipping
      
      * fix(chat): add choice toggle hover background
      
      * fix(chat): smooth choice collapse layout
      
      * fix(chat): restore choice highlight shadow
      
      * fix(chat): adjust choice width and toggle spacing
      
      * fix(chat): avoid duplicate choice toggle spacing
      
      * fix(chat): apply action hover lift consistently
      Xianquan committed
    • extract log (#7161) · a4c5216c
      Archer committed
    • feat(markdown): add quick replies feature and related styling (#7136) · 01d716f0
      * feat(markdown): add quick replies feature and related styling
      
      - Introduced a new QuickReplies component to render quick reply options in the Markdown renderer.
      - Updated Markdown component to support quick replies with new props for enabling the feature and handling click events.
      - Enhanced styling for code blocks containing quick replies to ensure proper display.
      - Added utility functions to parse and validate quick replies content.
      - Integrated quick replies context in ChatBox to manage state and interactions.
      
      This update enhances user interaction by allowing quick replies directly within the chat interface.
      
      * refactor(markdown): streamline quick replies integration and context management
      
      * perf: quick reply
      
      * add user select
      
      ---------
      
      Co-authored-by: archer <545436317@qq.com>
      siigure committed
    • adapt old version config (#7158) · 3ac40877
      * adapt old version config
      
      * fix: log
      
      * fix: ts
      
      * fix: align openapi output option types
      
      * doc
      Archer committed
    • 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
  3. 18 Jun, 2026 15 commits
  4. 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
  5. 16 Jun, 2026 12 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