Commit graph

66 commits

Author SHA1 Message Date
Илия
8e0731f47a
revert: revert KiloCode provider support
This reverts commit cc10485f0c.
2026-05-25 21:19:56 +03:00
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
cbf5356fdc fix(runtime): prefer shell node for GUI launches 2026-05-24 01:00:03 +03:00
777genius
077c749cb7 fix(windows): harden elevated runtime detection 2026-05-22 18:43:50 +03:00
777genius
587c974c63 fix(team): harden packaged mcp runtime 2026-05-22 16:49:02 +03:00
777genius
71bfab1758 test(runtime): cover opencode timeout diagnostics 2026-05-22 16:48:40 +03:00
777genius
7b99a3713b feat(opencode): surface runtime diagnostics and approvals 2026-05-22 15:43:15 +03:00
777genius
5551eea482 fix(runtime): harden local launch plumbing 2026-05-22 15:42:51 +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
ec7b1dbd18 fix(opencode): detect nvm runtime installs 2026-05-21 13:38:40 +03:00
777genius
99e8e2e017 fix(team): refresh codex preflight runtime state 2026-05-21 10:39:39 +03:00
777genius
bf3011624d fix: harden team launch bootstrap provisioning 2026-05-19 19:43:02 +03:00
777genius
2b50def03e fix(opencode): preserve packaged runtime env 2026-05-18 21:48:06 +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
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
f96d62dc20 fix(opencode): provide mcp fallback for provider env 2026-05-17 00:12:00 +03:00
infiniti
d29f3a23d4
fix: harden Windows frontend stability (#125) 2026-05-16 19:57:11 +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
662691b24b fix(team): use exact opencode sessions for task logs 2026-05-14 02:36:21 +03:00
777genius
6726c4c55d Merge branch 'dev' of https://github.com/777genius/agent-teams-ai into dev
# Conflicts:
#	src/main/services/infrastructure/codexAppServer/__tests__/CodexBinaryResolver.test.ts
2026-05-14 00:35:42 +03:00
infiniti
6dc103b731
fix(runtime): stabilize provider readiness checks 2026-05-14 00:22:57 +03:00
777genius
a474076330 feat: add managed codex runtime installer 2026-05-13 22:30:25 +03:00
777genius
20c3194160 feat(runtime): improve provider delivery visibility 2026-05-12 23:33:08 +03:00
777genius
7138887a3b feat(runtime): detect Claude Platform on AWS safely 2026-05-12 21:26:38 +03:00
777genius
08ab7c6b6d fix(team): harden process bootstrap and codex auth 2026-05-08 09:28:28 +03:00
777genius
fcca3649bf feat: add member log stream v2 2026-05-07 13:19:56 +03:00
777genius
24d96b5bec fix(ci): handle windows-only test behavior 2026-05-04 09:37:58 +03:00
777genius
eda62c3ab3 fix(team): stabilize mixed provider runtime auth 2026-05-03 23:51:49 +03:00
iliya
62a1b0e865 fix: show effective Anthropic API key status 2026-04-30 22:21:29 +03:00
777genius
b2edfe5d2a test: characterize runtime settings hook merge 2026-04-29 22:43:19 +03:00
777genius
8ac0b43a2a perf(runtime): speed up dashboard provider status loading 2026-04-28 20:36:17 +03:00
777genius
051bfe2319 feat: prefer orchestrator codex model catalog 2026-04-28 20:13:03 +03:00
777genius
e87ef2dd85 fix(codex): propagate native runtime context 2026-04-28 17:42:18 +03:00
777genius
82f73e58c2 fix: improve team runtime recovery and launch settings 2026-04-28 12:08:01 +03:00
777genius
19b6937446 feat(opencode): harden delivery and provider UI 2026-04-25 14:30:10 +03:00
777genius
2f37be4bd0 fix(opencode): harden runtime projection delivery 2026-04-25 00:41:27 +03:00
777genius
bc2e1e43d8 feat: refine team provisioning and task log UX 2026-04-24 00:40:11 +03:00
777genius
0bde66b032 fix(runtime): pass provider args through codex probes 2026-04-23 21:29:19 +03:00
777genius
70dd17c784 fix(runtime): honor stored Anthropic API key state 2026-04-23 20:08:17 +03:00
777genius
dc4d117a8e feat(opencode): enable managed runtime defaults 2026-04-21 22:17:11 +03:00
777genius
5e31bd1c06 feat(opencode): add team runtime integration 2026-04-21 20:28:22 +03:00
777genius
331166216e feat(team-runtime): snapshot catalog-backed picker baseline 2026-04-21 15:29:23 +03:00
777genius
5683973c04 feat(codex): add app-server account management and polish native UX 2026-04-20 20:18:21 +03:00
777genius
1794e5be4e refactor(runtime): finalize codex native-only config contract 2026-04-19 22:44:48 +03:00
777genius
5d014b375b fix(runtime): tighten codex native-only phase 4 truth 2026-04-19 22:29:26 +03:00