Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
149 commits
Select commit Hold shift + click to select a range
2d6e8d5
docs: add SECURITY.md security policy (EN + 中文)
circlecrystal Jun 2, 2026
e62e79f
feat: add view_image tool
wgqqqqq Jun 4, 2026
0908e7e
test: update view_image tool manifest expectations
wgqqqqq Jun 5, 2026
4d8648e
Merge upstream/main into feat/view-image-tool
wgqqqqq Jun 10, 2026
9b4d3bc
Merge upstream/main into feat/view-image-tool
wgqqqqq Jun 15, 2026
3b1d72c
fix(view-image): align provider and path handling
wgqqqqq Jun 22, 2026
46fa306
Update flashgrep workspace search integration
wgqqqqq Jun 24, 2026
a2275c0
fix(view-image): optimize attachments for provider limits
wgqqqqq Jun 24, 2026
912111f
Merge pull request #1061 from wgqqqqq/feat/view-image-tool
wgqqqqq Jun 24, 2026
4dee361
fix(remote-search): align flashgrep protocol fields
wgqqqqq Jun 24, 2026
a000aa4
chore: bump version to 0.2.11
wgqqqqq Jun 24, 2026
69c0a89
Merge pull request #1299 from wgqqqqq/flashgrep-v0.2.10-protocol
wgqqqqq Jun 24, 2026
e5f336f
Merge pull request #1300 from wgqqqqq/bump-v0.2.11
wgqqqqq Jun 24, 2026
f3dc1b9
fix(ai): align stream TTFT with first effective output
wsp1911 Jun 24, 2026
94ed215
fix(ai-adapters): cancel orphaned stream handlers on turn cancel
wsp1911 Jun 24, 2026
aea4828
fix(flow-chat): resolve assistant mode from session workspace
wsp1911 Jun 24, 2026
fb96968
fix: tighten context compression prompt and token budget
wsp1911 Jun 25, 2026
4db8a36
fix(chat-input): block sending during model switch and ensure backend…
kev1n77 Jun 25, 2026
309ab51
Merge pull request #1308 from kev1n77/fmy/bugfix
kev1n77 Jun 25, 2026
256a775
feat(remote-connect): add IM bot model switching and sync agent model…
bobleer Jun 25, 2026
6fe6bed
Merge pull request #1311 from bobleer/feat/im-bot-model-switch
bobleer Jun 25, 2026
edd0ac4
Merge pull request #1044 from circlecrystal/docs/add-security-policy
GCWing Jun 25, 2026
b9de9de
fix(image-preview): prevent lightbox image preview from being covered…
kev1n77 Jun 25, 2026
adaff67
fix: preserve multimodal model capabilities
wgqqqqq Jun 25, 2026
74190f7
Merge pull request #1312 from kev1n77/fmy/bugfix
kev1n77 Jun 25, 2026
ce73af7
fix(diff-preview): fix text overlap in md file diff content
kev1n77 Jun 25, 2026
bd70285
Merge pull request #1314 from kev1n77/fmy/bugfix
kev1n77 Jun 25, 2026
54c8730
fix(web-ui): restore chat input focus on macOS
su-yunhe Jun 25, 2026
07baddd
Merge pull request #1313 from wgqqqqq/fix/multimodal-model-capabilities
GCWing Jun 25, 2026
9e56f59
fix(agentic): preserve remote session identity across cron and sessio…
wsp1911 Jun 26, 2026
54ff06f
fix: restore remote sessions from resolved storage dirs
wsp1911 Jun 26, 2026
65602af
fix: preserve session restore path semantics
wsp1911 Jun 26, 2026
cdb2695
fix: shorten generated cron job ids
wsp1911 Jun 26, 2026
6626358
fix: include persisted remote hostname in session workspace matching
wsp1911 Jun 26, 2026
71e15a3
fix(web-ui): refine slash command picker dismissal
wsp1911 Jun 26, 2026
6f3f01f
feat(web-ui): add copy session ID action to nav session menu
wsp1911 Jun 26, 2026
648ca87
fix(web-ui): dedupe concurrent session creation
wsp1911 Jun 26, 2026
c409069
fix(web-ui): lock chat input mode controls for Claw sessions
wsp1911 Jun 26, 2026
ddc4bef
feat(computer-use): integrate cua-driver-rs v0.6.8 for enhanced backg…
bobleer Jun 26, 2026
ba02c0d
Wire Windows Computer Use app_* actions and background drag
Jun 27, 2026
63a7b81
Merge pull request #1324 from bobleer/feat/computer-use-cua-integration
bobleer Jun 27, 2026
752ba0a
fix(flow-chat): handle scroll anchor jumps in static history view
kev1n77 Jun 26, 2026
7da1451
Merge pull request #1325 from kev1n77/fmy/bugfix
kev1n77 Jun 27, 2026
00e9994
fix(web-ui): skip unchanged i18n store updates to avoid freezing the …
kev1n77 Jun 27, 2026
9ac6729
fix(prompt): add autonomy policy, coverage check, and direction diver…
nonoqing Jun 27, 2026
8bd77bc
Merge pull request #1332 from nonoqing/yuyiqing/dev
nonoqing Jun 27, 2026
08c1397
Merge pull request #1315 from su-yunhe/fix/issue-1305-macos-input-focus
wgqqqqq Jun 27, 2026
a92f981
Merge pull request #1326 from kev1n77/fmy/bugfix
GCWing Jun 27, 2026
cdfdd71
feat(agent-tools): handle tool rejection and approval states
wsp1911 Jun 27, 2026
38a45e3
feat(read): add tail mode for file reads
wsp1911 Jun 27, 2026
a1ab12c
fix(web-ui): stabilize turn list navigation
snvtac Jun 23, 2026
f240d0e
refactor(web-ui): migrate theme alias reads to canonical tokens
limityan Jun 29, 2026
8338441
docs: refine core decomposition architecture boundaries
limityan Jun 29, 2026
3ee1255
refactor(web-ui): collapse theme fallback defaults
limityan Jun 29, 2026
0f0f70d
refactor(web-ui): govern widget theme payload aliases
limityan Jun 29, 2026
bb1a959
fix(web-ui): keep long sessions visible after send
limityan Jun 29, 2026
85de828
refactor(core): route session feature ownership through runtime ports
limityan Jun 29, 2026
5df255a
feat(agent-tools): tighten tool approvals and shortcuts
wsp1911 Jun 29, 2026
ad43df4
fix(logging): suppress noisy third-party parser logs
wsp1911 Jun 29, 2026
3f526f5
refactor(web-ui): govern surface theme token namespaces
limityan Jun 29, 2026
99fd844
refactor(web-ui): govern exception palette readiness
limityan Jun 29, 2026
a6951e9
refactor(core): move session control facts into agent runtime
limityan Jun 29, 2026
b548fb8
refactor(web-ui): reduce theme color literal duplication
limityan Jun 29, 2026
d770932
fix(mcp): route large tool output through shared storage policy
wsp1911 Jun 29, 2026
ea21fff
perf(web-ui): shorten startup handoff and harden pet sync
limityan Jun 29, 2026
5889530
refactor(web-ui): align theme bootstrap and color governance
limityan Jun 29, 2026
227a18d
refactor(core): move feature seed and session state owners
limityan Jun 29, 2026
c732e0d
fix(acp): keep tool cards visible
wgqqqqq Jun 29, 2026
2a88b2f
Merge pull request #1351 from wgqqqqq/fix/acp-tool-card-visibility
GCWing Jun 30, 2026
2fc70e4
refactor(web-ui): consolidate theme payload and near colors
limityan Jun 30, 2026
0c12b29
refactor(web-ui): harden theme schema and widget payload
limityan Jun 30, 2026
fd2110b
fix(flow-chat): window long-session history loading
limityan Jun 30, 2026
64a94f8
perf(web-ui): compress bundled Noto Sans SC fonts
limityan Jun 30, 2026
2153908
refactor(theme): consolidate color tokens and generated projections
limityan Jun 30, 2026
d6b7839
refactor: move tool bridge contracts to runtime owners
limityan Jun 30, 2026
ccd7461
refactor: move lsp plugin contracts to owner crates
limityan Jun 30, 2026
61edd18
refactor(theme): consolidate near color values
limityan Jun 30, 2026
a7fc6dc
refactor: validate product SDK assembly boundary
limityan Jun 30, 2026
66f289b
refactor(theme): consolidate domain color stops
limityan Jun 30, 2026
6d984b9
refactor(theme): prune unused theme key exports
limityan Jun 30, 2026
58286bd
chore: ignore local .agents directory
bobleer Jun 30, 2026
dba0347
Merge pull request #1364 from bobleer/chore/gitignore-agents
bobleer Jun 30, 2026
460a381
refactor: move remote disabled surfaces into services
limityan Jun 30, 2026
082f1de
refactor: centralize agentic frontend event projection
limityan Jun 30, 2026
70f2341
refactor(theme): compress legacy color key aliases
limityan Jun 30, 2026
958a060
refactor(theme): tighten runtime token contracts
limityan Jul 1, 2026
3141168
fix: refine AI model connection testing
wsp1911 Jul 1, 2026
75e916d
refactor: move LSP service owners out of core
limityan Jul 1, 2026
79abc00
feat(remote-connect): add LAN IP selection and improve ppt-live gener…
bobleer Jul 1, 2026
f3694b0
Merge pull request #1370 from bobleer/feat/lan-ip-selection-ppt-live-…
bobleer Jul 1, 2026
c114e33
refactor: compress cross-surface theme tokens
limityan Jul 1, 2026
8d69e57
refactor(core): move mcp server runtime state to services
limityan Jul 1, 2026
79898d9
refactor: compress specialized theme palette colors
limityan Jul 1, 2026
47b5d6c
refactor(core): move platform providers to services
limityan Jul 1, 2026
a2b713b
refactor: govern cli theme palette colors
limityan Jul 1, 2026
02ab8b8
refactor: compress cli preset palette
limityan Jul 1, 2026
a29bd63
refactor(core): move IM bot providers to services
limityan Jul 1, 2026
b445ccd
feat(web-ui): add new session action to chat input boost menu
bobleer Jul 1, 2026
ea76fd5
feat(glob tool): enrich glob results with scope and truncation metadata
wsp1911 Jul 1, 2026
c2f8033
refactor(theme): reduce specialized palette drift
limityan Jul 1, 2026
9fb9d0e
Merge pull request #1379 from bobleer/feat/chat-input-boost-new-session
bobleer Jul 2, 2026
b8197bb
fix(web-ui): improve terminal input reliability and companion unread …
bobleer Jul 2, 2026
7f865bb
test(web-ui): stub requestAnimationFrame in companion session tests
bobleer Jul 2, 2026
8f8c52c
Merge pull request #1380 from bobleer/fix/terminal-input-reliability-…
bobleer Jul 2, 2026
a240d4b
docs(readme): add trendshift badge
G-CWing Jul 2, 2026
3f8c654
Merge pull request #1384 from GCWing/gcwing/add-trendshift-badge
GCWing Jul 2, 2026
c3d9a46
fix(desktop): gate cron startup on FlowChat readiness
wsp1911 Jul 2, 2026
629ced4
refactor(core): move provider-owned local runtime services
limityan Jul 2, 2026
029e9e7
refactor(theme): compact plugin color projection and overlay tokens
limityan Jul 2, 2026
9e36018
refactor(theme): compress preset color palette
limityan Jul 2, 2026
96cea08
refactor(core): move provider HTTP owners into services
limityan Jul 2, 2026
192548f
feat(agent): add image understanding tool
wgqqqqq Jul 2, 2026
a6c9fa3
refactor(theme): compress installer and widget token contracts
limityan Jul 2, 2026
687ac8a
fix: reconcile image understanding default model
wgqqqqq Jul 2, 2026
bca7ba4
test: include image analysis in readonly manifest
wgqqqqq Jul 2, 2026
4077c1a
refactor(core): migrate exec command policy to tool runtime
limityan Jul 2, 2026
c2f6a3c
Merge pull request #1390 from wgqqqqq/codex/image-understanding-tool
GCWing Jul 2, 2026
82721c6
feat: support images in btw side questions
wgqqqqq Jul 2, 2026
5022709
fix(flow-chat): stabilize history turn navigation
limityan Jul 2, 2026
9934bb6
refactor(theme): compress cross-surface color contracts
limityan Jul 2, 2026
98f0f41
refactor(core): inject terminal exec runtime port
limityan Jul 2, 2026
58e0225
feat(computer-use): refactor desktop host, unify tool UX, and improve…
bobleer Jul 3, 2026
8ffbcaf
fix(web-ui): remove uncontracted CSS var fallbacks for theme audit
bobleer Jul 3, 2026
42046ea
fix(desktop): resolve cross-platform CI compile failures for Computer…
bobleer Jul 3, 2026
bcb25a9
fix(desktop): correct WGC D3D11CreateDevice args and pointer coordina…
bobleer Jul 3, 2026
be5b45a
fix(desktop): drop HWND before await in Windows get_app_state
bobleer Jul 3, 2026
acf0cdb
Merge pull request #1395 from bobleer/feat/computer-use-refactor-plat…
bobleer Jul 3, 2026
85f8407
refactor(theme): trim unused installer and git token surface
limityan Jul 3, 2026
bceded2
refactor(core): route remote exec through runtime port
limityan Jul 3, 2026
72cebf1
refactor: compress syntax and language identity palettes
limityan Jul 3, 2026
cae512b
refactor: compress theme color contracts
limityan Jul 3, 2026
cf94e2f
Merge pull request #1394 from wgqqqqq/codex/btw-image-side-questions
GCWing Jul 3, 2026
082cee4
refactor(theme): tighten extension color governance
limityan Jul 3, 2026
ac16dcc
docs: align OpenCode extension architecture
limityan Jul 3, 2026
1ac8cc6
fix(ssh-remote): fallback SSH config parsing and fill-form UX
bobleer Jul 3, 2026
4f6a5cf
chore: bump version to 0.2.12
wgqqqqq Jul 3, 2026
bf04033
Merge pull request #1405 from bobleer/fix/ssh-config-parse-fallback-a…
bobleer Jul 3, 2026
65da1a0
refactor: establish tool and event ABI contracts
limityan Jul 3, 2026
c827291
refactor(theme): retire legacy Rust theme schema
limityan Jul 3, 2026
b785399
feat(ssh-remote): improve connection dialog search and SSH config par…
bobleer Jul 3, 2026
9e395f2
Merge pull request #1409 from bobleer/feat/ssh-connection-dialog-sear…
bobleer Jul 3, 2026
1c05853
Merge pull request #1406 from wgqqqqq/chore/bump-version-0.2.12
wgqqqqq Jul 3, 2026
912cd75
refactor(theme): derive CLI truecolor fallbacks from presets
limityan Jul 3, 2026
4da7ae5
refactor(core): establish plugin runtime boundary
limityan Jul 3, 2026
6fd87c1
fix(agentic): persist rich model rounds from CLI execution messages
bobleer Jul 4, 2026
e2ff8d7
Merge pull request #1410 from bobleer/fix/cli-dialog-turn-model-round…
bobleer Jul 4, 2026
d455a6a
feat(web-ui): register missing Lucide icons for builtin miniapps
bobleer Jul 4, 2026
a02ad63
Merge pull request #1412 from bobleer/feat/miniapp-icon-registry-expa…
bobleer Jul 4, 2026
f3d1ecc
Merge remote-tracking branch 'upstream/main' into wc/rebase_2
SWangHash Jul 4, 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
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ jobs:
- name: Run core Rust tests
run: cargo test --locked -p bitfun-core

- name: Run desktop Rust tests
run: cargo test --locked -p bitfun-desktop

# ── Frontend: build ────────────────────────────────────────────────
frontend-build:
name: Frontend Build
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,5 @@ Cross.toml
ASSETS_LICENSES.md

external/
/.bitfun/search/flashgrep-index/
.agents/
15 changes: 10 additions & 5 deletions AGENTS-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,28 @@ BitFun 是一个由 Rust workspace 与 React 前端组成的项目。

## 分层模块索引

依赖关系按自上而下读取:上层只能依赖下层,同层 crate 也应保持最小依赖。
依赖关系按自上而下读取。下表是物理 crate 布局,不是完整概念架构;Product Feature、Agent Kernel、
Execution、Extension、Cross-platform Adapter 的边界以
[`docs/architecture/core-decomposition.md`](docs/architecture/core-decomposition.md)
为准。同层 crate 也应保持最小依赖。

| # | 层级 | 路径 | 职责 | 模块 / 入口 | 层级文档 |
|---|---|---|---|---|---|
| 1 | 接口与入口层 | `src/apps/*`, `src/web-ui`, `src/mobile-web`, `BitFun-Installer`, `tests/e2e`, `src/crates/interfaces` | 产品宿主、命令、UI 入口、协议接口和跨形态测试 | desktop、CLI、server、relay、Web UI、mobile web、installer、E2E、`acp` | 最近的本地 `AGENTS.md`;[interfaces](src/crates/interfaces/AGENTS.md) |
| 2 | 产品组装层 | `src/crates/assembly` | 兼容导出、产品能力选择、product-full 接线和 adapter/service 注册 | `core`, `product-capabilities` | [AGENTS.md](src/crates/assembly/AGENTS.md) |
| 3 | 适配层 | `src/crates/adapters` | AI/API/transport/WebDriver 协议 adapter 和外部 provider 转换 | `ai-adapters`, `api-layer`, `transport`, `webdriver` | [AGENTS.md](src/crates/adapters/AGENTS.md) |
| 4 | 服务实现层 | `src/crates/services` | 可复用 OS、filesystem、terminal、MCP、remote、git、watch、process、session persistence primitives、network 和 MiniApp runtime IO 实现 | `services-core`, `services-integrations`, `terminal` | [AGENTS.md](src/crates/services/AGENTS.md) |
| 4 | 服务实现层 | `src/crates/services` | 可复用 OS、filesystem、terminal、MCP、remote、git、watch、process、LSP plugin registry、session persistence primitives、network 和 MiniApp runtime IO 实现 | `services-core`, `services-integrations`, `terminal` | [AGENTS.md](src/crates/services/AGENTS.md) |
| 5 | 执行原语层 | `src/crates/execution` | 可移植 agent、harness、stream、DeepReview policy/report、typed-service、tool-contract、tool-group 和 tool-execution 构件 | `agent-runtime`, `agent-stream`, `tool-contracts`, `harness`, `runtime-services`, `tool-provider-groups`, `tool-execution` | [AGENTS.md](src/crates/execution/AGENTS.md) |
| 6 | 稳定契约与产品领域层 | `src/crates/contracts` | 跨层共享 DTO、事件形状、runtime port、产品领域契约和策略 | `core-types`, `events`, `runtime-ports`, `product-domains` | [AGENTS.md](src/crates/contracts/AGENTS.md) |
| 6 | 稳定契约与产品领域层 | `src/crates/contracts` | 跨层共享 DTO、事件形状、runtime port、LSP protocol/plugin DTO、产品领域契约和策略 | `core-types`, `events`, `runtime-ports`, `product-domains` | [AGENTS.md](src/crates/contracts/AGENTS.md) |

边界规则:

- 接口与入口层暴露选定产品行为;可复用行为应下移。
- 组装层只接线下层并选择产品能力事实,不实现具体 adapter、OS 或 service 细节。
- 适配层翻译协议和外部系统,不拥有产品能力选择或可复用 OS service 行为。
- 服务实现层负责可复用的 OS、process、terminal、MCP、remote、git、filesystem、session persistence primitives 和 MiniApp runtime IO 能力。
- 产品特性只在内核能力之上组装用户侧命令、UI contribution、设置和默认策略;长程任务、scheduler、permission、session/workspace、memory、DFX、hook 和 event 事实属于 Agent Kernel owner。
- 适配层翻译协议和外部 provider 形状,不拥有产品能力选择或可复用 OS service 行为。
- 服务实现层负责可复用的 OS、process、terminal、MCP、remote、git、filesystem、LSP plugin registry、session persistence primitives 和 MiniApp runtime IO 能力。
- 外部系统是边界外资源,不是仓库内层级。只有已注册的 adapter、service 或 app-local provider 应调用它们;其他层消费 port 和稳定契约。
- 执行原语层只放可移植运行时构件,不拥有宿主或交付形态。
- 契约层保持轻行为,不得向上依赖。

Expand Down
17 changes: 11 additions & 6 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,29 @@ Repository rule: **keep product logic platform-agnostic, then expose it through

## Layered Module Index

Dependencies flow top to bottom. A layer may depend on lower layers only; keep
crate dependencies inside each layer to the smallest set needed.
Dependencies flow top to bottom. This table is the physical crate layout, not
the full conceptual architecture. For Product Feature / Agent Kernel /
Execution / Extension / Cross-platform Adapter boundaries, read
[`docs/architecture/core-decomposition.md`](docs/architecture/core-decomposition.md).
Keep crate dependencies inside each layer to the smallest set needed.

| # | Layer | Path | Owns | Modules / entries | Layer doc |
|---|---|---|---|---|---|
| 1 | Interfaces and entrypoints | `src/apps/*`, `src/web-ui`, `src/mobile-web`, `BitFun-Installer`, `tests/e2e`, `src/crates/interfaces` | Product hosts, commands, UI entrypoints, protocol interfaces, and cross-surface tests | desktop, CLI, server, relay, Web UI, mobile web, installer, E2E, `acp` | nearest local `AGENTS.md`; [interfaces](src/crates/interfaces/AGENTS.md) |
| 2 | Product assembly | `src/crates/assembly` | Compatibility exports, product capability selection, product-full wiring, and adapter/service registration | `core`, `product-capabilities` | [AGENTS.md](src/crates/assembly/AGENTS.md) |
| 3 | Adapters | `src/crates/adapters` | AI/API/transport/WebDriver protocol adapters and external-provider translation | `ai-adapters`, `api-layer`, `transport`, `webdriver` | [AGENTS.md](src/crates/adapters/AGENTS.md) |
| 4 | Services | `src/crates/services` | Reusable OS, filesystem, terminal, MCP, remote, git, watch, process, session persistence primitives, MiniApp runtime IO, and network implementations | `services-core`, `services-integrations`, `terminal` | [AGENTS.md](src/crates/services/AGENTS.md) |
| 4 | Services | `src/crates/services` | Reusable OS, filesystem, terminal, MCP, remote, git, watch, process, LSP plugin registry, session persistence primitives, MiniApp runtime IO, and network implementations | `services-core`, `services-integrations`, `terminal` | [AGENTS.md](src/crates/services/AGENTS.md) |
| 5 | Execution primitives | `src/crates/execution` | Portable agent, harness, stream, DeepReview policy/report, typed-service, tool-contract, tool-group, and tool-execution building blocks | `agent-runtime`, `agent-stream`, `tool-contracts`, `harness`, `runtime-services`, `tool-provider-groups`, `tool-execution` | [AGENTS.md](src/crates/execution/AGENTS.md) |
| 6 | Stable contracts and product domains | `src/crates/contracts` | Shared DTOs, event shapes, runtime ports, and product domain contracts/policies | `core-types`, `events`, `runtime-ports`, `product-domains` | [AGENTS.md](src/crates/contracts/AGENTS.md) |
| 6 | Stable contracts and product domains | `src/crates/contracts` | Shared DTOs, event shapes, runtime ports, LSP protocol/plugin DTOs, and product domain contracts/policies | `core-types`, `events`, `runtime-ports`, `product-domains` | [AGENTS.md](src/crates/contracts/AGENTS.md) |

Boundary rules:

- Interfaces and app entrypoints expose selected product behavior; reusable behavior moves down.
- Assembly wires lower layers and selects product capability facts; it must not implement concrete adapter, OS, or service details.
- Adapters translate protocols and external systems; they should not own product capability selection or reusable OS service behavior.
- Services implement reusable concrete OS, process, terminal, MCP, remote, git, filesystem, and MiniApp runtime IO capabilities.
- Product features assemble user-facing commands, UI contributions, settings, and default policy on top of kernel capabilities; long-running task, scheduler, permission, session/workspace, memory, DFX, hook, and event facts stay in Agent Kernel owners.
- Adapters translate protocols and external-provider shapes; they should not own product capability selection or reusable OS service behavior.
- Services implement reusable concrete OS, process, terminal, MCP, remote, git, filesystem, LSP plugin registry, and MiniApp runtime IO capabilities.
- External systems are boundary resources, not repository layers. Only registered adapters/services/app-local providers should call them; other layers consume ports and stable contracts.
- Execution crates are portable runtime building blocks, not host-specific or delivery-profile owners.
- Contracts stay behavior-light and must not depend upward.

Expand Down
4 changes: 2 additions & 2 deletions BitFun-Installer/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion BitFun-Installer/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bitfun-installer",
"version": "0.2.10",
"version": "0.2.12",
"private": true,
"type": "module",
"description": "BitFun Custom Installer - Modern branded installation experience",
Expand Down
2 changes: 1 addition & 1 deletion BitFun-Installer/src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "bitfun-installer"
version = "0.2.10"
version = "0.2.12"
authors = ["BitFun Team"]
edition = "2021"
description = "BitFun Custom Installer - Modern branded installation experience"
Expand Down
10 changes: 10 additions & 0 deletions BitFun-Installer/src-tauri/src/installer/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ impl From<bitfun_ai_adapters::types::RemoteModelInfo> for RemoteModelInfo {
pub enum ConnectionTestMessageCode {
ToolCallsNotDetected,
ImageInputCheckFailed,
TlsOrCertificateIssue,
ProxyIssue,
NetworkIssue,
}

impl From<bitfun_ai_adapters::types::ConnectionTestMessageCode> for ConnectionTestMessageCode {
Expand All @@ -81,6 +84,13 @@ impl From<bitfun_ai_adapters::types::ConnectionTestMessageCode> for ConnectionTe
bitfun_ai_adapters::types::ConnectionTestMessageCode::ImageInputCheckFailed => {
Self::ImageInputCheckFailed
}
bitfun_ai_adapters::types::ConnectionTestMessageCode::TlsOrCertificateIssue => {
Self::TlsOrCertificateIssue
}
bitfun_ai_adapters::types::ConnectionTestMessageCode::ProxyIssue => Self::ProxyIssue,
bitfun_ai_adapters::types::ConnectionTestMessageCode::NetworkIssue => {
Self::NetworkIssue
}
}
}
}
Expand Down
14 changes: 7 additions & 7 deletions BitFun-Installer/src/pages/LanguageSelect.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,13 @@ export function LanguageSelect({ onSelect }: LanguageSelectProps) {
<img src={logoUrl} alt="BitFun" style={{
display: 'block', margin: '0 auto 16px',
width: 56, height: 56, borderRadius: 14,
filter: 'drop-shadow(0 0 40px rgba(100, 180, 255, 0.15))',
filter: 'drop-shadow(0 0 40px var(--color-accent-100))',
}} />
<h1 style={{
fontFamily: 'var(--font-sans)', fontSize: 42, fontWeight: 700,
color: 'var(--color-text-primary)', letterSpacing: '-0.03em',
lineHeight: 0.95, margin: '0 0 16px 0',
textShadow: '0 0 60px rgba(100, 180, 255, 0.3)',
textShadow: '0 0 60px var(--color-accent-200)',
}}>BitFun</h1>
</div>

Expand All @@ -72,7 +72,7 @@ export function LanguageSelect({ onSelect }: LanguageSelectProps) {
opacity: 0.6,
letterSpacing: '0.5px',
}}>
Version 0.2.10
Version 0.2.12
</div>
</div>
</div>
Expand Down Expand Up @@ -106,9 +106,9 @@ export function LanguageSelect({ onSelect }: LanguageSelectProps) {
style={{
display: 'flex', alignItems: 'center', gap: 12,
padding: '14px 16px', width: '100%',
background: isSelected ? 'rgba(96, 165, 250, 0.14)' : 'rgba(148, 163, 184, 0.08)',
background: isSelected ? 'var(--color-accent-100)' : 'var(--element-bg-subtle)',
border: 'none',
borderRadius: 'var(--radius-sm)',
borderRadius: 'var(--size-radius-sm)',
cursor: 'pointer', textAlign: 'left',
transition: 'all 0.25s ease',
outline: 'none',
Expand All @@ -117,12 +117,12 @@ export function LanguageSelect({ onSelect }: LanguageSelectProps) {
}}
onMouseEnter={(e) => {
if (!isSelected) {
e.currentTarget.style.background = 'rgba(148, 163, 184, 0.14)';
e.currentTarget.style.background = 'var(--element-bg-soft)';
}
}}
onMouseLeave={(e) => {
if (!isSelected) {
e.currentTarget.style.background = 'rgba(148, 163, 184, 0.08)';
e.currentTarget.style.background = 'var(--element-bg-subtle)';
}
}}
>
Expand Down
2 changes: 1 addition & 1 deletion BitFun-Installer/src/pages/Options.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ export function Options({
</div>
) : null}
{!existingInstall.mainBinaryPresent ? (
<div style={{ marginBottom: 8, color: 'var(--color-warning, #c9a227)' }}>
<div style={{ marginBottom: 8, color: 'var(--color-warning)' }}>
{t('options.existingInstallBinaryMissing')}
</div>
) : null}
Expand Down
4 changes: 2 additions & 2 deletions BitFun-Installer/src/pages/ThemeSetup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export function ThemeSetup({ options, setOptions, onLaunch, onClose }: ThemeSetu
width: '100%',
borderRadius: 12,
padding: 8,
background: active ? 'rgba(96, 165, 250, 0.14)' : 'rgba(148, 163, 184, 0.08)',
background: active ? 'var(--color-accent-100)' : 'var(--element-bg-subtle)',
border: 'none',
cursor: 'pointer',
transition: 'background 0.2s ease',
Expand Down Expand Up @@ -106,7 +106,7 @@ export function ThemeSetup({ options, setOptions, onLaunch, onClose }: ThemeSetu
<div style={{ ...previewBaseStyle, background: theme.colors.background.primary }}>
<div style={{ height: 16, background: theme.colors.background.secondary, opacity: 0.9 }} />
<div style={{ display: 'flex', gap: 6, padding: 8 }}>
<div style={{ width: 22, height: 22, borderRadius: 5, background: theme.colors.element.base, opacity: 0.9 }} />
<div style={{ width: 22, height: 22, borderRadius: 5, background: theme.colors.element.soft, opacity: 0.9 }} />
<div style={{ flex: 1 }}>
<div style={{ height: 5, width: '62%', background: theme.colors.text.muted, opacity: 0.5, borderRadius: 3, marginBottom: 5 }} />
<div style={{ height: 5, width: '78%', background: theme.colors.accent['500'], borderRadius: 3 }} />
Expand Down
Loading
Loading