OpenCode Merge v1.18.21…v1.18.26 - #14449
Conversation
Co-authored-by: Aiden Cline <rekram1-node@users.noreply.github.com> Co-authored-by: Filip <34747899+neriousy@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com>
Co-authored-by: thdxr <826656+thdxr@users.noreply.github.com>
Co-authored-by: Slickstef11 <98915060+Slickstef11@users.noreply.github.com>
Co-authored-by: neriousy <34747899+neriousy@users.noreply.github.com>
…tible providers (#43915) Co-authored-by: Joel Stucki <joel.stucki@example.com>
The bounded virtual-clock loop could exhaust before the forked re-arm fiber armed its next window, so the schedule appeared to stall and the test failed intermittently on loaded CI hosts. Yield each pass and use a generous bound so the loop waits for the schedule instead of racing the scheduler.
….18.26' into marius-kilocode/kilo-opencode-v1.18.26
Self-testing the merged build found two Kilo behaviours the merge resolution lost: - The gpt-5 textVerbosity gate no longer excluded the azure provider. - GlobalUpgradeInput made target required, so the upgrade endpoint could no longer fall back to the latest version. Restore both, keep upstream semver validation for a provided target, and regenerate the SDK so the client signature is optional again.
The frame helper retried for about 125ms before returning whatever it had, so a slow Windows runner could hand an empty frame to the assertions and fail the file tree test. Wait up to five seconds for the first painted frame instead, which keeps the same contract for tests that pass.
Restoring the optional target was not enough. With a plain struct payload Effect rejects an empty body before the handler runs, so the SDK, which strips an empty body slot, could never reach installation.latest. Restore the NoContent payload union and read the payload defensively, and cover a bodyless request in the global HttpApi tests.
…ilocode/kilo-opencode-v1.18.26
The test parsed the leader pid out of captured output, but the first line can still be missing when the ready pattern matches on a loaded Windows runner, so the assertion received NaN. The leader now writes its pid before spawning the child, which the ready signal already depends on.
|
Rechecked unchanged head
Focused in-memory probes support 1/2; 3 is code-traced, not runtime-reproduced. Suggested scope: targeted Kilo adapter fixes and regression tests, leaving the deferred upstream-only issues out of this PR. |
Azure Entra sign-in required AZURE_RESOURCE_NAME and ignored a full endpoint URL from the connect dialog. Resolve the account from inputs, AZURE_RESOURCE_NAME, AZURE_OPENAI_RESOURCE_NAME, or AZURE_OPENAI_ENDPOINT; store an oauth baseURL so the loader honors a custom endpoint; and collect OAuth method prompts in the VS Code dialog to forward them as inputs. Extend the project MCP header sanitizer to nested mcp.servers entries.
Extract the shared prompt list plus no-field error into one PromptFields component so the provider connect dialog passes the duplication guard, and apply the repo Prettier style to the new host handler line.
The OAuth prompt view blocked submission for optional prompts. Skip optional prompts like the API-key view does, and mark snowflake-cortex role optional so it is not forced. Add regression tests for the Azure dialog resource-name path and the flat server named servers case in the nested MCP header sanitizer.
…lTest Rows hide their PR badges while a reload reports progress, so the fixed flush in panelWithPr raced the load and intermittently emptied secondaryBadges. Wait for every row to leave the progress state using the existing waitUntil helper.
|
Follow-up to the earlier review, rechecked at current head
Remaining request: apply V2 lowering before validation in these Kilo-owned adapters, preserve the original JSONC, and add an unrelated-setting update regression test. Ordinary V1 configs are unaffected; no broader upstream changes are requested. CI is green. This remaining finding is source-traced, not runtime-reproduced, and is the only outstanding code change I would request before approval. |
|
We kept this scoped to Kilo adapter compatibility, not broader V2 support. Upstream v1 already accepts supported V2 config values, so our Settings reader and writer should not reject those same documents. The adapters now lower in memory before validation while preserving the original JSONC and Kilo-specific settings on disk. No upstream source changes or V2-aware editing were added. Fixed in b1ea859, with focused preservation and rejection tests; all 41 settings-adapter tests pass. |
OpenCode v1.18.26
Core
Improvements
Bugfixes
nonereasoning effort.apply_patchno longer emits an empty move path in permission metadata.OpenCode v1.18.25
Core
Bugfixes
OpenCode v1.18.24
Core
Improvements
Bugfixes
OpenCode v1.18.23
Core
Bugfixes
claude-haiku-4.5to the dashed slug Anthropic expects.TUI
Bugfixes
OpenCode v1.18.22
Core
Bugfixes
textVerbositybeing sent to OpenAI-compatible providers that do not support it.OpenCode v1.18.21
Core
Bugfixes
euandusmulti-region Gemini requests through REP endpoints.Merge decisions
Where Kilo intentionally differs from upstream, Kilo behavior is preserved and the upstream test is adapted with a
kilocode_changenote:kilocode/. The Entra ID method stays hidden unless theazCLI is available.x-kilocode-modeandX-KILOCODE-*headers and also sends upstream'sx-parent-session-id; the header keys are disjoint.FreeUsageLimitError/GoUsageLimitError.normalizeLoadedConfig, excess-key warnings,updateProjectConfigdelegation, and global merge/preserve behavior, and adopts upstream's V2-compat lowering.finish/Board notice handling, sandbox flags,processor.metadata, andaskPermissionprovenance.Merge repairs
./permissionexport and theclient./promiseandui./file-path,./session-diff,./pierresubpath exports that the merge dropped.check:architectureandcheck:duplicationscripts and the CLItest:httpapi --shards 4flag.@opencode-ai/clientinsession-uiinstead of upstream'spackages/appvendored tarball, which does not exist in this repo.HttpServerRequestimport required by the Kilo SSE event stream.packages/http-recorder.unlock.ymlSST workflow.Adapted upstream tests
experimental.openTelemetry: true.pluginlist.kilo.jsonglobal config path.update-global/update-projectv1-overridesoutputs reflect Kilo'sstripNullsempty-object cleanup.update-projectfixtures and native-permission tests targetkilo.jsoninstead ofconfig.json.processor.metadata.@ai-sdk/openai-compatible2.0.41 (nested Alibaba consumer) and 2.0.48 (direct).Validation
Local checks:
bun turbo typecheck: 30 tasks successful (includes JetBrains and webview).bun run compile(extension): check-types, webview types, lint, and bundle pass.bun test ./test/provider: 612 pass, 0 fail.bun test ./test/session: 469 pass, 0 fail.bun test ./test/config: 245 pass, 0 fail.bun test ./test/patched-dependencies.test.ts: 22 pass, 0 fail.test/kilocode/server,test/kilocode/config,test/kilocode/session): 442 pass, 1 known under-load flake.check-workflows,check-md-table-padding,check-forbidden-strings,check-kilocode-change,check-architecture,check:duplication,check-model-tool-network,knip,check-opencode-promise-facades, source links, and opencode annotations all pass.Manual test
Isolated VS Code instance running the CLI and extension built from this branch (disposable workspace and data directory, staged login, no real credentials in output):
azCLI installed only the API key method is offered, which is the intended gating for Entra ID.MERGE_UI_OKwith no error card.Not exercised manually: live Cloudflare AI Gateway routing, Codex limits, and the real Azure CLI sign-in, which need external credentials or an Azure CLI.
What to test