Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
dedbc3c
feat(cowork): introduce cowork mode and plugin MCP management
wgqqqqq Feb 11, 2026
a9c43ab
refactor(core): update agent pipeline and MCP remote transport
wgqqqqq Feb 11, 2026
d234a15
feat(desktop): align APIs with agentic and MCP changes
wgqqqqq Feb 11, 2026
7307aab
refactor(server): update API routes and websocket wiring
wgqqqqq Feb 11, 2026
0392df4
feat(web-ui): add cowork scope selector and empty-state cards
wgqqqqq Feb 11, 2026
8bd3efb
feat(web-ui): improve cowork workspace and integrations UX
wgqqqqq Feb 12, 2026
bf0c8db
feat(flow-chat): persist mode and add open-workspace action
wgqqqqq Feb 24, 2026
8adf567
refactor(skills): reorganize docx/pptx/pdf skill structure
wgqqqqq Feb 14, 2026
17cb28e
feat(runtime): add managed runtime resolution and skill sync
wgqqqqq Feb 14, 2026
720cdf7
fix(desktop): restore tauri Emitter import
wgqqqqq Feb 24, 2026
999958d
feat(skills): add builtin agent-browser skill
wgqqqqq Feb 24, 2026
76bfd3a
fix(core): trigger rebuild when builtin_skills change
wgqqqqq Feb 24, 2026
38ede83
docs(skills): add agent-browser prerequisites
wgqqqqq Feb 24, 2026
c06c85d
feat(core): improve skills integration and MCP transport
wgqqqqq Feb 24, 2026
9afebd3
chore(skills): remove deprecated builtin skills
wgqqqqq Feb 24, 2026
4d1d010
fix(desktop): use explicit api::AppState path
wgqqqqq Feb 24, 2026
16c1ecd
feat(web-ui): split skill market into extensions tab
wgqqqqq Feb 24, 2026
57b696a
feat(cowork): improve prompt and command execution
wgqqqqq Feb 26, 2026
b407fdd
chore(skills): replace builtin office skills from external source
wgqqqqq Feb 26, 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: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ lazy_static = "1.4"
dashmap = "5.5"
indexmap = "2.6"
num_cpus = "1.16"
include_dir = "0.7.4"

# HTTP client
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json", "stream", "multipart"] }
Expand Down
92 changes: 92 additions & 0 deletions docs/managed-runtime-delivery-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Managed Runtime Delivery Plan (No-Dev Environment)

## Scope

This plan ensures Cowork mode can execute built-in Skills and local MCP servers on user machines without preinstalled development tools.

Constraints confirmed:
- No remote execution fallback.
- First-run large runtime/component download is acceptable.
- Dual-platform support in parallel (macOS + Windows).
- Dual package strategy is accepted.

## Packaging Strategy

### Package A: `BitFun-Lite`
- Smaller installer.
- Includes runtime bootstrapper only.
- On first use, downloads required managed components (Node/Python/Office/Poppler/Pandoc) by demand.

### Package B: `BitFun-Full`
- Larger installer.
- Bundles core managed runtime components in installer payload.
- Works offline for common Skill/MCP scenarios immediately after install.

## Runtime Layout

Managed runtime root:
- `~/.config/bitfun/runtimes/` (via PathManager)

Component layout:
- `runtimes/<component>/current/...`
- Optional versioned dirs for future upgrades:
- `runtimes/<component>/<version>/...`
- `current` symlink or pointer switch.

## Runtime Resolution Policy

Command resolution order:
1. Explicit command path (if command is absolute/relative path)
2. System PATH
3. BitFun managed runtimes

This policy is implemented in `RuntimeManager` and currently used by:
- Local MCP process launch.
- Terminal PATH injection (so Bash/Skill commands can find managed binaries).

## UX and Observability

- MCP config UI shows local command readiness and runtime source:
- `system`
- `managed`
- `missing`
- Runtime capability API is exposed for diagnostics/settings UI.
- Start failure message explicitly reports managed runtime root path for troubleshooting.

## Security and Integrity

Downloader requirements (next phase):
- HTTPS only.
- SHA256 verification against signed manifest.
- Optional signature verification for manifest and artifacts.
- Atomic install (download -> verify -> extract -> switch `current`).
- Rollback to previous version if install fails.

## Next Implementation Milestones

1. Runtime installer service
- Add component manifest model.
- Add download/verify/extract pipeline.
- Add install state tracking and progress events.

2. Preflight dependency analyzer
- Parse built-in Skill runtime requirements.
- Parse local MCP commands and map to required components.
- Produce missing-component list for one-click install.

3. UI install workflow
- Add "Install required runtimes" action in Skills/MCP settings.
- Progress + retry + failure reason details.

4. Build pipeline for dual packages
- `Lite`: bootstrap only.
- `Full`: include runtime payload in bundle resources.
- Platform-specific artifact matrix for macOS and Windows.

## Acceptance Criteria

- On clean machine without Node/Python/Office installed:
- Built-in Skills requiring these runtimes can run after managed install.
- Local MCP servers using `npx/node/python` can start without system-level runtime.
- No cloud fallback is required for runtime execution.
- Both macOS and Windows pass same E2E runtime readiness scenarios.
100 changes: 50 additions & 50 deletions pnpm-lock.yaml

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

3 changes: 3 additions & 0 deletions src/apps/desktop/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ similar = { workspace = true }
dashmap = { workspace = true }
ignore = { workspace = true }
urlencoding = { workspace = true }
uuid = { workspace = true }
zip = { workspace = true }
reqwest = { workspace = true }

[target.'cfg(windows)'.dependencies]
win32job = { workspace = true }
Loading