Commit graph

516 commits

Author SHA1 Message Date
Jan
cc10485f0c
feat(kilocode): add provider support
* Add KiloCode as a first-class provider with HTTP-based model catalog

Implements KiloCode (kilo.ai gateway) support following repo design principles,
independently of the OpenCode implementation.

Key changes:
- Add 'kilocode' to CliProviderId, TeamProviderId, MemberWorkSyncProviderId
- Create kilocode-model-catalog feature: HTTP client fetching models from
  kilo.ai /models endpoint (not /v1/models — different gateway path)
- Add KILO_API_KEY env var for authentication
- Wire kilocode into provider routing, capabilities, and UI labels
- Add 'kilo' brand icon alias in providerBrandIcons (auto-fetches from models.dev)
- KiloCode status is managed via the HTTP gateway, not the multimodel bridge

* Fix: preserve non-bridge providers (kilocode) when updating provider status

The multimodel bridge only returns status for anthropic/codex/gemini/opencode.
When checkAuthStatus replaced result.providers with the bridge response,
kilocode was lost from the provider list and never appeared in the UI.

Now merge bridge providers with the initial list, keeping any provider
not covered by the bridge so kilocode shows up in the Extensions panel.

* Fix: resolve KiloCode status after bridge merge, skip bridge refresh for non-bridge providers

- resolveKilocodeStatus() gives kilocode a settled verificationState:'verified' status
  so isHydratedMultimodelProviderStatus() returns true and the loading spinner stops
- Status reflects KILO_API_KEY presence: authenticated+supported when set, else clear message
- fetchCliStatus() now skips fetchCliProviderStatus for non-bridge providers (kilocode)
  so the Claude Code CLI is not queried for kilocode, preventing error status overwrites

* Add KiloCode to API key provider system in settings dialog

isApiKeyProviderId now includes kilocode, so the API key form renders
in the Provider Settings dialog instead of showing an empty modal.
Adds KILO_API_KEY config with placeholder and description.

* Fix KiloCode models endpoint: /api/gateway/models per docs

* Fix: short-circuit getProviderStatus/verifyProviderModels for kilocode

The Claude Code CLI only accepts anthropic and codex for --provider.
Calling it with kilocode caused the blinking modal error.

resolveKilocodeProviderStatus() returns status directly from env
without touching the CLI binary — no bridge, no --provider flag.

* Fix: resolveKilocodeProviderStatus reads from app key store via enrichProviderStatus

process.env.KILO_API_KEY was only set for users who configured it in their
shell environment. The UI stores the key in the app's encrypted key store
(ApiKeyService), which enrichProviderStatus checks via hasStoredProviderApiKey.

Now resolveKilocodeProviderStatus() calls providerConnectionService.enrichProviderStatus()
so both the app key store and env var are checked — the same way anthropic/gemini work.

* Wire KiloCode model catalog into provider status — models now load from gateway

- ProviderConnectionService: add setKilocodeModelCatalogFeature() and
  enrichKilocodeProviderStatus() which fetches models from the gateway API
  and populates provider.models when the API key is configured
- main/index.ts: create KilocodeModelCatalogFeature at startup and inject
  it into ProviderConnectionService, same lifecycle as Codex catalog

* Fix: skip Claude CLI probe for kilocode in prepareForProvisioning

The generic probe path calls probeClaudeRuntime with CLAUDE_CODE_ENTRY_PROVIDER=kilocode
which causes the CLI to hang — freezing the Create Team dialog until timeout.

Add an explicit kilocode case that short-circuits to an API key presence check
(via providerConnectionService.getConnectionInfo) without touching the Claude binary,
same pattern as the opencode adapter bypass.

* Fix vitest localStorage fallback

* test(kilocode): update provider visibility expectations

---------

Co-authored-by: 777genius <quantjumppro@gmail.com>
2026-05-25 21:12:37 +03:00
infiniti
9758fafd10
feat(team): support sent message revisions
* fix(opencode): recover empty bridge output sends

* fix(opencode): handle empty readiness bridge output

* fix(opencode): retry read-only bridge no-output

* fix(opencode): recover empty bridge output sends

---------

Co-authored-by: iliya <iliyazelenkog@gmail.com>

* fix(runtime-provider): clarify opencode model routes ux

* fix(team): show create dialog loading fallback

* feat(team): support revising sent messages

* test(team): cover sent message revision flow

* fix(opencode): harden local runtime bridge support

* fix(member-work-sync): recover stale nudge payload conflicts

* fix(runtime): gate codex install prompt on runtime status

* fix(team): persist incomplete launch state before cleanup

* fix(team): keep launch pending for dead runtime entries

* feat(logs): compact team log source controls

* fix(build): verify radix presence patch before build

* fix(renderer): recover failed dynamic imports

* fix(team): preserve task labels and change presence

* fix(logs): restore member process log source

* fix(team): require revision notice before editing

---------

Co-authored-by: iliya <iliyazelenkog@gmail.com>
Co-authored-by: 777genius <quantjumppro@gmail.com>
2026-05-25 21:11:59 +03:00
777genius
776957b607 fix(team): keep runtime adapter lead activity idle 2026-05-24 20:43:11 +03:00
777genius
4a4c67fcb9 fix(team): reconcile bootstrap runtime snapshots 2026-05-24 17:02:36 +03:00
777genius
7aa87f2278 fix(team): heal stale confirmed bootstrap diagnostics
- Carry bootstrap run ids from bootstrap-state into member evidence and compare them with current run identity.

- Allow small confirmation clock skew for delayed Anthropic app acceptance without accepting stale rapid relaunch evidence.

- Clean confirmed bootstrap members that only have stale persisted runtime pid diagnostics.

- Cover process-table unavailable, post-stop stale pid and mixed launch reconcile cases.
2026-05-24 15:57:50 +03:00
777genius
95652c8990 refactor(team): extract provisioning service policies 2026-05-24 11:37:37 +03:00
777genius
1b836530e7 fix(team): reconcile cleanup bootstrap evidence 2026-05-22 21:04:49 +03:00
777genius
511dd5d7a6 fix(team): coalesce lead stream fragments 2026-05-22 21:00:20 +03:00
777genius
7b99a3713b feat(opencode): surface runtime diagnostics and approvals 2026-05-22 15:43:15 +03:00
777genius
169e34ce7c fix(team): recover process table launch failures 2026-05-22 13:34:39 +03:00
777genius
3c427ac617 feat(runtime): support anthropic compatible endpoints 2026-05-22 00:16:52 +03:00
777genius
6fd75c6704 chore: commit remaining workspace updates 2026-05-21 16:43:00 +03:00
777genius
1ff1e6ca07 fix(lint): satisfy opencode launch validation 2026-05-21 02:01:29 +03:00
777genius
16a003416d feat: harden opencode and team runtime flows 2026-05-21 01:10:48 +03:00
777genius
635d13d804 fix(opencode): harden default model resolution 2026-05-20 23:02:13 +03:00
777genius
860074da15 fix(team): stabilize Claude live runtime launches 2026-05-20 02:43:28 +03:00
777genius
3d0ee71d09 fix(team): stabilize provider live smoke 2026-05-20 01:32:39 +03:00
777genius
d5894c029d feat(team): improve runtime bootstrap controls 2026-05-19 22:39:13 +03:00
777genius
7dbabc1a85 fix: extend deterministic bootstrap timeout budget 2026-05-19 20:11:55 +03:00
777genius
e22589f6c4 fix: support twenty-member deterministic bootstrap 2026-05-19 20:00:59 +03:00
777genius
bf3011624d fix: harden team launch bootstrap provisioning 2026-05-19 19:43:02 +03:00
777genius
2d06442ce0 feat(graph): refine runtime lanes and model compatibility 2026-05-19 14:24:30 +03:00
777genius
85b767e247 fix: harden opencode runtime recovery 2026-05-19 01:27:34 +03:00
777genius
9cd5144e1a fix(codex): retry binary discovery after shell env loads 2026-05-19 00:09:26 +03:00
777genius
2b50def03e fix(opencode): preserve packaged runtime env 2026-05-18 21:48:06 +03:00
777genius
20a8e69c4c chore: save remaining workspace updates 2026-05-18 15:58:05 +03:00
777genius
7c5832bd7e fix(opencode): avoid busy preflight warnings after compatibility 2026-05-18 15:50:38 +03:00
777genius
6e4f8ff8c4 fix: stabilize opencode mcp transport refresh
Keep OpenCode app MCP transport evidence durable, refresh stale sessions without consuming normal delivery attempts, and keep recoverable runtime diagnostics out of member card errors.

Cover stable MCP restart/fallback, forced session refresh, resolved_behavior_changed recovery, and renderer diagnostics with regression and safe e2e tests.
2026-05-18 13:08:34 +03:00
777genius
5e0d552cb9 fix(opencode): improve runtime preflight diagnostics 2026-05-18 11:11:45 +03:00
777genius
d25c65381f fix(runtime): keep opencode liveness in sync 2026-05-18 02:59:24 +03:00
777genius
4a8cec9dc2 chore: checkpoint frontend workspace updates 2026-05-18 01:57:16 +03:00
777genius
4ec745268b feat: add telemetry identity and runtime status 2026-05-17 20:26:34 +03:00
777genius
445932e45b feat(team): improve runtime provider workflows 2026-05-17 19:11:26 +03:00
777genius
be558927ea fix(team): complete teammate permission responses 2026-05-17 01:30:19 +03:00
infiniti
b1cccf6e3c
fix(team): respond to teammate permission requests 2026-05-17 01:18:48 +03:00
777genius
e6b9490c44 fix(opencode): widen Windows pidusage cache window 2026-05-16 13:09:33 +03:00
777genius
8fde8cefbf fix(opencode): harden Windows live preflight cleanup 2026-05-16 12:45:33 +03:00
iliya
678d12219a fix(opencode): prevent Windows live runtime hangs 2026-05-16 12:15:10 +03:00
iliya
3ceef1fb82 fix(opencode): hide app mcp child processes on windows 2026-05-16 01:43:27 +03:00
iliya
876527a51d fix(runtime): hide direct child process windows 2026-05-16 00:45:58 +03:00
777genius
d018002c3e feat(docs): restructure VitePress IA, improve onboarding/troubleshooting docs
- Restructure sidebar: Start → Guide → Operations → Developers → Reference
- Fix EN/RU sidebar order (Installation before Quickstart)
- Expand troubleshooting with diagnostics commands and task-log triage
- Improve quickstart with prerequisites, pitfalls, and contributor links
- Expand installation docs with verification commands
- Add cyberpunk hero theme to landing page
- Add atomicFile utility with tests and stage-runtime script
- Harden team provisioning with better error handling and progress output
- Add cross-team communication, kanban, and workSync improvements
2026-05-15 23:34:06 +03:00
777genius
f882970b6c fix(team): gate launch readiness on first real turn 2026-05-15 23:34:06 +03:00
Jonas Korani
7f7a95c8f4 fix(team): make Windows child env setup fail open
Prepare writable Windows temp/cache env for agent child processes without blocking team launch.\n\n- fail open if cache roots cannot be created or written\n- keep hard child-process preflight out of launch path\n- cover Windows env setup and fail-open behavior
2026-05-15 22:06:45 +03:00
777genius
60f7b6a5fd chore: sync frontend changes for runtime 0.0.33 2026-05-14 23:53:07 +03:00
777genius
9c0b8beb7c fix(ci): stabilize ci and release workflows 2026-05-14 22:10:30 +03:00
777genius
6e8f938da2 fix(team): harden opencode delivery recovery 2026-05-14 15:11:40 +03:00
777genius
874123c773 fix(team): scope OpenCode prepare runtime failures 2026-05-14 12:01:05 +03:00
777genius
8ab190bad8 chore: merge origin dev into local dev 2026-05-14 11:20:47 +03:00
infiniti
c57c513cf1
fix(opencode): recover agenda sync after missing proof
Recover OpenCode agenda sync after protocol-proof-missing delivery failures and harden Anthropic provider readiness handling.
2026-05-14 11:12:37 +03:00
777genius
b77eaf2b26 fix(team): scope OpenCode preflight runtime failures 2026-05-14 11:10:34 +03:00