Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
9bfefd5
style: relax chat area max-width for larger screens
limityan Apr 26, 2026
53a6e7c
style(i18n): modify zh-CN and zh-TW locales
limityan Apr 26, 2026
1c7d2fd
fix(flow-chat): use scrollToIndex for unread session scroll-to-bottom
limityan Apr 26, 2026
31f06a9
feat(session): add needsUserAttention for pending tool confirmations …
limityan Apr 26, 2026
77b8692
fix: skip unread marking for user-cancelled sessions
limityan Apr 26, 2026
6122602
refactor(web-ui): move terminal into tool cards and refresh flow chat UI
G-CWing Apr 26, 2026
46cc58c
docs: update AGENTS.md with relay-server, release-fast, Windows OpenS…
limityan Apr 26, 2026
d041053
docs: refactor AGENTS.md into navigation mode, deduplicate CONTRIBUTI…
limityan Apr 26, 2026
a1650d5
fix(session): sort sessions by lastActiveAt to auto-promote on user m…
limityan Apr 26, 2026
b38097c
feat(desktop): add devtools feature with interactive element inspector
limityan Apr 26, 2026
0a03030
feat(deep-review): improve action bar UX with priority grouping and d…
limityan Apr 26, 2026
5743a06
feat(deep-review): replace raw prompt with reviewer context in task c…
limityan Apr 26, 2026
c72f7a4
feat(agentic): harden tool pipeline, execution, and SSE streaming (#538)
bobleer Apr 26, 2026
70c7aff
feat(web-ui): refine file operation tool card expand and open-in-editor
G-CWing Apr 26, 2026
9b9f67a
feat(web-ui): editor shortcut focus, flow chat cards, session ordering
G-CWing Apr 26, 2026
e40b4f2
fix(session): mark interrupted sessions as unread on close and restore
limityan Apr 26, 2026
6480dda
fix(session): add interrupted unread state for partial stream recovery
limityan Apr 26, 2026
b654668
fix(subagent): hide empty subagent container to prevent white gap
limityan Apr 26, 2026
ae0cf78
fix(debug): use isTauriRuntime and always register shortcuts
limityan Apr 26, 2026
43411a0
test(web-ui): fix deepReviewActionBarStore tests for zustand snapshots
G-CWing Apr 26, 2026
68edbcb
fix(web-ui): tool card header inset for trailing controls
G-CWing Apr 26, 2026
728802b
docs(agentic): streamline builtin gstack skills and expand team mode …
bobleer Apr 26, 2026
89161cd
refactor: move ACP integration to dedicated crate
wgqqqqq Apr 25, 2026
23c6692
feat: improve ACP server integration
wgqqqqq Apr 26, 2026
8d4388a
feat: add ACP model selection support
wgqqqqq Apr 26, 2026
a65cea0
fix(snapshot): handle stale dedup references and empty baselines (#549)
bobleer Apr 26, 2026
da107c7
fix(web-ui): align subagent items padding with tool card header (#550)
bobleer Apr 26, 2026
c845aef
fix(web-ui): keep session ordering stable
limityan Apr 26, 2026
afdc437
fix(web-ui): improve deep review action bar UX
limityan Apr 26, 2026
de2b97c
fix: prevent unread session dots from reappearing after restart
limityan Apr 26, 2026
d106abb
fix: internationalize reviewer role description in deep review subage…
limityan Apr 26, 2026
70ab01c
perf(deep-review): add efficiency rules and role-specific strategy di…
limityan Apr 26, 2026
f428a54
fix(web-ui): align ReviewTeamPage content width and padding with pare…
limityan Apr 26, 2026
b9b1a16
fix(persistence): add index completeness check to list_session_metadata
limityan Apr 26, 2026
4f61e10
docs: update deep review design with frontend reviewer and always-on …
limityan Apr 26, 2026
6998597
feat(chat): add session branching from turn footer
wsp1911 Apr 26, 2026
3453130
refactor(btw): make /btw threads transient and align persistence flow
wsp1911 Apr 26, 2026
5d054fe
feat(deep-review): add architecture and frontend reviewer UI support
limityan Apr 26, 2026
4095f9e
feat(web-ui): polish review team page and session config layout
G-CWing Apr 27, 2026
a882cd5
refactor(agents): redesign AgentTeamCard layout and styling
limityan Apr 27, 2026
8509dc6
i18n(agents): localize agent card descriptions
limityan Apr 27, 2026
3f01108
feat(skills): lower bitfun skill priority and show shadowed badges
limityan Apr 27, 2026
fd270ec
refactor(core): generalize frontend reviewer description beyond React
limityan Apr 27, 2026
5015fd3
style(chat-input): relax collapsed input capsule sizing
limityan Apr 27, 2026
2c1f3a3
fix(web-ui): reset session state to idle after send message failure
limityan Apr 27, 2026
8a744be
fix(deep-review): make subagent ignore-timeout work correctly
limityan Apr 27, 2026
bb66ebd
feat(skills, agents): rename shadowed badge and localize agent descri…
limityan Apr 27, 2026
95e068a
test: normalize SSE fixture endings and gate raw SSE logging
wsp1911 Apr 27, 2026
b19eb47
ci: run bitfun-core tests on linux macos and windows
wsp1911 Apr 27, 2026
f62d3ec
feat(nav-panel): add sticky absorption to workspace cards
limityan Apr 27, 2026
55134d8
feat(deep-review): enhance error and interruption experience
limityan Apr 27, 2026
4400b49
fix: modify display effect of deep review timeout
limityan Apr 28, 2026
189f8c1
fix(web-ui): stabilize theme sync and session row layout
limityan Apr 28, 2026
1169599
fix(web-ui): localize AI initialization config error
limityan Apr 28, 2026
682be27
fix(nav-panel): align session tree actions
limityan Apr 28, 2026
a852430
style(flow-chat): tighten chat stream spacing
limityan Apr 28, 2026
e3c3488
style(nav): tighten child session row spacing
limityan Apr 28, 2026
713bede
fix(nav): clip collapsed workspace sidebar
limityan Apr 28, 2026
5c503ab
fix(markdown): stabilize chat link actions and color
limityan Apr 28, 2026
f91c68d
feat(flow-chat): refine terminal command card controls
limityan Apr 28, 2026
59639d2
Add flashgrep-backed workspace search
wgqqqqq Apr 28, 2026
961db77
docs(readme): document flashgrep + ripgrep search gains
G-CWing Apr 28, 2026
15b038e
feat(web-ui): workspace flashgrep index modal and row layout
G-CWing Apr 28, 2026
361aae0
fix(search): honor workspace max file size for flashgrep
wgqqqqq Apr 28, 2026
31a84bb
chore(observability): add agent runtime timing diagnostics
limityan Apr 28, 2026
71a786b
feat(flow-chat): add transient runtime wait status
limityan Apr 28, 2026
aecc7a8
fix(flow-chat): use runtime status i18n key
limityan Apr 28, 2026
ccc0e6e
fix(flow-chat): align git command tool card
limityan Apr 28, 2026
ebb6dd4
fix(git): treat git diff exit code 1 as success when stdout is non-empty
limityan Apr 28, 2026
7b1f9cd
fix(web-ui): polish review action bar and i18n
limityan Apr 28, 2026
bbad861
Bump version to 0.2.5
wgqqqqq Apr 28, 2026
9a35f81
feat(ui): show warning banner when dialog turn stops abnormally
limityan Apr 29, 2026
fa921ef
fix(flow-chat): restore processingHints random hints for runtime status
limityan Apr 29, 2026
155dc9e
refactor(web-ui): unify compact tool card icon and text sizing via CS…
limityan Apr 29, 2026
394ecb2
fix(git_tool): strip leading operation name from args to prevent doub…
limityan Apr 29, 2026
cec2041
fix(web-ui): only show explore region scrollbar when content overflows
limityan Apr 29, 2026
5b0fbf3
feat: add ACP client sessions
wgqqqqq Apr 27, 2026
9872031
fix: normalize ACP bash command params
wgqqqqq Apr 27, 2026
e1b65e4
refactor: centralize ACP stream handling
wgqqqqq Apr 27, 2026
804f3fe
Improve ACP agent setup UI
wgqqqqq Apr 28, 2026
5ffefcb
Refine ACP agents settings page
wgqqqqq Apr 28, 2026
1911138
Fix ACP stream timeout and nav overflow
wgqqqqq Apr 28, 2026
dc51966
fix: clean up ACP client lifecycle
wgqqqqq Apr 29, 2026
7c2c266
fix: isolate ACP sessions
wgqqqqq Apr 29, 2026
feb691e
chore: remove ACP design draft
wgqqqqq Apr 29, 2026
4f9b6d4
fix(skill-market): enable downloading skills to local user path while…
kev1n77 Apr 29, 2026
f772480
feat(web-search): support displaying summary when no search results
limityan Apr 29, 2026
77a0056
fix(web-ui): inline-code color overrides link color in light theme
limityan Apr 29, 2026
f9b2ff4
feat: increase max dialog rounds to 200 and add soft limit continuation
limityan Apr 29, 2026
4809fe9
fix(core): handle git diff args starting with -- separator
limityan Apr 29, 2026
b645795
Refactor flashgrep lifecycle and workspace activation
wgqqqqq Apr 29, 2026
dd7e91a
feat(ask-user-question): add tooltip for truncated option descriptions
limityan Apr 30, 2026
bf26268
feat(skills): add hide-duplicates filter and refine add-skill button …
limityan Apr 30, 2026
1ecf62f
i18n(web-ui): internationalize context compression display texts
limityan Apr 30, 2026
1ea248b
perf: increase Read tool defaults and add anti-fragmentation guidance
limityan Apr 30, 2026
9c56e90
feat(ui): show subagent error in banner instead of tooltip
limityan Apr 30, 2026
1410acf
feat(deep-review): enhance action bar UX with jump links, decision co…
limityan Apr 30, 2026
39b87ff
fix(flow-chat): improve Explore card compactness and subagent text tr…
limityan Apr 30, 2026
f4bb049
feat(desktop,web-ui): Petdex agent companion import, presets, and del…
bobleer May 6, 2026
6803179
add agent companion desktop pet (#589)
bobleer May 7, 2026
d1feb32
fix(web-ui): restore inline ACP file approval actions
wgqqqqq May 7, 2026
3f31784
add desktop pet interaction moods (#590)
bobleer May 7, 2026
0801fc3
refine desktop pet task bubbles (#591)
bobleer May 7, 2026
267d120
feat(snapshot,web-ui,desktop): snapshot plumbing, pet roster, session…
bobleer May 7, 2026
e5e9920
Gate accelerated workspace search and refresh bundled flashgrep
wgqqqqq May 7, 2026
3cd119e
Support arch-specific bundled flashgrep binaries
wgqqqqq May 7, 2026
a8a7395
Refresh flashgrep binaries, add desktop dev config, and skip ACP sess…
wgqqqqq May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ jobs:
run: cargo check --workspace --exclude bitfun-cli

- name: Run core Rust tests
if: runner.os == 'Linux'
run: cargo test --locked -p bitfun-core

# ── Frontend: build ────────────────────────────────────────────────
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ tests/e2e/reports/
.cursor
.cursor/rules/no-cargo.mdc
.sisyphus/
.worktrees/

ASSETS_LICENSES.md

external/
external/
206 changes: 81 additions & 125 deletions AGENTS-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,77 +2,97 @@

# AGENTS-CN.md

## 概览

BitFun 是一个由 Rust workspace 与共享 React 前端组成的项目。

仓库核心原则:**先保持产品逻辑平台无关,再通过平台适配层对外暴露能力**。

- `src/crates/core`:共享产品逻辑中心
- `src/crates/transport`:Tauri / WebSocket / CLI 适配层
- `src/crates/api-layer`:共享处理器与 DTO
- `src/apps/desktop`:Tauri 桌面宿主应用
- `src/apps/server`:web 后端运行时
- `src/apps/cli`:CLI 运行时
- `src/web-ui`:桌面端与 server/web 共享前端
- `BitFun-Installer`:独立安装器应用
- `tests/e2e`:桌面端 E2E 测试
## 快速开始

1. 在修改架构敏感代码前,先阅读 `README.md` 和 `CONTRIBUTING.md`。
2. 桌面端开发优先使用 `pnpm run desktop:dev` — 提供完整热更新(Vite HMR + Rust 自动重编译并重启)。仅在需要更快冷启动且只迭代前端时使用 `pnpm run desktop:preview:debug`(Rust 改动不会自动重编译)。
3. 改完后按下方表格执行与改动范围匹配的最小验证。

## 3 步快速上手
## 模块索引

1. 在修改架构敏感代码前,先阅读 `README.md`、`CONTRIBUTING.md` 和本文件。
2. 共享前端改动或 Rust / Tauri 改动后的本地桌面快速人工验证,都优先使用 `pnpm run desktop:preview:debug`。它会在已有 debug 桌面二进制可复用时直接预览,并在二进制缺失或 Rust / Tauri 输入更新后自动执行一次快速本地重编译。`pnpm run desktop:dev` 保留给完整 Tauri dev 流程、首次初始化,或启动 / 构建链路本身的调试;仅浏览器前端验证时使用 `pnpm run dev:web`。
3. 改完后按下方最小验证集合执行检查。
| 模块 | 路径 | Agent 文档 |
|---|---|---|
| Core(产品逻辑) | `src/crates/core` | [AGENTS.md](src/crates/core/AGENTS.md) |
| Transport 适配层 | `src/crates/transport` | (使用 core 指南) |
| API layer | `src/crates/api-layer` | (使用 core 指南) |
| AI adapters | `src/crates/ai-adapters` | [AGENTS.md](src/crates/ai-adapters/AGENTS.md) |
| 桌面应用 | `src/apps/desktop` | [AGENTS.md](src/apps/desktop/AGENTS.md) |
| Server | `src/apps/server` | (使用 core 指南) |
| CLI | `src/apps/cli` | (使用 core 指南) |
| 中继服务器 | `src/apps/relay-server` | (使用 core 指南) |
| 共享前端 | `src/web-ui` | [AGENTS.md](src/web-ui/AGENTS.md) |
| 安装器 | `BitFun-Installer` | [AGENTS.md](BitFun-Installer/AGENTS.md) |
| E2E 测试 | `tests/e2e` | [AGENTS.md](tests/e2e/AGENTS.md) |

## 核心命令
## 最常用命令

```bash
# 安装
pnpm install
pnpm run e2e:install

# 主要开发流程
pnpm run desktop:dev
pnpm run desktop:preview:debug
pnpm run dev:web
pnpm run cli:dev
pnpm run installer:dev
# 开发
pnpm run desktop:dev # 完整热更新:Vite HMR + Rust 自动重编译并重启
pnpm run desktop:preview:debug # 复用预构建二进制 + Vite HMR;无 Rust 自动重编译
pnpm run dev:web # 纯浏览器前端
pnpm run cli:dev # CLI 运行时

# 前端
# 检查
pnpm run lint:web
pnpm run type-check:web
pnpm --dir src/web-ui run test:run
pnpm run build:web

# Rust
cargo check --workspace

# 测试
pnpm --dir src/web-ui run test:run
cargo test --workspace
cargo test -p bitfun-core <test_name> -- --nocapture

# Desktop / E2E
# 构建
cargo build -p bitfun-desktop
pnpm run e2e:test:l0
pnpm --dir tests/e2e exec wdio run ./config/wdio.conf.ts --spec "./specs/<file>.spec.ts"
pnpm run build:web

# 快速构建(开发 / CI 提速)
pnpm run desktop:build:fast # debug 构建,不打包
pnpm run desktop:build:release-fast # release 但降低 LTO
pnpm run desktop:build:nsis:fast # Windows 安装器,release-fast profile
pnpm run installer:build:fast # 安装器应用,快速模式
```

## 本地桌面快速迭代
完整脚本列表见 [`package.json`](package.json)。

## 全局规则

### 日志

日志必须只用英文,且不能使用 emoji。

- 前端:[src/web-ui/LOGGING.md](src/web-ui/LOGGING.md)
- 后端:[src/crates/LOGGING.md](src/crates/LOGGING.md)

### Tauri command

- command 名称:`snake_case`
- TypeScript 可以用 `camelCase` 包装,但调用 Rust 时要传结构化 `request`

```rust
#[tauri::command]
pub async fn your_command(
state: State<'_, AppState>,
request: YourRequest,
) -> Result<YourResponse, String>
```

- `pnpm run desktop:preview:debug` 会启动或复用 web dev server,并直接拉起 `target/debug/bitfun-desktop(.exe)`,不会经过 `tauri dev`。当已有 debug 二进制仍然可复用时它会直接预览;当二进制缺失,或 Rust / Tauri 输入比当前二进制更新时,它会先以 `CARGO_PROFILE_DEV_DEBUG=0` 和更高并行 codegen 快速重编 `bitfun-desktop`,再进入预览。
- `pnpm run desktop:preview:debug -- --force-rebuild` 是显式强制重编后再预览的兜底入口,只有在你明确想忽略时间戳复用判断时才使用。
- 上面的 preview 流程只是本地迭代加速手段,不能替代下方与改动范围匹配的最小验证集合。
- 如果用户的意图是“快速看看效果”“本地跑起来看一下”这类人工预览,即使表述里同时出现了“编译”或“调试版本”,也优先使用上面的 preview 命令。
- `pnpm run desktop:build:fast` 只保留给“明确要一个 debug 构建产物,且不需要顺手启动预览”的场景。
- 意图示例:
- “本地编译一个调试版本快速看看效果” -> `pnpm run desktop:preview:debug`
- “只编一个 debug 产物给我,不用启动” -> `pnpm run desktop:build:fast`
```ts
await api.invoke('your_command', { request: { ... } });
```

## 打包请求
### 平台边界

- 当用户提出打包、release 或构建可分发桌面产物,但没有明确点名产物形式时,先确认目标打包类型,再执行构建。
- 要区分“本地临时产物”和“正式 release 交付物”。除非用户明确要求,否则不要把 `desktop:preview:*`、debug 构建,或 `--no-bundle` 的快速产物当成最终给用户分发的 release。
- 如果用户的语义明显是“给 Windows 最终用户安装”,优先使用 `pnpm run desktop:build:nsis`。
- 如果用户明确要“独立可执行文件”而不是安装器,优先使用 `pnpm run desktop:build:exe`。
- 如果用户已经明确点名目标格式,就不要重复确认,直接走对应打包流程。
- 不要在 UI 组件里直接调用 Tauri API;应通过 adapter / infrastructure 层访问。
- 桌面端专属集成应放在 `src/apps/desktop`,再通过 transport / API layer 回流到共享逻辑。
- 在共享 core 中避免使用 `tauri::AppHandle` 等宿主 API;优先使用 `bitfun_events::EventEmitter` 等共享抽象。

## 架构

Expand All @@ -90,7 +110,7 @@ pnpm --dir tests/e2e exec wdio run ./config/wdio.conf.ts --spec "./specs/<file>.

`src/crates/core` 是代码库中心。

重要区域
主要区域

- `agentic/`:agents、prompts、tools、sessions、execution、persistence
- `service/`:config、filesystem、terminal、git、LSP、MCP、remote connect、project context、AI memory
Expand All @@ -104,70 +124,10 @@ SessionManager → Session → DialogTurn → ModelRound

会话数据保存在 `.bitfun/sessions/{session_id}/`。

### 前端与桌面端边界

- `src/web-ui` 同时服务 Tauri 桌面端和 server/web
- 不要在 UI 组件里直接调用 Tauri API;应通过 adapter / infrastructure 层访问
- 仅桌面端集成应放在 `src/apps/desktop`,再通过 transport / API layer 回流到共享逻辑
- 在共享 core 中避免使用 `tauri::AppHandle` 等宿主 API;优先使用 `bitfun_events::EventEmitter` 等共享抽象

## 仓库规则

### 日志

日志必须只用英文,且不能使用 emoji。

- 前端:`src/web-ui/LOGGING.md`
- 后端:`src/crates/LOGGING.md`

示例:

```ts
const log = createLogger('ModuleName');
log.info('Loaded items', { count });
```

```rust
use log::{debug, error, info, trace, warn};
info!("Registered adapter for session {}", session_id);
```

### Tauri command

- command 名称:`snake_case`
- Rust 侧:`snake_case`
- TypeScript 可以用 `camelCase` 包装,但调用 Rust 时要传结构化 `request`

```rust
#[tauri::command]
pub async fn your_command(
state: State<'_, AppState>,
request: YourRequest,
) -> Result<YourResponse, String>
```

```ts
await api.invoke('your_command', { request: { ... } });
```

### 更细粒度规则

- 如果修改 `src/crates/ai-adapters`,需要运行 `src/crates/core/tests` 中的 stream integration tests
- 如果修改 `src/crates/core/src/agentic/execution/stream_processor.rs`,结束前需要运行 stream integration tests

## 先看哪里

- Agent mode:`src/crates/core/src/agentic/agents/`、`src/crates/core/src/agentic/agents/prompts/`、`src/web-ui/src/locales/*/scenes/agents.json`
- Deep Review / 代码审核团队:`src/crates/core/src/agentic/deep_review_policy.rs`、`src/crates/core/src/agentic/agents/deep_review_agent.rs`、`src/crates/core/src/agentic/tools/implementations/{task_tool.rs,code_review_tool.rs}`、`src/web-ui/src/shared/services/reviewTeamService.ts`、`src/web-ui/src/flow_chat/services/DeepReviewService.ts`、`src/web-ui/src/app/scenes/agents/components/ReviewTeamPage.tsx`
- Tool:`src/crates/core/src/agentic/tools/implementations/`、`src/crates/core/src/agentic/tools/registry.rs`
- MCP / LSP / remote:`src/crates/core/src/service/mcp/`、`src/crates/core/src/service/lsp/`、`src/crates/core/src/service/remote_connect/`、`src/crates/core/src/service/remote_ssh/`
- 桌面端 API:`src/apps/desktop/src/api/`、`src/crates/api-layer/src/`、`src/crates/transport/src/adapters/tauri.rs`
- Web/server 通信:`src/web-ui/src/infrastructure/api/`、`src/crates/transport/src/adapters/websocket.rs`、`src/apps/server/src/routes/`、`src/apps/server/src/main.rs`

## 验证

| 改动类型 | 最低验证要求 |
| --- | --- |
|---|---|
| 前端 UI、状态、适配层或多语言文案 | `pnpm run lint:web && pnpm run type-check:web && pnpm --dir src/web-ui run test:run` |
| Deep Review / 代码审核团队行为 | 运行上面的前端验证,再运行 `cargo test -p bitfun-core deep_review -- --nocapture`;如果触及后端或 Tauri API,还需要运行下方 Rust / 桌面端验证 |
| `core`、`transport`、`api-layer` 或共享服务中的 Rust 逻辑 | `cargo check --workspace && cargo test --workspace` |
Expand All @@ -176,22 +136,18 @@ await api.invoke('your_command', { request: { ... } });
| `src/crates/ai-adapters` | 运行上面相关 Rust 检查,**并且**运行 `src/crates/core/tests` 中的 stream integration tests |
| 安装器应用 | `pnpm run installer:build` |

## Agent 文档覆盖

这是仓库级总指南。

规则优先级:

- 进入具体目录后,优先遵循离目标文件最近的 `AGENTS.md` / `AGENTS-CN.md`
- 如果局部文档与本文件冲突,以更具体、更近的文档为准
## 先看哪里

进入具体模块后,优先看最近的 agent 文档:
| 功能 | 关键路径 |
|---|---|
| Agent mode | `src/crates/core/src/agentic/agents/`、`src/crates/core/src/agentic/agents/prompts/`、`src/web-ui/src/locales/*/scenes/agents.json` |
| Deep Review / 代码审核团队 | `src/crates/core/src/agentic/deep_review_policy.rs`、`src/crates/core/src/agentic/agents/deep_review_agent.rs`、`src/crates/core/src/agentic/tools/implementations/{task_tool.rs,code_review_tool.rs}`、`src/web-ui/src/shared/services/reviewTeamService.ts`、`src/web-ui/src/flow_chat/services/DeepReviewService.ts`、`src/web-ui/src/app/scenes/agents/components/ReviewTeamPage.tsx` |
| Tool | `src/crates/core/src/agentic/tools/implementations/`、`src/crates/core/src/agentic/tools/registry.rs` |
| MCP / LSP / remote | `src/crates/core/src/service/mcp/`、`src/crates/core/src/service/lsp/`、`src/crates/core/src/service/remote_connect/`、`src/crates/core/src/service/remote_ssh/` |
| 桌面端 API | `src/apps/desktop/src/api/`、`src/crates/api-layer/src/`、`src/crates/transport/src/adapters/tauri.rs` |
| 中继服务器 | `src/apps/relay-server/` |
| Web/server 通信 | `src/web-ui/src/infrastructure/api/`、`src/crates/transport/src/adapters/websocket.rs`、`src/apps/server/src/routes/`、`src/apps/server/src/main.rs` |

- `src/web-ui/AGENTS.md`
- `src/crates/core/AGENTS.md`
- `src/apps/desktop/AGENTS.md`
- `tests/e2e/AGENTS.md`
- `BitFun-Installer/AGENTS.md`
- `src/crates/ai-adapters/AGENTS.md`
- `src/crates/core/src/agentic/execution/AGENTS.md`
## Agent 文档优先级

进入具体目录后,优先遵循离目标文件最近的 `AGENTS.md` / `AGENTS-CN.md`。如果局部文档与本文件冲突,以更具体、更近的文档为准。
Loading
Loading