Commit graph

1737 commits

Author SHA1 Message Date
777genius
33463d3479 perf(startup): skip deferred cli version probe 2026-05-25 23:25:21 +03:00
777genius
a6dd0061a8 perf(startup): defer heavy startup work 2026-05-25 23:14:59 +03:00
777genius
43afc9f907 fix(jsonl): align count-only baseline parsing 2026-05-25 22:58:07 +03:00
777genius
b0b2fa2d13 fix(jsonl): count baseline entries without materializing messages 2026-05-25 22:32:09 +03:00
777genius
e64fff8af0 fix(watcher): baseline large existing jsonl files 2026-05-25 22:26:55 +03:00
777genius
bafd4d7194 fix(team): show launch dialog loading fallback 2026-05-25 21:30:56 +03:00
777genius
e88d3a1e98 feat(team): open persisted attachments in editor 2026-05-25 21:30:56 +03:00
777genius
63e16d1043 fix(workspace-trust): canonicalize git worktree trust roots 2026-05-25 21:30:56 +03:00
Илия
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
infiniti
bf41db266d
fix(opencode): explain managed profile link failures
Co-authored-by: iliya <iliyazelenkog@gmail.com>
2026-05-25 20:59:12 +03:00
777genius
86e700f031 fix(team): require revision notice before editing 2026-05-25 20:57:04 +03:00
777genius
7e0520cb4c fix(logs): restore member process log source 2026-05-25 17:17:11 +03:00
777genius
5513531053 fix(team): preserve task labels and change presence 2026-05-25 15:43:07 +03:00
777genius
086a8b3e29 fix(renderer): recover failed dynamic imports 2026-05-25 15:42:56 +03:00
777genius
62ef88300a feat(logs): compact team log source controls 2026-05-25 14:54:28 +03:00
777genius
79faaf1f9f fix(team): keep launch pending for dead runtime entries 2026-05-25 14:53:45 +03:00
777genius
c033a0cb87 fix(team): persist incomplete launch state before cleanup 2026-05-25 14:53:05 +03:00
777genius
53dec55b1d fix(runtime): gate codex install prompt on runtime status 2026-05-25 14:52:50 +03:00
777genius
8f4a4dd502 fix(member-work-sync): recover stale nudge payload conflicts 2026-05-25 14:34:14 +03:00
infiniti
2cee9cabaf
fix(opencode): harden local runtime bridge support 2026-05-25 14:31:57 +03:00
777genius
26a57f87d4 test(team): cover sent message revision flow 2026-05-25 01:22:57 +03:00
777genius
5aba24c400 feat(team): support revising sent messages 2026-05-25 01:22:57 +03:00
777genius
7f12c12922 fix(team): show create dialog loading fallback 2026-05-25 01:22:57 +03:00
777genius
c04871747c fix(runtime-provider): clarify opencode model routes ux 2026-05-25 01:22:57 +03:00
infiniti
2b3a184bef
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>
2026-05-25 00:41:54 +03:00
777genius
1bc8ccc07a fix(ci): restore workspace validation 2026-05-25 00:14:43 +03:00
infiniti
50f876f863
fix(opencode): retry read-only bridge no-output
* fix(opencode): handle empty readiness bridge output

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

---------

Co-authored-by: iliya <iliyazelenkog@gmail.com>
2026-05-24 23:22:34 +03:00
infiniti
47cea58543
feat(i18n): add expanded app locale support
* feat(i18n): add CJK app locale support

* feat(i18n): add Spanish Hindi and Portuguese locales

* feat(i18n): add French Arabic and Bengali locales

* feat(i18n): add Urdu Indonesian and German locales

* feat(i18n): add landing locales for Bengali Urdu and Indonesian

* fix(i18n): address locale review feedback

---------

Co-authored-by: iliya <iliyazelenkog@gmail.com>
2026-05-24 22:10:47 +03:00
777genius
776957b607 fix(team): keep runtime adapter lead activity idle 2026-05-24 20:43:11 +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
4a4c67fcb9 fix(team): reconcile bootstrap runtime snapshots 2026-05-24 17:02:36 +03:00
Илия
049bc2ce7c
feat: add team log member filtering Merge pull request #151 from 777genius/feat/team-log-member-filter
feat: add team log member filtering
2026-05-24 16:59:11 +03:00
777genius
6ebe375cf9 fix: restore runtime status ci expectations 2026-05-24 16:43:16 +03:00
Илия
f2a5429a4b
refactor(team): extract provisioning service policies Merge pull request #149 from 777genius/refactor/team-provisioning-policies
refactor(team): extract provisioning service policies

Merge pull request #149 from 777genius/refactor/team-provisioning-policies
2026-05-24 16:10:05 +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
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
421997c457 chore: merge dev into team log member filter
# Conflicts:
#	src/renderer/components/layout/TeamTabSectionNav.tsx
#	src/renderer/components/team/ClaudeLogsFilterPopover.tsx
#	src/renderer/components/team/ClaudeLogsSection.tsx
#	src/renderer/components/team/members/MemberDetailDialog.tsx
#	src/renderer/components/ui/MemberSelect.tsx
2026-05-24 15:55:56 +03:00
Илия
e7a1070ce3
feat(i18n): add localization foundation Merge pull request #150 from 777genius/feat/ui-localization-foundation
feat(i18n): add localization foundation

Merge pull request #150 from 777genius/feat/ui-localization-foundation
2026-05-24 15:40:37 +03:00
777genius
3a7f9ea10b feat: add team log member filtering 2026-05-24 15:40:31 +03:00
777genius
6855d63ec6 feat(i18n): add localization foundation
Refs https://github.com/777genius/agent-teams-ai/issues/139
2026-05-24 15:37:24 +03:00
777genius
bc8d47aaa2 perf(team): lazy load create team suggestions 2026-05-24 15:36:34 +03:00
777genius
f6b2bc4cec fix(team): reject failed opencode session handles 2026-05-24 12:21:58 +03:00
777genius
95652c8990 refactor(team): extract provisioning service policies 2026-05-24 11:37:37 +03:00
777genius
57c209a828 fix(release): restore radix compose refs export 2026-05-24 02:32:35 +03:00
777genius
23d1ba4107 fix(validate): clear release lint errors 2026-05-24 02:20:09 +03:00
777genius
6e5346094d fix(release): package app entry files 2026-05-24 01:37:22 +03:00
777genius
cbf5356fdc fix(runtime): prefer shell node for GUI launches 2026-05-24 01:00:03 +03:00
777genius
edcb0a7433 fix: reset project caches on context switches
Reset project and repository-group loading, error, and initialized flags when contexts change so stale initialization state cannot suppress fresh context data.
2026-05-24 00:23:17 +03:00
777genius
192f2ea497 perf: reduce splash animation startup pressure
Throttle enhanced splash rendering to 30fps and disable the canvas scene during slow or failed startup steps so the renderer has less work while bootstrapping.
2026-05-24 00:23:11 +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
91b153459a feat: add resilient cross-platform file watching
Share watcher fallback behavior across project, todo, team, and task file monitoring. Add polling fallback coverage for watcher-limit and startup failure cases so Linux EMFILE conditions degrade instead of amplifying renderer crashes.
2026-05-24 00:22:48 +03:00
777genius
b9cbdde502 fix(team): include runtime logs in launch failure artifacts
Refs: 777genius/agent-teams-ai#140
2026-05-23 23:33:54 +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
f8b96d12d3 perf(startup): lazy load task detail surfaces 2026-05-23 15:42:29 +03:00
777genius
6ac95505bc perf(startup): defer hidden renderer work 2026-05-23 15:34:30 +03:00
777genius
b4f2be87df perf(startup): shrink participant avatar assets 2026-05-23 15:13:02 +03:00
777genius
34a1b86b21 perf(startup): defer noncritical startup probes 2026-05-23 15:04:05 +03:00
777genius
a4861fa77d perf(startup): defer provider status checks 2026-05-23 14:23:57 +03:00
777genius
64fdfd2422 chore: checkpoint existing workspace changes 2026-05-23 13:48:35 +03:00
777genius
eb99baee23 fix(runtime): sanitize provider error output 2026-05-22 21:04:50 +03:00
777genius
0e8ccf2905 feat(runtime): filter free provider models 2026-05-22 21:04:50 +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
077c749cb7 fix(windows): harden elevated runtime detection 2026-05-22 18:43:50 +03:00
777genius
e9a37e7325 refactor(team): extract global task notifications 2026-05-22 18:04:42 +03:00
777genius
abd40efdaf feat: add windows elevation status banner 2026-05-22 17:41:19 +03:00
777genius
f4ff278ac4 chore: merge team ipc clean architecture refactor 2026-05-22 17:16:51 +03:00
777genius
97b4d86749 fix(opencode): run bridge commands portably 2026-05-22 16:49:23 +03:00
777genius
587c974c63 fix(team): harden packaged mcp runtime 2026-05-22 16:49:02 +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
5551eea482 fix(runtime): harden local launch plumbing 2026-05-22 15:42:51 +03:00
777genius
6fb0c714ef fix(runtime-provider-management): surface provider diagnostics 2026-05-22 15:42:25 +03:00
777genius
8946bc668d refactor(team): extract resolved members and graph layout 2026-05-22 15:08:32 +03:00
777genius
169e34ce7c fix(team): recover process table launch failures 2026-05-22 13:34:39 +03:00
777genius
ab76e5424d refactor(team): extract messages panel mode persistence 2026-05-22 11:39:54 +03:00
777genius
f0ca6a57c2 refactor(team): extract tool approval parser 2026-05-22 11:33:30 +03:00
777genius
67a6d711eb refactor(team): extract launch params helpers 2026-05-22 11:28:07 +03:00
777genius
7f828c2e63 refactor(team): extract error policies 2026-05-22 11:21:27 +03:00
777genius
e723a62ed0 refactor(team): extract member activity meta helpers 2026-05-22 11:16:28 +03:00
777genius
993982311d refactor(team): extract provisioning state rules 2026-05-22 11:08:11 +03:00
777genius
3f7b793816 refactor(team): extract runtime snapshot equality 2026-05-22 11:01:56 +03:00
777genius
0a1e4c6e8b refactor(team): extract member spawn snapshot equality 2026-05-22 10:56:12 +03:00
777genius
e2031bf928 refactor(team): extract snapshot structural sharing 2026-05-22 10:48:08 +03:00
777genius
c091bd8d96 refactor(team): extract scoped state cleanup 2026-05-22 10:42:12 +03:00
777genius
9bd8585617 refactor(team): extract refresh burst diagnostics 2026-05-22 10:27:22 +03:00
777genius
34902059b2 refactor(team): extract spawn status warning throttle 2026-05-22 10:13:17 +03:00
777genius
38b0a87d5d refactor(team): extract spawn status backoff 2026-05-22 10:08:13 +03:00
777genius
e718ccf39a refactor(team): extract refresh timestamps 2026-05-22 10:00:54 +03:00
777genius
7d08a10d6f refactor(team): extract local state epoch registry 2026-05-22 09:56:32 +03:00
777genius
4a561f2cd2 refactor(team): extract pending reply waits 2026-05-22 09:50:06 +03:00
777genius
69f7a21771 refactor(team): extract data request keys 2026-05-22 09:42:02 +03:00