Commit graph

317 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
1bc8ccc07a fix(ci): restore workspace validation 2026-05-25 00:14:43 +03:00
777genius
bbe09eb42e merge(dev): pull origin dev into refactor branch 2026-05-24 17:13:34 +03:00
777genius
a324f6cc66 fix(team): show stopped runtime from spawn status 2026-05-24 17:03:01 +03:00
777genius
5abd096c61 fix: address log filter review feedback 2026-05-24 16:05:57 +03:00
777genius
7e8f4b377d feat(logs): add compact lead log source selector
- Add avatar trigger mode to MemberSelect for dense toolbar surfaces.

- Render the lead log source selector beside compact sidebar log search and filters.

- Cover toolbar accessory rendering, avatar trigger behavior and lead alias detection.
2026-05-24 15:58:38 +03:00
777genius
57931c0abd fix(renderer): defer model validation while providers load
- Treat checking, deferred and loading provider model catalog states as pending instead of unavailable.

- Show selected provider activity inside create and launch dialogs while keeping ready providers visible during checks.

- Remove the global provider status header so provider activity is scoped to launch flows.
2026-05-24 15:58:22 +03:00
777genius
3a7f9ea10b feat: add team log member filtering 2026-05-24 15:40:31 +03:00
777genius
e9cebe64ff feat: improve provider status startup hydration
Keep connected provider details visible while refreshes are in flight, restore reusable provider status UI, and separate fast startup summaries from heavier provider hydration. Replace the fixed 30s startup wait with an idle-aware scheduler with a 30s safety cap and cover the Electron timer binding crash.
2026-05-24 00:23:04 +03:00
777genius
9518ce920a fix(startup): prevent recovery regressions 2026-05-23 17:22:52 +03:00
777genius
2be35c74ec fix(startup): repair deferred runtime refresh paths 2026-05-23 17:08:13 +03:00
777genius
ef77f36b8f fix(startup): hydrate deferred provider statuses 2026-05-23 16:31:46 +03:00
777genius
08725c4e33 perf(startup): lazy load dashboard runtime surfaces 2026-05-23 15:52:47 +03:00
777genius
a4861fa77d perf(startup): defer provider status checks 2026-05-23 14:23:57 +03:00
777genius
0e8ccf2905 feat(runtime): filter free provider models 2026-05-22 21:04:50 +03:00
777genius
7e6ebce093 fix(team-ui): polish launch diagnostics controls 2026-05-22 15:43:36 +03:00
777genius
7b99a3713b feat(opencode): surface runtime diagnostics and approvals 2026-05-22 15:43:15 +03:00
777genius
0f7028f911 fix(sidebar): mark partial launch tasks offline 2026-05-22 00:21:28 +03:00
777genius
3c60ab8653 fix(team): drop unavailable effort selections 2026-05-22 00:21:17 +03:00
777genius
a386e30667 fix(team): harden launch diagnostics and MCP shutdown 2026-05-22 00:20:47 +03:00
777genius
b5ca3eed68 fix(cli): prevent stale status hydration 2026-05-22 00:18:59 +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
384446e83c feat(opencode): add scoped model defaults UI 2026-05-21 12:35:41 +03:00
777genius
99e8e2e017 fix(team): refresh codex preflight runtime state 2026-05-21 10:39:39 +03:00
777genius
16a003416d feat: harden opencode and team runtime flows 2026-05-21 01:10:48 +03:00
777genius
cdc0798016 test(opencode): cover empty summary catalog selection 2026-05-20 17:47:52 +03:00
777genius
c632208dba fix(opencode): render catalog-backed provider badges 2026-05-20 17:39:56 +03:00
777genius
147af0e0e5 fix(opencode): honor free model metadata 2026-05-20 17:15:14 +03:00
777genius
16c1e4b47d fix(opencode): settle empty catalog hydration 2026-05-20 15:31:20 +03:00
777genius
d7f82e54d1 fix(opencode): hydrate summary model catalog 2026-05-20 15:15:42 +03:00
777genius
933e580d03 fix(opencode): preserve command preflight context 2026-05-19 23:19:34 +03:00
777genius
d5894c029d feat(team): improve runtime bootstrap controls 2026-05-19 22:39:13 +03:00
777genius
bf3011624d fix: harden team launch bootstrap provisioning 2026-05-19 19:43:02 +03:00
777genius
85959b6954 feat(runtime): improve provider readiness diagnostics 2026-05-19 16:19:38 +03:00
777genius
2d06442ce0 feat(graph): refine runtime lanes and model compatibility 2026-05-19 14:24:30 +03:00
777genius
3e52008c7a feat(app): rename display name to Agent Teams AI 2026-05-19 14:24:30 +03:00
777genius
67fbd1e681 fix(codex): improve runtime CLI discovery 2026-05-18 20:04:50 +03:00
777genius
7c5832bd7e fix(opencode): avoid busy preflight warnings after compatibility 2026-05-18 15:50:38 +03:00
777genius
5e0d552cb9 fix(opencode): improve runtime preflight diagnostics 2026-05-18 11:11:45 +03:00
777genius
88e01ae87d fix(runtime): improve opencode diagnostics 2026-05-18 03:36:26 +03:00
777genius
7742c528ad chore(release): support manual draft builds 2026-05-18 02:04:13 +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
e333d09d9c fix: harden task change review flows 2026-05-17 14:18:54 +03:00
777genius
e185f1f686 fix(ui): show disabled codex model tiles 2026-05-17 01:13:51 +03:00
777genius
a3a286c652 fix(ui): patch radix focus scope ref loop 2026-05-17 00:58:17 +03:00
777genius
7c3c852520 fix(ui): avoid model selector tooltip ref loop 2026-05-17 00:50:28 +03:00