Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
ced40c5
feat(cli): add mode-aware skill management UI
kev1n77 May 16, 2026
291da64
feat(cli): add mode-aware subagent management menu
kev1n77 May 16, 2026
558c58b
Merge pull request #751 from kev1n77/fmy/cli
kev1n77 May 16, 2026
1e7f1db
feat(cli): redesign built-in themes and startup theme switching
kev1n77 May 16, 2026
7a6148f
Merge pull request #753 from kev1n77/fmy/cli
kev1n77 May 16, 2026
d67df49
perf(web): improve startup and history session readiness
limityan May 16, 2026
858ae5c
fix(agent): Edit tool hardening and flow chat code block UI (#755)
bobleer May 16, 2026
8c18ee4
perf(web): reduce startup background contention
limityan May 16, 2026
b899901
chore: web typography tokens and Rust formatting sweep (#758)
bobleer May 17, 2026
a6776e4
fix(web-ui): stabilize flow chat follow-output during collapses (#759)
bobleer May 17, 2026
22f2454
perf(session): reduce startup and history load overhead
limityan May 17, 2026
ce824a2
perf(session): reduce startup config and turn save overhead
limityan May 17, 2026
ce52d49
fix ACP file path resolution
wgqqqqq May 18, 2026
ee0f52d
feat(core): streamline session workspace resolution
wsp1911 May 15, 2026
b2414ac
test(core): clean up temp dirs created by bitfun-core tests
wsp1911 May 15, 2026
3d1f343
feat(core): preserve agent mode across session history changes
wsp1911 May 17, 2026
e4d8618
feat(core): add background subagent task delivery
wsp1911 May 17, 2026
6815d15
feat(subagent): add GeneralPurpose subagent
wsp1911 May 17, 2026
0d435f2
feat(agentic): add Multitask mode and improve background subagent res…
wsp1911 May 17, 2026
1cb4106
chore(boundaries): refresh latest-main guardrails
limityan May 18, 2026
deb75ea
fix: reuse local ACP config for remote workspaces
wgqqqqq May 15, 2026
487d527
feat: update ACP agents config
wgqqqqq May 18, 2026
5865456
Simplify remote ACP agent config
wgqqqqq May 18, 2026
6fd4312
feat(miniapp): remember declined built-in updates
limityan May 18, 2026
0a45ffb
refactor(product-domains): extend MiniApp readiness helpers
limityan May 18, 2026
2fa8742
Merge pull request #763 from wgqqqqq/codex/fix-acp-file-path-resolution
GCWing May 18, 2026
2f867ea
fix(core): avoid session auto-save lock contention
limityan May 18, 2026
7fa4281
refactor(product-domains): extract runtime baseline helpers
limityan May 18, 2026
562bb01
test(core): add product runtime preflight baselines
limityan May 18, 2026
894291e
refactor(agent-tools): extract tool manifest contracts
limityan May 18, 2026
b087036
fix(ai-adapters): send flat tool schema for OpenAI Responses API
kev1n77 May 18, 2026
ad907dd
feat(miniapp): refine built-in PR review workflow
limityan May 18, 2026
47ce207
refactor(agent-tools): add static tool provider assembly
limityan May 18, 2026
da1954a
refactor(agent-tools): add portable tool context facts
limityan May 18, 2026
04a7f56
feat(usage): add cache_creation_token_count to UnifiedTokenUsage
nonoqing May 18, 2026
027c630
fix(usage): Anthropic cached_content_token_count is reads only, not r…
nonoqing May 18, 2026
0f0be7b
feat(usage): capture DeepSeek prompt_cache_hit_tokens extension
nonoqing May 18, 2026
364abb5
test(usage): guard Gemini cache_creation_token_count stays None
nonoqing May 18, 2026
c33264f
fix(desktop): supply agent_type: None in DialogTurnData test fixtures
nonoqing May 18, 2026
9bfb4b6
Merge pull request #774 from nonoqing/yuyiqing/dev
nonoqing May 18, 2026
87e0f7e
Merge pull request #766 from wgqqqqq/codex/simplify-remote-acp-agent-…
GCWing May 18, 2026
292eb3b
Merge pull request #772 from kev1n77/fmy/bugfix
GCWing May 18, 2026
8fddb25
fix(desktop): default close button to minimize to system tray (#776)
bobleer May 19, 2026
0382041
test(usage): guard OpenAI Responses cached_tokens mapping and cache_c…
nonoqing May 18, 2026
a7966c6
feat(usage): plumb cache_creation_token_count through GeminiUsage end…
nonoqing May 18, 2026
627f6cd
feat(usage): emit cacheCreationTokenCount in token_details JSON
nonoqing May 19, 2026
1ff2210
fix: strip tool history from Write content-generation context (#777)
bobleer May 19, 2026
675308a
fix(agentic): allow local tool paths outside workspace root (#778)
bobleer May 19, 2026
4edbafa
refactor(product-domains): add runtime facade guardrails
limityan May 19, 2026
46a2d31
fix remote flashgrep upload
wgqqqqq May 19, 2026
663ccc1
refactor(function-agents): wire commit facade path
limityan May 19, 2026
e38e0a7
docs(function-agents): clarify facade wiring guardrail
limityan May 19, 2026
5ba684d
Merge branch 'GCWing:main' into yuyiqing/dev
nonoqing May 19, 2026
5bcb8ea
refactor(function-agents): route startchat through facade
limityan May 19, 2026
24ad4aa
Merge pull request #783 from nonoqing/yuyiqing/dev
nonoqing May 19, 2026
b7a289b
refactor(miniapp): move builtin contracts to product domains
limityan May 19, 2026
a8e4f05
refactor(tools): move GetToolSpec presentation contracts
limityan May 19, 2026
20c7403
Merge pull request #780 from wgqqqqq/codex/fix-remote-flashgrep-upload
GCWing May 19, 2026
5e20d01
refactor(product-domains): move runtime owner helpers
limityan May 19, 2026
f2a85b0
docs(core): close low-risk decomposition prep
limityan May 19, 2026
235c0db
refactor(tools): share static provider group container
limityan May 19, 2026
429351a
fix(usage): accept MiniMax-style chat.completion final SSE frame
nonoqing May 19, 2026
9bc1549
Merge pull request #792 from nonoqing/yuyiqing/dev
nonoqing May 19, 2026
8fe6a04
refactor(tools): harden H1 migration baselines
limityan May 19, 2026
b269935
refactor(tools): close H1 manifest catalog baseline
limityan May 19, 2026
aeb10f6
refactor(tools): isolate core runtime assembly owner
limityan May 19, 2026
913d268
test(tools): guard runtime assembly decorator boundary
limityan May 19, 2026
87fd060
feat: add inline message edit
kev1n77 May 19, 2026
a33c76f
refactor(tools): move contextual manifest helpers
limityan May 19, 2026
51b0e34
Merge pull request #801 from kev1n77/fmy/dev
kev1n77 May 20, 2026
81ad998
fix(flow-chat): reduce streaming flicker by disabling layout animations
kev1n77 May 19, 2026
b9c21ee
Merge pull request #802 from kev1n77/fmy/bugfix
kev1n77 May 20, 2026
5c1ed14
refactor(tools): consolidate product tool catalog facade
limityan May 20, 2026
51c7960
feat(usage): compute session + per-model cache_hit_rate and render it
nonoqing May 20, 2026
3cf727e
fix(flow-chat): fix code block jitter in historical messages during s…
kev1n77 May 20, 2026
24c4a1e
Merge pull request #807 from kev1n77/fmy/bugfix
kev1n77 May 20, 2026
6c2879c
feat(flow-chat): add Shift+Tab shortcut for agent mode cycling
jarvis24young May 20, 2026
b103da1
refactor(tools): move get tool spec execution planning
limityan May 20, 2026
7948e07
feat(usage): surface cache hit rate in session usage card and panel
nonoqing May 20, 2026
795a7f0
Merge pull request #809 from nonoqing/yuyiqing/dev
nonoqing May 20, 2026
5595125
refactor(tools): move generic runtime assembly contracts
limityan May 20, 2026
12bae43
Merge pull request #808 from jarvis24young/feat/shift-tab-agent-mode-…
GCWing May 20, 2026
cc125de
feat(agentic): persist internal subagent sessions and surface backgro…
wsp1911 May 20, 2026
4fc4f1a
refactor(session): unify child session lineage around structured rela…
wsp1911 May 20, 2026
2ae9538
fix(rollback): cascade delete hidden subagent sessions for rolled-bac…
wsp1911 May 20, 2026
c4548a0
fix(flow-chat): preserve round affinity for late stream and tool events
wsp1911 May 20, 2026
3352508
fix(web-ui): respect terminal shortcut scope for Escape handling
wsp1911 May 20, 2026
fdaf3ea
fix(flow-chat): hide user message edit action in BTW session panel
wsp1911 May 20, 2026
418e242
refactor(tools): add catalog runtime facades
limityan May 20, 2026
f0db3c3
refactor(tools): complete H1 provider boundary
limityan May 21, 2026
af7f5a3
refactor(product-domains): move function agent response policy
limityan May 21, 2026
c18a972
Merge remote-tracking branch 'upstream/main' into wc
SWangHash May 21, 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
  •  
  •  
  •  
12 changes: 6 additions & 6 deletions AGENTS-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ BitFun 是一个由 Rust workspace 与共享 React 前端组成的项目。
| 产品领域 crate | `src/crates/product-domains` | [AGENTS.md](src/crates/product-domains/AGENTS.md) |
| Transport 适配层 | `src/crates/transport` | (使用 core 指南) |
| API layer | `src/crates/api-layer` | (使用 core 指南) |
| ACP 集成 | `src/crates/acp` | [AGENTS.md](src/crates/acp/AGENTS.md) |
| 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 指南) |
Expand Down Expand Up @@ -114,14 +115,13 @@ await api.invoke('your_command', { request: { ... } });
任何 `bitfun-core` 拆解、feature 边界、依赖边界或 Rust 构建提速重构,
都必须先阅读
[`docs/architecture/core-decomposition.md`](docs/architecture/core-decomposition.md)。
该文档定义产品行为不变量、crate 归属目标、禁止依赖方向、feature 安全规则和里程碑验证门禁。
顶层文档只作为入口;模块级 ownership 细节应放到离代码最近的模块 `AGENTS.md`。

### Tool 归属护栏
仓库级拆解规则:

- `src/crates/agent-tools` 拥有轻量 tool contract,以及 generic registry / dynamic-provider container。
- `src/crates/core/src/agentic/tools` 当前负责产品工具组装、`dyn Tool` 适配、snapshot decoration、tool exposure / manifest resolution,以及按需工具说明发现(`GetToolSpec`)。
- `ToolUseContext` 与具体工具实现继续留在 core,直到有已评审的 port/provider 设计和等价测试。
- Tool 迁移必须保持 expanded/collapsed exposure、prompt 可见 manifest、`ToolUseContext.unlocked_collapsed_tools`,以及 desktop/MCP/ACP tool catalog 行为等价。
- 不要把 DTO / contract 抽取误判为 runtime owner 已迁移。
- 产品表面可以有差异;共享稳定 facts 或 ports,不共享 UI、protocol、lifecycle 或平台实现。
- 迁移 runtime owner 必须有评审过的 port/provider 设计、旧路径兼容、行为等价测试;如果可能改变行为边界,还需要先确认。

### DeepReview 护栏

Expand Down
70 changes: 16 additions & 54 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,14 @@ Repository rule: **keep product logic platform-agnostic, then expose it through
|---|---|---|
| Core (product logic) | `src/crates/core` | [AGENTS.md](src/crates/core/AGENTS.md) |
| Extracted core support | `src/crates/{core-types,agent-stream,runtime-ports,terminal,tool-runtime}` | (use core guide) |
| Core owner crates | `src/crates/{services-core,services-integrations,agent-tools,tool-packs}` | (use core guide + decomposition guardrails) |
| Service core owner crate | `src/crates/services-core` | [AGENTS.md](src/crates/services-core/AGENTS.md) |
| Service integrations owner crate | `src/crates/services-integrations` | [AGENTS.md](src/crates/services-integrations/AGENTS.md) |
| Agent tool contracts | `src/crates/agent-tools` | [AGENTS.md](src/crates/agent-tools/AGENTS.md) |
| Tool pack provider plan | `src/crates/tool-packs` | [AGENTS.md](src/crates/tool-packs/AGENTS.md) |
| Product domains | `src/crates/product-domains` | [AGENTS.md](src/crates/product-domains/AGENTS.md) |
| Transport adapters | `src/crates/transport` | (use core guide) |
| API layer | `src/crates/api-layer` | (use core guide) |
| ACP integration | `src/crates/acp` | [AGENTS.md](src/crates/acp/AGENTS.md) |
| AI adapters | `src/crates/ai-adapters` | [AGENTS.md](src/crates/ai-adapters/AGENTS.md) |
| Desktop app | `src/apps/desktop` | [AGENTS.md](src/apps/desktop/AGENTS.md) |
| Server | `src/apps/server` | (use core guide) |
Expand Down Expand Up @@ -114,59 +118,17 @@ await api.invoke('your_command', { request: { ... } });
For any `bitfun-core` decomposition, feature-boundary, dependency-boundary, or
Rust build-speed refactor, read
[`docs/architecture/core-decomposition.md`](docs/architecture/core-decomposition.md)
before editing. The guardrail document defines product-behavior invariants,
crate ownership targets, forbidden dependency directions, feature safety rules,
and milestone verification gates.

### Tool ownership guardrails

- `src/crates/agent-tools` owns lightweight tool contracts and the generic
registry / dynamic-provider container.
- `src/crates/core/src/agentic/tools` owns product tool assembly, `dyn Tool`
adaptation, snapshot decoration, tool exposure / manifest resolution, and
on-demand tool spec discovery (`GetToolSpec`) for now.
- Keep `ToolUseContext` and concrete tool implementations in core until a
reviewed port/provider design and equivalence tests exist.
- Tool migrations must preserve expanded/collapsed exposure, prompt-visible
manifests, `ToolUseContext.unlocked_collapsed_tools`, and desktop/MCP/ACP
tool catalog behavior.

### Latest-main runtime anchors

- Agent registry migration must preserve mode-scoped subagent availability,
hidden/custom/review grouping, and desktop subagent API semantics.
- DeepResearch report finalization currently relies on the core citation
renumber hook; do not move it without preserving `report.md`,
`citations.md`, `display_map.json`, and rejected-citation handling.
- Workspace/search refactors must preserve remote workspace startup guards,
remote flashgrep fallback, and search preview/context mapping.
- ACP timeout handling and Web operation-diff fallback are product-surface
behavior; share facts through contracts, not UI/protocol implementation.

### Services/product owner closure

- Remote-SSH path, session identity, mirror path, and unresolved-session layout
helpers belong in `bitfun-services-integrations`; core may inject
`PathManager` and hold SSH manager / remote FS / terminal assembly.
- MiniApp storage shape belongs in `bitfun-product-domains`; core storage
keeps filesystem IO, worker runtime, `PathManager`, and port adapters until a
reviewed runtime migration exists.
- Remote-connect port baselines live in `bitfun-runtime-ports` and
`bitfun-services-integrations`; tracker state and tracker event reduction
belong in `bitfun-services-integrations`. Remote command/response wire DTOs,
remote model catalog DTOs, poll-response assembly helpers, and model-catalog
poll delta policy also belong there. Pure remote image-context
fallback/preference, restore-target, cancel-decision, and remote file-transfer
size/chunk/name helpers also belong in `bitfun-services-integrations`, while
core still owns the adapter back to `ImageContextData`, dispatcher assembly,
session restore execution, file IO/path resolution, terminal pre-warm, and
product execution routing. Further remote runtime owner migration must
preserve the existing migration snapshots for command/response shape,
restore, active-turn polling, cancel decisions, image context
fallback/preference, tracker fanout, file transfer, and RemoteRelay/Bot queue
policy.
`AgentSubmissionPort` still rejects generic attachments until
image/multimodal equivalence tests and a runtime migration plan are reviewed.
before editing. Keep this file as an entry point; put module-specific ownership
details in the nearest module `AGENTS.md`.

Repository-level decomposition rules:

- Do not confuse DTO/contract extraction with runtime owner migration.
- Product surfaces may diverge; share stable facts or ports, not UI, protocol,
lifecycle, or platform implementation.
- Moving runtime ownership requires a reviewed port/provider design, old-path
compatibility, behavior equivalence tests, and explicit confirmation when a
behavior boundary could change.

### DeepReview guardrails

Expand Down
Loading
Loading