|
| 1 | +# OpenWork Capability Inventory (baseline) |
| 2 | + |
| 3 | +A snapshot of what the OpenWork desktop app **already does today**, grounded in |
| 4 | +the current code. The autonomous feature loop diffs Claude Code Desktop / Codex |
| 5 | +desktop features against this baseline to find genuine gaps — so a candidate that |
| 6 | +maps to anything below is **not** a gap. |
| 7 | + |
| 8 | +> Scope: the Electron frontend/shell only. The qwen-code backend (vendored from |
| 9 | +> npm) is out of scope and must not be modified. Paths are representative anchors, |
| 10 | +> not exhaustive. |
| 11 | +> |
| 12 | +> Maintenance: refresh this when a `loop-bot` PR ships a new capability, or |
| 13 | +> periodically re-survey. Treat it as a fast index, not a contract. |
| 14 | +
|
| 15 | +## 1. Sessions & conversation |
| 16 | +- Multi-session per workspace; create/delete/archive/flag; status (`todo`, |
| 17 | + `in_progress`, `needs_review`, `done`, `cancelled`); search & filter. |
| 18 | +- Persisted history with message-level streaming, token-usage tracking, read/unread. |
| 19 | +- Session export/import + cross-workspace resource bundles. |
| 20 | +- `apps/electron/src/renderer/atoms/sessions.ts`, `packages/core/src/types/session.ts` |
| 21 | + |
| 22 | +## 2. Chat & agent interaction UI |
| 23 | +- Message bubbles (user/system), turn cards with actions, inline execution progress. |
| 24 | +- Plan accept/reject UI; streaming incremental updates; token display. |
| 25 | +- Auth-request cards for OAuth flows; tool-execution approval dialogs. |
| 26 | +- **Permission modes (4):** `explore` / `ask` / `execute` / `auto-edit`. |
| 27 | +- **Thinking levels (6):** off / low / medium / high / xhigh / max, with per-workspace defaults. |
| 28 | +- `packages/ui/src/components/chat/*`, `packages/shared/src/agent/mode-types.ts` |
| 29 | + |
| 30 | +## 3. File & artifact previews |
| 31 | +- Code (Shiki highlight), diffs, JSON tree, HTML (sandboxed), Mermaid, LaTeX. |
| 32 | +- PDF viewer, spreadsheet/Excel table (sort/filter/export), DOCX, PPTX, image gallery. |
| 33 | +- Rich markdown: collapsible sections, table export (CSV/Excel), link preview overlay. |
| 34 | +- `packages/ui/src/components/markdown/*`, `apps/electron/src/renderer/components/files/FileViewer.tsx` |
| 35 | + |
| 36 | +## 4. Local project & workspace management |
| 37 | +- Workspace types: `conversation` / `project`; multi-workspace; per-workspace config. |
| 38 | +- File read (text/binary), directory listing/search, file watching, allowed-dir enforcement. |
| 39 | +- Shell command execution with output capture, kill/terminate, shell-env loading (nvm/Homebrew). |
| 40 | +- Worktree creation; per-session modified/new-file tracking; notes. |
| 41 | +- `apps/electron/src/main/handlers/workspace.ts`, `apps/electron/src/main/shell-env.ts` |
| 42 | + |
| 43 | +## 5. Integrations & data sources |
| 44 | +- **MCP servers:** HTTP MCP connections, workspace-scoped OAuth / bearer auth, tool listing & execution. |
| 45 | +- **Native OAuth:** Google, Slack, Microsoft (PKCE, refresh); plus a generic OAuth 2.0 client for any provider. |
| 46 | +- **Local folder sources** as agent data sources; encrypted per-workspace credential store with health tracking. |
| 47 | +- **Messaging adapters:** WhatsApp, Telegram (pairing/linking, inbound event fanout). |
| 48 | +- `packages/shared/src/mcp/*`, `packages/shared/src/auth/*`, `packages/messaging-gateway/src/adapters/*` |
| 49 | + |
| 50 | +## 6. Skills & extensibility |
| 51 | +- `SKILL.md` (YAML frontmatter) format; metadata (name, description, icon, required sources, alwaysAllow tools). |
| 52 | +- Multi-tier sourcing: global (`~/.agents/`), workspace, project (`.agents/`), provider. |
| 53 | +- File-glob auto-trigger; tool allow-listing; enable/disable; marketplace discovery. |
| 54 | +- `packages/shared/src/skills/*` |
| 55 | + |
| 56 | +## 7. Settings & preferences |
| 57 | +- Model selection per session/workspace; multiple LLM connections per provider; custom endpoints. |
| 58 | +- Default + per-session permission mode; per-workspace thinking level. |
| 59 | +- Theme (light/dark/system + presets), language (i18next), keep-awake, keyboard shortcuts. |
| 60 | +- Network proxy (HTTP/HTTPS/SOCKS + auth). |
| 61 | +- `apps/electron/src/main/handlers/settings.ts`, `packages/shared/src/config/*` |
| 62 | + |
| 63 | +## 8. Window & UX features |
| 64 | +- Multi-window (per-workspace), window-state persistence, close confirmation, deep links (`craftagents://`). |
| 65 | +- **Pet window:** floating companion overlay, click-through, activity animations, notifications. |
| 66 | +- **Embedded browser pane:** Chromium pane (dockable/floating) with navigate/back/forward/reload, |
| 67 | + JS eval, screenshot, form interaction, a11y snapshot, CDP integration, console/network logging. |
| 68 | +- Theme system with per-workspace override; i18n; command palette / action registry; global shortcuts. |
| 69 | +- `apps/electron/src/main/window-manager.ts`, `apps/electron/src/main/browser-pane-manager.ts` |
| 70 | + |
| 71 | +## 9. Model & provider configuration |
| 72 | +- Providers: Qwen (ModelStudio) primary; OpenAI-compatible custom endpoints; multi-connection. |
| 73 | +- Model metadata (capabilities, context window, pricing) with lazy-load/caching. |
| 74 | +- Auth: API key / OAuth / bearer / custom headers. Runtime proxy changes. |
| 75 | +- `packages/shared/src/config/llm-connections.ts`, `packages/shared/src/config/model-fetcher.ts` |
| 76 | + |
| 77 | +## 10. Auto-update & distribution |
| 78 | +- electron-updater: macOS (DMG/zip + signature validation), Windows (NSIS), Linux (AppImage). |
| 79 | +- Download progress, update notification, install-on-quit, skip-version, dev-build exclusion. |
| 80 | +- macOS code-signing checks; brand-configurable update sources. |
| 81 | +- Platforms: macOS (arm64/x64), Windows (x64/arm64), Linux (AppImage). |
| 82 | +- `apps/electron/src/main/auto-update.ts` |
| 83 | + |
| 84 | +## 11. Notifications |
| 85 | +- Native OS notifications (focus-suppressed, click-to-navigate, workspace routing). |
| 86 | +- macOS dock badge unread count (instance-aware); in-app Sonner toasts. |
| 87 | +- `apps/electron/src/main/notifications.ts` |
| 88 | + |
| 89 | +## 12. Other notable |
| 90 | +- Deep linking / URL scheme actions (new-chat, resume/delete/flag session, navigate to settings/sources/skills). |
| 91 | +- Session resource export/import; remote workspace support (WebSocket-proxied handlers, chunked RPC). |
| 92 | +- Power management (keep-awake during runs); Sentry error tracking with redaction; onboarding/setup flow. |
| 93 | +- `apps/electron/src/main/deep-link.ts`, `apps/electron/src/main/onboarding.ts` |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +_Generated as a baseline survey. Verify against current code before relying on any |
| 98 | +single line — the app evolves and this index can lag._ |
0 commit comments