Skip to content

OpenCode v1.3.4#8798

Merged
johnnyeric merged 157 commits intomainfrom
catrielmuller/kilo-opencode-v1.3.4
Apr 12, 2026
Merged

OpenCode v1.3.4#8798
johnnyeric merged 157 commits intomainfrom
catrielmuller/kilo-opencode-v1.3.4

Conversation

@catrielmuller
Copy link
Copy Markdown
Contributor

Core

  • Add prompt slot feature
  • Update opencode-gitlab-auth to 2.0.1
  • Refactored session processor to use effect-based architecture
  • Use AppFileSystem instead of raw Filesystem for better abstraction
  • Upgrade OpenTUI to version 0.1.91
  • Adjust bash tool description to increase cache hit rates between projects
  • Update Effect to version 4.0.0-beta.42
  • Refactor session compaction service to use Effect
  • Add single target plugin entrypoints
  • Use ChildProcessSpawner instead of Process.spawn for formatting
  • Move more responsibility to workspace routing
  • Refactor Session service to use Effect-based architecture
  • Add support for AI SDK v6
  • Add additional overflow error patterns to error handling
  • Fix flaky plugin tests by removing mock.module which is not supported in Bun
  • Split out instance and route through workspaces
  • Effectify Plugin service internals
  • Effectify Skill service internals
  • Add TUI plugins support
  • Refactor tool registry to yield Config and Plugin services using Effect.forEach
  • Ignore generated models snapshot files
  • Replace async git() with ChildProcessSpawner in VCS module
  • Yield services instead of promise facades in Effect refactor
  • Fixed web UI bundle build on Windows
  • Improve app startup performance
  • Close MCP transport on failed or timed-out connections
  • Use cachedInvalidateWithTTL for config and bump Effect to beta.37
  • Refactor Config service to use Effect
  • Remove workspace server and WorkspaceContext, improve routing architecture
  • Add GPT prompt so non-Codex GPT models have their own system prompt modeled after Codex CLI
  • Refactor LSP service with InstanceState using Effect

TUI

  • Use theme color for prompt placeholder
  • Add dialog variant menu and improve subagent functionality
  • Open dialog for model variant selection instead of cycling
  • Check KV theme before falling back to default theme
  • Add top spacing to session view and remove obsolete documentation prompt
  • Restore subagent footer and fix style guide violations
  • Add model variant selection dialog
  • Remove variant cycle display from footer
  • Move session context into prompt footer

Desktop

  • Improved app startup efficiency
  • Use Azure Artifact Signing for Windows releases
  • Default file tree to closed with minimum width
  • Resize layout viewport when mobile keyboard appears
  • Persist queued followups across project switches
  • Reduce markdown jank while responses stream in UI
  • Remove fork session button from app
  • Default shell tool to collapsed state
  • Don't bundle fonts in app

jayair and others added 30 commits March 24, 2026 22:07
The stale-issues workflow was hitting the default 30 operations limit,
preventing it from processing all 2900+ issues/PRs. Increased to 1000
to handle the full backlog. Also pinned to exact v10.2.0 for reproducibility.
- Create script/github/close-issues.ts to close stale issues after 60 days
- Add GitHub Action workflow to run daily at 2 AM
- Remove old stale-issues workflow to avoid conflicts
- Add contents: read permission for checkout
- Use github.token instead of secrets.GITHUB_TOKEN
directory: ctx.directory,
headers: Flag.KILO_SERVER_PASSWORD
? {
Authorization: `Basic ${Buffer.from(`${Flag.KILO_SERVER_USERNAME ?? "opencode"}:${Flag.KILO_SERVER_PASSWORD}`).toString("base64")}`,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Default basic-auth username no longer matches the server

Server.ControlPlaneRoutes() now falls back to Flag.KILO_SERVER_USERNAME ?? "kilo", but this client still falls back to "opencode". If a user sets only KILO_SERVER_PASSWORD, internal plugin requests sent through client will authenticate with the wrong credentials and start failing with 401s.

function rewrite(request: Request, directory?: string) {
if (request.method !== "GET" && request.method !== "HEAD") return request

const value = pick(request.headers.get("x-opencode-directory"), directory)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: The GET/HEAD rewrite still looks for the old header name

createKiloClient() now sets x-kilo-directory, but rewrite() only reads and deletes x-opencode-directory. As a result, v1 SDK GET/HEAD requests never move directory into the query string, so the new query-parameter routing path is effectively broken.

let changed = false

for (const [name, key] of [
["x-opencode-directory", "directory"],
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Header rewriting still uses the pre-rename x-opencode-* keys

This client now writes x-kilo-directory and x-kilo-workspace, so this loop never finds either value. GET/HEAD requests therefore skip rewriting both directory and workspace into query params, which breaks the new workspace-aware routing path in the v2 SDK.

@kilo-code-bot
Copy link
Copy Markdown
Contributor

kilo-code-bot bot commented Apr 12, 2026

Code Review Summary

Status: 4 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 4
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
packages/opencode/src/plugin/index.ts 209 Plugin requests still fall back to opencode for basic auth while the server now defaults to kilo, causing 401s when only KILO_SERVER_PASSWORD is set.
packages/sdk/js/src/client.ts 19 The v1 SDK rewrite path still reads x-opencode-directory, so GET/HEAD requests never move directory into the query string after the header rename.
packages/sdk/js/src/v2/client.ts 23 The v2 SDK rewrite path still reads x-opencode-directory and x-opencode-workspace, so GET/HEAD requests never move directory or workspace into query params after the rename.
packages/opencode/src/skill/index.ts 155 Built-in skills now store location: "builtin", but verbose skill formatting still converts every location with pathToFileURL(...), which advertises a fake file URL for built-in skills.

Fix these issues in Kilo Cloud

Other Observations (not in diff)

No additional high-confidence issues found outside the diff.

Files Reviewed (32 files)
  • packages/opencode/src/plugin/index.ts - 1 issue
  • packages/sdk/js/src/client.ts - 1 issue
  • packages/sdk/js/src/v2/client.ts - 1 issue
  • packages/opencode/src/skill/index.ts - 1 issue
  • packages/opencode/src/server/server.ts
  • packages/opencode/src/server/router.ts
  • packages/opencode/src/server/routes/global.ts
  • packages/opencode/src/server/routes/session.ts
  • packages/opencode/src/server/routes/experimental.ts
  • packages/opencode/src/project/instance.ts
  • packages/opencode/src/config/config.ts
  • packages/app/src/app.tsx
  • packages/app/src/context/platform.tsx
  • packages/ui/src/context/marked.tsx
  • packages/opencode/test/control-plane/session-proxy-middleware.test.ts
  • packages/kilo-docs/pages/code-with-ai/platforms/cli-reference.md
  • packages/opencode/src/agent/agent.ts
  • packages/opencode/src/index.ts
  • packages/opencode/src/kilocode/commands.ts
  • packages/opencode/src/kilocode/config/config.ts
  • packages/opencode/src/kilocode/mcp-migrator.ts
  • packages/opencode/src/provider/transform.ts
  • packages/opencode/test/agent/agent.test.ts
  • packages/opencode/test/config/config.test.ts
  • packages/opencode/test/provider/transform.test.ts
  • packages/opencode/test/tool/skill.test.ts
  • packages/kilo-vscode/src/legacy-migration/sessions/lib/parts/parts-util.ts
  • packages/kilo-vscode/webview-ui/src/components/shared/PopupSelector.tsx
  • packages/kilo-docs/source-links.md
  • packages/kilo-ui/src/stories/font.stories.tsx
  • packages/kilo-ui/tests/visual-regression.spec.ts-snapshots/*.png
  • packages/opencode/src/kilocode/plugins/home-onboarding.tsx

Reviewed by gpt-5.4-20260305 · 894,037 tokens

state.skills[skill.name] = {
name: skill.name,
description: skill.description,
location: BUILTIN_LOCATION,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Built-in skills now advertise a fake filesystem location

These new entries store location: "builtin", but Skill.fmt(..., { verbose: true }) still runs pathToFileURL(skill.location) for every skill. That means the <available_skills> block shown to the agent will emit a bogus file://.../builtin URL instead of preserving the built-in marker, so built-in skills can be misidentified as real on-disk skills.

imanolmzd-svg and others added 5 commits April 12, 2026 11:19
…nd PopupSelector

Normalize boolean expression indentation in isCompletionResult to use
consistent 4-space alignment and reformat PopupSelectorProps generic
interface declaration to split the Omit type across multiple lines.
Remove outdated URLs and add new bug report issue link pointing to
anomalyco/opencode repository. Drop references to kilocode bug report
template and config precedence order docs, reducing total unique URLs
from 262 to 261.
Drop the NerdFonts story from font.stories.tsx along with the unused
MONO_NERD_FONTS import, as the exported constant is no longer available
from the @opencode-ai/ui/font module.
…arding

Relocate the Show component to wrap the box element instead of being
nested inside it, preventing the empty box from rendering when the
onboarding tip is not visible.
@johnnyeric johnnyeric merged commit 90e86a5 into main Apr 12, 2026
16 of 17 checks passed
@johnnyeric johnnyeric deleted the catrielmuller/kilo-opencode-v1.3.4 branch April 12, 2026 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.