Skip to content

refactor(api)!: 移除等待专用 timeout 参数 - #6048

Merged
qin-ctx merged 2 commits into
mainfrom
refactor/remove-wait-timeouts
Oct 14, 2026
Merged

qin-ctx merged 2 commits into
mainfrom
refactor/remove-wait-timeouts

Conversation

@qin-ctx

@qin-ctx qin-ctx commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Description

移除各接口等待专用的 timeout,保留 wait 和客户端 HTTP 超时配置,避免同一次请求同时配置两套等待期限。

以写入同一个文件并等待索引完成为例:

# Before:服务端等待最多 60 秒,另受客户端 HTTP 超时约束
client.write("viking://resources/demo.md", "hello", wait=True, timeout=60)

# After:等待处理完成,HTTP 超时由客户端配置控制
client.write("viking://resources/demo.md", "hello", wait=True)

服务端不再接收或向队列传递本次等待的期限;完成、失败和取消仍沿用原有处理流程。wait_processed() 不再接收参数,CLI 的 --wait 保留,等待相关命令的 --timeout 删除。

Human Involvement

  • A human participated in the implementation or review loop
  • This PR was generated entirely by AI agents without human participation in the loop

Related Issue

无。

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement
  • Test update

Changes Made

  • 统一移除资源导入、Skill 新增/更新、内容写入/批量写入、删除、全局等待和 MCP write/edit 的等待超时参数,以及无用的透传、错误分支和辅助函数。
  • 同步 Python、TypeScript、Go SDK、Rust CLI、Studio 类型、Bot、插件、示例和中英文文档。Manifest 私有 Git 导入也使用客户端 HTTP 超时配置。
  • 删除仅供测试使用的队列超时、轮询参数,以及写入和 Skill 等待中无真实入口的全局队列兜底及状态转换辅助函数。请求始终按自身 ID 等待,关闭 telemetry 也不受无关请求影响。
  • 精简重复的参数透传、帮助文本和测试源码检查,删除失效 Mock;保留请求隔离、处理失败和取消回滚等契约。Skill 更新回滚用例改用显式取消触发。

Testing

  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have tested this on the following platforms:
    • Linux
    • macOS
    • Windows

已通过:Python SDK 87 项、TypeScript SDK 59 项及类型检查、Go SDK 测试、Rust CLI 编译检查及请求体定向测试、OpenClaw 213 项及类型检查。服务端请求等待、FS、队列、写入和任务计时的定向检查通过;Python 语法、相关 Ruff 和 git diff --check 通过。服务端集成测试未全绿,未勾选全部单测通过。

未新增测试文件或单元测试函数。

Checklist

  • My code follows the project's coding style
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

Screenshots (if applicable)

不适用。

Additional Notes

调用方需移除这些接口的 timeout / --timeout;仍需调整 HTTP 请求时限时,使用客户端配置。内部任务、网络请求和清理流程自身的超时保留。

保留 wait 和客户端 HTTP 超时配置,同步服务端、SDK、CLI、MCP、插件与文档。

BREAKING CHANGE: 等待相关接口和命令不再支持单独的 timeout / --timeout 参数。
@qin-ctx
qin-ctx merged commit 4496edb into main Oct 14, 2026
15 of 17 checks passed
@qin-ctx
qin-ctx deleted the refactor/remove-wait-timeouts branch October 14, 2026 08:08
@github-project-automation github-project-automation Bot moved this from Backlog to Done in OpenViking project Oct 14, 2026
yenchang265-afk added a commit to yenchang265-afk/OpenViking that referenced this pull request Oct 15, 2026
* feat(docs): send copy and search events to Google Analytics (volcengine#5990)

The docs site has GA4 but no key events, so traffic can be measured
but intent cannot. Send the actions that signal someone is about to
install or integrate OpenViking:

- copy_code: code block copy button, with the block language
- copy_agent_prompt: AgentPrompt copy button
- copy_markdown: "copy page as Markdown"
- docs_search: the existing search event, now also sent to GA

trackEvent still reports to Viewer-Counter and additionally calls gtag
when it is loaded; GA event names use underscores.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* feat(integrations): add Microsoft Agent Framework context provider (volcengine#5578)

* feat(integrations): add Microsoft Agent Framework context provider

Signed-off-by: Hao Zhe <haozhe4547@gmail.com>

* fix(agent-framework): preserve streamed loop capture

Signed-off-by: Hao Zhe <haozhe4547@gmail.com>

* feat(agent-framework): add capture and commit policies

Signed-off-by: Hao Zhe <haozhe4547@gmail.com>

---------

Signed-off-by: Hao Zhe <haozhe4547@gmail.com>

* feat(gateway): embed runtime and separate management access (volcengine#5960)

* feat(gateway): embed runtime with independent management permissions

Co-authored-by: TRAE CLI <traecli@bytedance.com>

* feat(studio): support gateway hosts and management-key access

Co-authored-by: TRAE CLI <traecli@bytedance.com>

* feat(gateway): add init setup and single-port deployment guides

Co-authored-by: TRAE CLI <traecli@bytedance.com>

* fix(gateway): keep data plane up when OpenViking is unavailable

- Delete a gateway key only on an explicit OpenViking 401; unreachable,
  5xx and identity-less /health responses let the request through with a
  revocation_check_unavailable degradation.
- v6 migration keeps v5 request URLs for path-prefixed bases
  (https://openrouter.ai/api -> .../api/v1); bases already ending in a
  version segment such as /api/paas/v4 are left as entered.
- Replace record_request bookkeeping with log(user_id) + save(ttl); capture
  paused rows are now written. Delete management rows before kernel scopes.
- /test reports upstream_key_missing without sending a request; re-importing
  VLM settings refreshes source fields only; degraded probes back off.
- Host-agnostic create_app plus a small host API (seed_defaults,
  import_vlm_objects, delete_data); standalone startup moves to
  standalone.py. Management routes are registered per object.
- Server injects the gateway app into DeletionService, forwards WebSockets
  to the gateway, shares ScopedRoute with /mcp and skips the version gate.
- VLM import defaults provider to openai, strips OpenAI-compatible LiteLLM
  route prefixes and skips non-OpenAI routes; Kimi/GLM normalization is
  shared with the VLM backends.

* refactor(studio): derive gateway permissions from /access

- Keep one management-key event; drop the access-changed/expired events,
  local import-forbidden state and redundant invalidations.
- Derive readOnly and canIssueForOthers once in useGateway; choose the
  navigation list by host type; remove unreachable probe branches.
- Changing an upstream address requires re-entering the API key and
  header values; issuing for yourself never asks to paste a key.
- Map upstream_key_missing, litellm_unsupported_route and
  revocation_check_unavailable; unify key terminology and plural forms.

* docs(gateway): restructure guides and harden upgrade path

- Give each fact one home: concepts and quick start in 15, operations in
  22, the API contract (permissions, reasons, /test results) in 25.
- Split the quick start into local and remote paths and restore the
  memory check; redraw the architecture diagram for both deployments.
- Helm keeps gateway.existingSecret for the encryption key and adds
  gateway.managementKeySecret; Compose no longer passes an empty
  management key.
- The setup wizard drops removed gateway fields and stale 1935 public URLs
  and revisits gateway access when switching between local and remote.

* docs(gateway): rewrite gateway guides for readability

Rewrite the zh and en gateway guides, API reference and Helm notes from the
reader's side: one home per fact, plain wording, behaviour checked against
the code (503 statuses, management key without account_id, key removal
timing, read tool requirement for catalogs, schema errors on downgrade).

* fix(studio): polish gateway copy and states found in a browser walkthrough

- Rewrite zh-CN and en gateway strings around the next step.
- Sign-in separates a rejected OpenViking API key from an unreachable
  OpenViking or gateway.
- Upstream editor: fix buttons sit in the notice action, no duplicate
  default-address link, saved-secret badge drops once the address changes.
- Read-only editors hide placeholders and add/remove controls.
- The issue dialog only asks to paste a key when the server says it cannot
  read it; older servers omit api_key_available.
- Import notice omits empty counts; overview wording fits imported-only
  upstreams.

* fix(gateway): ignore removed v0.5.0 gateway fields with a warning

v0.5.0 configs and the old Helm chart write host, port, workers, url,
openviking_url and admin_token_env into ov.conf. Rejecting them stopped the
whole OpenViking server, not just the gateway, after an upgrade. Drop them
and log a migration hint instead; unknown fields still fail validation.
The old sidecar command keeps failing on its own because the standalone
CLI no longer accepts ov.conf, so the server cannot end up beside a second
gateway on the same store.

* fix(gateway): retry the WAL switch when workers open a store together

Switching a new or v5 SQLite store to WAL needs an exclusive lock, and
SQLite reports a concurrent switch as "database is locked" immediately
instead of waiting for the busy timeout. With several workers starting at
once, one of them could fail on first start or on the v5 upgrade.

* refactor(gateway): one config schema and reuse OpenViking encryption

- Embedded (ov.conf "gateway") and standalone (gateway.conf) share one
  schema; a non-empty OPENVIKING_GATEWAY_<FIELD> overrides the file on both
  hosts. encryption_key_env joins the removed fields that are ignored with
  a warning.
- openviking-gateway takes only --config, looks up gateway.conf like the
  server looks up ov.conf, and gains an "init" subcommand that probes
  OpenViking and writes ~/.openviking/gateway.conf (0600).
- Stored values are encrypted with openviking.crypto when OpenViking
  encryption is enabled (the server's settings when embedded, an
  "encryption" block in gateway.conf when standalone) and kept as plain
  JSON otherwise. The gateway's own Fernet key file is gone.
- The v6 migration re-encodes v0.5 Fernet data in every table using the old
  key from OPENVIKING_GATEWAY_ENCRYPTION_KEY or encryption.key, waiting up
  to ten minutes for the migration lock, and refuses to start without it.

* chore(deploy): pass gateway secrets through one optional Secret

gateway.existingSecret becomes optional and feeds
OPENVIKING_GATEWAY_MANAGEMENT_KEY plus, for the upgrade release only,
OPENVIKING_GATEWAY_ENCRYPTION_KEY. managementKeySecret and the configmap
$VAR injection are removed; Compose passes both variables.

* docs(gateway): document gateway.conf, init and encryption reuse

Describe the shared field table, the environment override rule, both init
paths, encryption following OpenViking, and the one-time v0.5 data
migration. Studio hints point at gateway.conf and the new variables.

* fix(gateway): keep init non-interactive-safe and load the root key at startup

- openviking-gateway init keeps a "$VAR" OpenViking URL as written instead
  of forcing a literal one, and exits on an invalid URL when there is no
  terminal instead of prompting forever.
- The standalone CLI loads the encryption root key once before uvicorn
  starts workers, so bad Vault/KMS/local settings stop startup and workers
  never race to create the local key file.

* refactor(gateway): serve every gateway URL under /gateway

The server mounts the gateway app once at /gateway instead of forwarding
/v1, /api/v3, /api/compatible/v1, /gateway and /api/v1/admin/gateway, so it
no longer claims OpenAI-style root paths. Model APIs move to /gateway/v1,
/gateway/api/v3 and /gateway/api/compatible/v1, the management API to
/gateway/admin, and the upload relay stays at /gateway/uploads. The
standalone host mounts the gateway the same way and keeps Studio, the
OpenViking allowlist and /health at the root. public_url is the external
origin; the gateway appends its mount path. Route labels in metrics and
request logs keep the mount prefix.

* docs(gateway): point clients and Studio at the /gateway prefix

Studio calls /gateway/admin and renders client snippets from the /gateway
base. Guides, API reference, Helm notes and the migration section use
/gateway/v1, /gateway (Claude Code) and /gateway/api/v3.

* docs(gateway): link the animated walkthrough on the website

* docs(gateway): drop the language path from the walkthrough link

* docs(gateway): use the docs-site domain for the walkthrough link

* fix(gateway): address review findings on availability, issuing and config

- Skip the per-request identity check while OpenViking is already marked
  unavailable, and clear that mark on any successful identify; probe every
  second until OpenViking first answers so embedded startup does not leave
  recall off for up to a minute.
- Keep a configured x-api-key header on chat and responses upstreams.
- Require root to name the user it issues a key for (user_required) and
  look up only that user's credential.
- Read the tool catalog for root with a key issued in the account, since
  OpenViking refuses root on /mcp.
- Ignore kubelet service-link values (tcp://, udp://) in environment
  overrides.

* docs(gateway): fix Studio reasons, address hints and operator notes

Studio shows the unreachable-OpenViking text, gives host-specific
public_url hints, and keeps the dedicated unreachable card for standalone
gateways. Docs drop the unreleased managementKeySecret note and the
unconditional workers advice, state the config lookup precisely, and
document user_required and how root reads the tool list.

* feat(gateway): enable the embedded gateway from the container environment

Compose passes OPENVIKING_GATEWAY_ENABLED, so one line in .env (or -e on
docker run) turns the gateway on without editing ov.conf. An embedded
gateway without its own public_url now uses the server's public address
(OPENVIKING_PUBLIC_BASE_URL, then server.public_base_url), the same one
MCP upload links use, so containers configure a single external address.

* feat(studio): enable the embedded gateway from the Gateway page

The Gateway entry now shows for every signed-in user. When the gateway is
off, root on a server with writable ov.conf gets an Enable button: Studio
writes gateway.enabled (and optionally a generated ovgm_ management key,
shown once) through the existing configuration API, restarts the server
and opens the gateway. Multi-worker servers get a manual-restart notice,
read-only ov.conf shows the environment and Helm alternatives, rollbacks
and revision conflicts are reported, and other users are told to ask the
deployer. No backend changes.

* fix(retrieval): bound session search intent analysis (volcengine#6007)

* fix(retrieval): bound session search intent analysis

* fix(retrieval): expose intent analysis fallback status

* fix(retrieval): keep intent timeout change focused

* test(retrieval): focus intent fallback coverage

* feat(cache): 增加顶层 service_name 配置, 删除 namespace/cache_key_prefix  ,使用service_name 统一管理 (volcengine#6011)

* docs: update readme (volcengine#6021)

* refactor(cache): 统一 cache key format (volcengine#6014)

* refactor(model): 统一 VLM 与 Embedding 重试策略 (volcengine#5950)

* refactor(vlm): centralize retry handling

* test(vlm): 补充统一重试边界回归

* refactor(vlm): 收紧统一重试层改动范围

撤回全局错误分类和无关 API 扩张,使本次改造仅聚焦 VLM 重试职责收拢。

* refactor(embedding): 统一模型重试职责

将重试决策集中到 RetryEmbedder,避免 Provider 与 SDK 重试叠乘,同时保持组合模型和账号资源语义。

* fix(embedding): 恢复 Gemini 429 重试

---------

Co-authored-by: zhanghe.1216 <@bytedance.com>

* fix(storage): 保持写入锁直到异步索引完成 (volcengine#6016)

* fix: 延长 content write 文件锁至异步索引完成

* fix: 延长 batch write 批量锁至异步索引完成

---------

Co-authored-by: zhanghe.1216 <@bytedance.com>

* fix(langchain): recognize SDK system health flag (volcengine#5878)

Co-authored-by: r266-tech <r266-tech@users.noreply.github.com>

* fix(storage): sanitize persisted search tags on index writes (volcengine#5862)

* fix(storage): sanitize persisted search tags on index writes

* test(api): settle ancestor refreshes before directory copy

* fix(memory-plugin): carry OPENVIKING_EXTRA_HEADERS on the runtime path and fail on a non-JSON 2xx (volcengine#5988)

* fix(memory-plugin): send the operator's gateway headers on the runtime path

OPENVIKING_EXTRA_HEADERS only reached the stdio MCP proxies (volcengine#5065). The turn-hook
path goes through createOvHttp, which never consulted the environment, so a harness
behind an authenticating gateway sent its captures and recalls without the headers
the gateway requires.

createOvHttp now falls back to parseExtraHeaders(process.env.OPENVIKING_EXTRA_HEADERS)
when the caller passes no map, which keeps the MCP proxies' explicit map authoritative
and gives every other harness the documented escape hatch.

The same scenario exposed a second problem: a gateway answers a header-less request
with its login page at 200/text-html, and the client read only the status, so the
harness reported a connected server while every request went to that page. A 2xx whose
body is not JSON and whose content-type is not JSON is now a failure.

Verified against a self-hosted deployment behind Cloudflare Access through dsh's own
client: /health, session create, message and commit all 200 with the gateway headers;
without them the same client now reports ok=false instead of ok=true.

tests: three cases in ov-http.test.mjs (env headers on the wire, an explicit map still
wins, a 200/text-html is a failure). node --test examples/memory-plugin-shared/*.test.mjs
-> 545 passed, 0 failed.

* chore(memory-plugin): move every distributed plugin version for the shared-lib change

The shared runtime in examples/memory-plugin-shared/lib reaches all six distributed
plugins, and hosts install by the version string in each manifest, so
check-plugin-version-bumps.sh requires each of them to move. Bump the manifests, the
agent-hook host manifests that pair with plugin.json, the dsh wire version reported by
config.mjs, and the two lockfiles that `npm ci` validates.

* chore(memory-plugin): take the version numbers past what main already carries

Merged main into the branch: volcengine#5994 bumped agent-hook, opencode and pi while this PR was
open, so the first bump landed on the same strings main now has and the version check
still saw "changed but not moved". Move those three one patch further (and pi's lockfile
with it); the three others already differ from main.

* perf(retrieval): align default intent planner with compact v4 prompt (volcengine#6039)

* perf(retrieval): compact default intent planner output

* test(retrieval): keep default planner aligned with v4

* fix(api): 修正输入错误与模型失败的 HTTP 状态码 (volcengine#6045)

将非法正则、Skill YAML、ZIP 和搜索字符归为参数错误;保留模型原始异常类型,同类失败返回对应状态,混合失败保留 500。

* fix(svg): 补齐 SVG 转 PNG 所需的运行依赖 (volcengine#6049)

* fix(svg): 补齐 SVG 转 PNG 所需的运行依赖

补充 CairoSVG、Docker Cairo 系统库和安装说明,避免正常 SVG 因依赖缺失导入失败。

Co-authored-by: qin-ctx <qinhaojie.exe@bytedance.com>

* chore(svg): 移除部署文档改动

Co-authored-by: qin-ctx <qinhaojie.exe@bytedance.com>

---------

Co-authored-by: qin-ptr <222410531+qin-ptr@users.noreply.github.com>
Co-authored-by: qin-ctx <qinhaojie.exe@bytedance.com>

* refactor(api)!: 移除等待专用 timeout 参数 (volcengine#6048)

* refactor(api)!: 移除等待专用 timeout 参数

保留 wait 和客户端 HTTP 超时配置,同步服务端、SDK、CLI、MCP、插件与文档。

BREAKING CHANGE: 等待相关接口和命令不再支持单独的 timeout / --timeout 参数。

* refactor: 清理等待适配与过时测试

* feat(cli): support list and context search modes (volcengine#5951)

* feat(cli): support list and context search modes

* fix(cli): surface context retrieval failures

* test(cli): consolidate search mode contract coverage

---------

Co-authored-by: qin-ctx <qinhaojie.exe@bytedance.com>

* fix(snapshot): 复用外层目录锁完成加密快照恢复 (volcengine#6052)

Co-authored-by: qin-ptr <222410531+qin-ptr@users.noreply.github.com>
Co-authored-by: qin-ctx <qinhaojie.exe@bytedance.com>

* test(queuefs): support script-aware cache mocks (volcengine#6055)

Co-authored-by: TRAE CLI <traecli@bytedance.com>

* fix(openwebui): validate session IDs before forwarding requests (volcengine#6059)

Reject URL syntax and empty or dot-only path segments at the session
status tool boundary so callers cannot alter the upstream endpoint.

* fix(ci): 修正 API 契约断言和工作流配置 (volcengine#6062)

对齐现有 API 契约与 SVG 支持,避免旧断言阻塞后续集成检查。
修复 pnpm 安装策略冲突、测试数据版本检查误报和 Pages 并发部署冲突。

* fix(memory): preserve Markdown structure in resource links (volcengine#6054)

* fix: 兼容索引 ACL 列表中的空字符串 (volcengine#6067)

* Feat/redis mysql account store (volcengine#5955)

* feat(account-store): add MySQL and Redis providers

* fix(account-store): harden distributed providers

* fix(mysql): require compatible SQLAlchemy version

* fix(mysql): lock trusted identity provisioning

* fix(redis): harden account cache consistency

* refactor(account-store): simplify provider contract coverage

* fix(account-store): preserve fresh user lookup

* fix(mysql): validate account identifier lengths

* test(account-store): keep shared auth coverage in base

* test(account-store): validate configured provider

* fix(account-store): implement keyless create_account for distributed providers

Main's volcengine#5933 added the abstract AccountStore.create_account to support
trusted keyless identity provisioning. Implement it in the MySQL and
Redis/MySQL providers so they remain instantiable and preserve the
file provider's keyless-admin creation semantics.

* fix(account-store): isolate providers by service name

* fix(account-store): bound identity and credential history

* feat(account-store): support Redis deployment topologies

* fix(account-store): handle Redis TLS and test dependencies

* test(account-store): consolidate provider contract coverage

---------

Co-authored-by: qin-ctx <qinhaojie.exe@bytedance.com>

* docs: 新增数据组织指引,并支持 MCP add_resource parent 自动建目录 (volcengine#6060)

* test(queuefs): support script-aware cache mocks

Co-authored-by: TRAE CLI <traecli@bytedance.com>

* docs: add 23-data-organize.md guide

Co-authored-by: TRAE CLI <traecli@bytedance.com>

* fix(mcp): 内联资源目录约定,移除运行时不可读的文档引用

Co-authored-by: TRAE CLI <traecli@bytedance.com>

* docs(data-organize): 补充日历路径变量提示,projects 行移至表末并强调可选

Co-authored-by: TRAE CLI <traecli@bytedance.com>

---------

Co-authored-by: TRAE CLI <traecli@bytedance.com>

* fix(web-studio): stop sending the wait timeout the server removed

Upstream volcengine#6048 removed the wait-only timeout parameter, but Studio
still sent it: with "Wait for processing" and a timeout filled in, the
add-resource form posted `timeout`, which AddResourceRequest now
rejects with 422, and the terminal's /wait passed a body the
regenerated client types as never.

Drop the Wait Timeout field and its strings, and make /wait take no
arguments (anything after it shows the usage). HTTP request timeouts
stay the client's setting, as upstream documents.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore(docker): drop the PathLock namespace removed upstream

Upstream volcengine#6011 replaced storage.agfs.pathlock.namespace with the
top-level service_name, and the RAGFS config loader now rejects the old
field. Remove it from the compose ov.conf example and the Redis profile
snippet, and note that service_name namespaces the Redis keys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(ragfs): build the cached write_from_path test with a service name

Upstream volcengine#6014 replaced CacheNamespace with a plain service name in
MountableFS::with_cache_runtime, so the fork's streaming-I/O cache test
no longer compiled. Pass the name directly, as upstream's tests do.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web-studio): drop the WaitRequest re-export the client no longer has

Upstream volcengine#6048 removed WaitRequest from the generated types but left it
in index.ts, which fails type-checking.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(config): restore the S3 multipart settings lost in the upstream merge

Stage 3 resolved agfs_config.py by taking upstream's file whole, which
also dropped the fork's multipart_threshold_bytes and
multipart_part_size_bytes S3 fields. Pydantic ignores unknown fields,
so configured multipart settings would silently stop reaching s3fs.
Restore both fields; test_config_validation covers them again.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Signed-off-by: Hao Zhe <haozhe4547@gmail.com>
Co-authored-by: Zayn Jarvis <zaynjarvis@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: z1gon <130889443+ehz0ah@users.noreply.github.com>
Co-authored-by: t0saki <15712521+t0saki@users.noreply.github.com>
Co-authored-by: Lusen Dong <cicomaple@gmail.com>
Co-authored-by: baojun-zhang <zhangbaojun.1@bytedance.com>
Co-authored-by: MaojiaSheng <shengmaojia@bytedance.com>
Co-authored-by: hezhang-1216 <zhanghe.1216@bytedance.com>
Co-authored-by: Evo <r2668940489@gmail.com>
Co-authored-by: r266-tech <r266-tech@users.noreply.github.com>
Co-authored-by: Xinmin Zeng <135568692+fancyboi999@users.noreply.github.com>
Co-authored-by: xiebaiyuan <xiebaiyuan@139.com>
Co-authored-by: Qin Haojie <qinhaojie.exe@bytedance.com>
Co-authored-by: bot-of-qin-ctx <qin_haojie@qq.com>
Co-authored-by: qin-ptr <222410531+qin-ptr@users.noreply.github.com>
Co-authored-by: dingben <1162833047@qq.com>
Co-authored-by: TRAE CLI <traecli@bytedance.com>
Co-authored-by: zhanggaoyuan <1670519171@qq.com>
Co-authored-by: chuanbao666 <sunchuanbao@bytedance.com>
Co-authored-by: runyunzhou <164479727+runyunzhou@users.noreply.github.com>
Co-authored-by: root <root@DESKTOP-97A9VQ8.localdomain>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants