1. 10 Aug, 2026 3 commits
  2. 09 Aug, 2026 2 commits
  3. 07 Aug, 2026 5 commits
    • feat(outlink): new configuration page (#7456) · 47134990
      * feat(outlink): add channel counts
      
      * feat(publish): show channel connection counts
      
      * refactor(outlink): query optimization
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * feat(outlink): a11y optimizations
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * test(outlink): fix test failure
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * fix(outlink): add required
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * refactor(outlink): address review comments
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      ---------
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      Nixieboluo committed
    • Doc (#7471) · 549230b0
      * doc
      
      * doc
      
      * doc
      Archer committed
    • feat(tool-marketplace): support partial plugin update retries (#7444) · 9c8450da
      * feat(plugin): support partial batch update retries
      
      * fix: table header font size
      
      * refactor(upload): centralize extension normalization helpers
      
      * feat(marketplace): align batch update tool details
      
      * fix(tool-marketplace): handle plugin update failures and refine status
      
      * fix(i18n): rename ai managed label
      
      * fix(i18n): rename generated input labels
      
      * fix(marketplace): track installed plugin version in detail
      
      * fix(marketplace): make version install action exclusive
      
      * fix(marketplace): sync selected installed version
      
      * fix(marketplace): persist installed version in tool state
      
      * fix(marketplace): persist installed version status
      
      * fix(marketplace): truncate long tool card titles
      
      * fix(marketplace): preserve installed state after tool updates
      
      * fix(marketplace): surface install errors and defer success toast
      Finley Ge committed
  4. 06 Aug, 2026 8 commits
  5. 05 Aug, 2026 6 commits
    • Account verification (#7452) · 4b88d6e2
      * Account verification (#7390)
      
      * feat: add account verification service
      
      * feat: login access account verification service
      
      * fix(account-verification): remove googleAuthToken, username with prefix
      
      * Account verification (#7418)
      
      * Account verification (#7390)
      
      * feat: add account verification service
      
      * feat: login access account verification service
      
      * fix(account-verification): remove googleAuthToken, username with prefix
      
      * feat(account-verify): add tmp_datas verification, remove auth_code
      
      * fix account-verification
      
      * fix account-verification
      
      * fix account-verification
      
      * fix account-verification
      
      * fix account-verification
      
      * Refine account verification behavior
      
      * fix(auth): support independent verification codes
      
      * refactor: migrate frequency limits to redis
      
      * refactor: centralize rate limit policies
      
      * update version
      
      * update doc
      
      * doc
      
      * perf: snadbox
      
      * test: sync agent reminder assertions
      
      * fix: reject unknown password reset accounts
      
      * fix(account-verify): ui (#7458)
      
      * fix(account-verify): ui
      
      * fix(account-verify): fix off email register
      
      * submodule
      
      * fix(account-verify): refine send code validation
      
      ---------
      
      Co-authored-by: light5980 <148292178+shortlight5980@users.noreply.github.com>
      Archer committed
    • fix(sandbox): handle OpenSandbox PVC lifecycle races and UID preconditions (#7435) · fc70c504
      * fix(sandbox): handle OpenSandbox PVC lifecycle races and UID preconditions (#7423)
      
      * fix(sandbox): handle OpenSandbox PVC lifecycle races and UID preconditions
      
      * refactor(sandbox): operate volume manager on explicit claimName
      
      * refactor(sandbox): configure OpenSandbox image and compact volume names
      
      refactor(sandbox): unify volume schemas and volume-manager contracts
      
      fix(sandbox): harden OpenSandbox volume lifecycle
      
      * fix(sandbox): handle stale restore rollback phases and legacy volume fallback
      DigHuang committed
    • fix: swc helpers (#7457) · 93955e04
      Xianquan committed
    • refactor(redis): consolidate Redis runtime and BullMQ services in DAL (#7393) · 6fe7cedf
      * refactor(redis): establish runtime and keyspace
      
      * refactor(redis): add capabilities and script registry
      
      * refactor(redis): centralize phase 3a stores
      
      * refactor(redis): migrate wechat qr login store
      
      * refactor(redis): move Redis access into DAL
      
      * refactor(redis): migrate lease repository
      
      * refactor(redis): migrate stop signal and stream resume repositories
      
      * refactor(redis): complete DAL migration
      
      * test(redis): complete DAL Redis test coverage
      
      * chore(redis): align pro lockfile importer
      
      * test(redis): update service and app redis mocks
      
      * chore(redis): align pro migration submodule
      
      * refactor(redis): consolidate cache migration
      
      * refactor(redis): convert runtime to class
      
      * chore(deps): update redis and tooling dependencies
      
      * refactor(redis): move BullMQ services into DAL
      
      * fix(redis): harden DAL checks and lifecycle
      
      * chore: fix bullmq to 5.52.2
      
      * chore: bump deps
      
      * test(redis): mock captured BullMQ binding
      
      * lock
      
      * docs: consolidate DAL and WeChat designs
      
      * chore: remove DAL review artifacts
      
      ---------
      
      Co-authored-by: Archer <545436317@qq.com>
      Xianquan committed
  6. 04 Aug, 2026 8 commits
  7. 03 Aug, 2026 8 commits
    • feat: support multiple questions in agent asking tool (#7408) · 34632ba4
      * feat: prepare support for ask_user v2 in aux gen
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * fix: align ask composer UI
      
      * feat: prepare support for ask_user v2 in agent
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * feat: unified frontend logic for ask_user v2
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * test: update tests for ask_user v2
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * refactor: more strict ask_user schema validation
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * refactor: add transitions and hide answer when retrying
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * refactor: reorganize ask v2 composer ui
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * test: update tests
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * feat: format ask user answers
      
      * refactor: remove compat for legacy agent_ask in aux gen
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * fix: agent ask composer ui focus handling
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * refactor: cleanup compatibility fallback for agent ask
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * feat: legacy ask_user record compatibility
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * test: fix test mismatches
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * feat: convert legacy ask to the new one
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * chore: trigger correct pro build
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      
      * refactor: remove legacy auxiliary ask fallback
      
      * chore: update pro storage mock fix
      
      Signed-off-by: Archer <545436317@qq.com>
      
      * submodule
      
      ---------
      
      Signed-off-by: Nixieboluo <me@sagirii.me>
      Signed-off-by: Archer <545436317@qq.com>
      Co-authored-by: Archer <545436317@qq.com>
      Nixieboluo committed
    • fix(workflow): preserve explicit tool input render types (#7437) · 8751665d
      * fix(workflow): preserve explicit tool input render types
      
      * fix(tool-runtime): exclude referenced inputs from model schema
      Finley Ge committed
    • perf: improve Sandbox timeouts and update 4.16.0 documentation (#7438) · b60be546
      * perf: timeout and doc
      
      * fix(docs): use valid dotenv code fence
      Archer committed
    • feat: unify browser object storage multipart uploads (#7411) · f732bc52
      * feat: optimize object storage multipart upload
      
      * feat: unify browser object storage uploads
      
      * chore: update storage package and pro submodule
      
      * Bump deps
      
      * fix: configure home chat custom PDF parsing
      
      * fix: extend dataset parsing timeout
      
      * fix: ocr comments
      
      * fix: resolve pro submodule conflict
      
      * chore: remove invalid multipart benchmark command
      
      * refactor: select multipart uploads by file size
      
      ---------
      
      Co-authored-by: Archer <545436317@qq.com>
      Xianquan committed
    • fix(dataset): export index and metadata columns in exportAll (#7436) · 8fe60f24
      The schema-detection aggregate in exportAll builds its $match from teamId
      (returned by authDataset as a string). find() casts the string to ObjectId,
      but aggregate() does not schema-cast $match values, so the aggregation
      matched zero documents. exportSchema became undefined, indexCount/hasMetadata
      fell back to 0/false, and the CSV header collapsed to q,a.
      
      Wrap teamId and dataset _ids in Types.ObjectId so the aggregate $match works.
      dataset _ids are already ObjectId from .lean(), so that wrap is defensive.
      
      Co-authored-by: Claude <noreply@anthropic.com>
      Hxy committed
    • 当 DOCX 文件名包含空格时(如 新建 DOCX 文档 (2).docx),会触发以下连锁反应导致图片 404 (#7432) · 7b382e80
      * Fix regex for S3 markdown and improve VLM model fallback
      
      Update regex pattern for S3 markdown key and adjust fallback logic for VLM model retrieval.
      
      [^)]+? → [^)>]+?:在排除列表中增加 > 字符
      (${pattern}) → <?(${pattern})>?:URL 前后添加可选的 <> 包裹匹配
      
      * Implement space replacement in S3 key handling
      
      Add function to replace spaces with underscores in S3 key.
      
      在 replaceParentheses 后新增 replaceSpaces,将所有空白字符(\s+)替换为下划线,避免新上传的文件产生含空格的 S3 key。
      
      * Fix filename formatting tests in utils.test.ts
      
      Updated test cases to ensure formatted filenames replace spaces with underscores and handle multiple spaces correctly.
      
      更新 getFormatedFilename 的空格文件名测试期望
      更新真实场景的测试期望
      新增 5 个空格替换测试用例(单独替换、括号+空格组合、连续空格、首尾空格等场景)
      
      * fix: handle S3 markdown key edge cases
      
      ---------
      
      Co-authored-by: Xianquan <whoeverimf5@gmail.com>
      ai123 committed
    • feat: add metadata field to dataset_data for custom metadata support\… (#7400) · 5f7d76f4
      * feat: add metadata field to dataset_data for custom metadata support\n\n- Zod schemas: add metadata to DatasetDataSchema, DatasetDataItemSchema, CreateDatasetDataPropsSchema, UpdateDatasetDataPropsSchema, PushDataChunkSchema, GetDataListItemSchema\n- MongoDB schemas: add metadata to dataset_datas and dataMetadata to dataset_trainings\n- CSV import: parse header row to identify non-q/a/indexes columns as metadata keys\n- Training pipeline: pass metadata through training queue (dataMetadata) to dataset_data (metadata)\n- Search output: include metadata in search result items via buildSearchResultItem\n- API: include metadata in v2/list responses\n- Template: update download template header to demo metadata column, relax header validation to check only first two columns are q,a\n\nCo-Authored-By: Claude <noreply@anthropic.com>
      
      * fix: preserve dataset metadata across import and export
      
      * chore: remove metadata design document
      
      * fix: allow a single metadata template column
      
      * fix: reject legacy dataset template headers
      
      * docs: add dataset metadata release note
      
      ---------
      
      Co-authored-by: hexiaoyan30010 <30010@sangfor.com>
      Co-authored-by: Archer <545436317@qq.com>
      Hxy committed