Skip to content
This repository was archived by the owner on May 15, 2026. It is now read-only.

LLM-1387: only update harness from now on#57

Merged
Zilv1nas merged 1 commit into
mainfrom
update-only-harness
May 6, 2026
Merged

LLM-1387: only update harness from now on#57
Zilv1nas merged 1 commit into
mainfrom
update-only-harness

Conversation

@Zilv1nas
Copy link
Copy Markdown
Contributor

@Zilv1nas Zilv1nas commented May 6, 2026


Kimchi Summary

What changed

Removes CLI self-update functionality; the update and harness commands now only manage the coding harness (kimchi-dev). The install script now redirects users to install the harness directly from the kimchi-dev repository.

Why

The Kimchi CLI is being deprecated in favor of the coding harness. This change simplifies the toolchain by unifying on a single binary (kimchi) and directing users to install the harness directly.

Key changes

  • cmd/update.go: Removed runCLIUpdate and updateResult; runUpdate now only orchestrates harness updates and returns *update.WorkflowResult
  • cmd/harness.go: Added check for result.Updated to prompt users to re-run the command after a harness update
  • internal/tui/steps/update.go: Removed CLI-related update states (updateStateChoice, updateStateApplying, etc.) and simplified to harness-only flow; removed cli and cliResult fields from UpdateStep
  • internal/tui/steps/welcome.go: Removed concurrent CLI update check (reduced WaitGroup count)
  • internal/update/github_client.go: Changed harness binary name from "kimchi-code" to "kimchi"
  • scripts/install.sh: Replaced CLI installation logic with redirection to https://github.com/castai/kimchi-dev/releases/latest/download/install.sh

Impact

  • Breaking: kimchi update no longer updates the CLI binary; it only updates the harness
  • Binary rename: The harness binary is now installed as kimchi instead of kimchi-code
  • Install script: Running the install script now installs the harness from the kimchi-dev repository instead of the CLI from the kimchi repository

@kimchi-review
Copy link
Copy Markdown

kimchi-review Bot commented May 6, 2026

Kimchi Code Review

Property Value
Commit 0a7b398
Author @Zilv1nas
Files changed 0
Review status Completed
Comments 3 (1 info, 2 warning)
Duration 71s

Summary

📊 Review Score: 82/100 (overall code quality — 0 lowest, 100 highest)
⏱️ Estimated effort to review: 2/5 (1 = trivial, 5 = very complex)

🧪 Tests: no — No tests were added or modified alongside these changes. The PR modifies core update and launch logic significantly, increasing risk without test coverage to verify the new harness-only flow behaves correctly on network failures or edge cases.

📝 Found 3 issue(s). See inline comments for details.

What to expect

Kimchi will analyze the changes in this pull request and post:

  • A summary of the overall changes
  • Inline comments on specific lines with findings categorized by issue type

The review typically completes within a few minutes. This comment will be updated once the review is ready.

Interact with Kimchi
  • @kimchi review — re-trigger a full review on the latest commit
  • @kimchi summary — regenerate the PR summary
  • @kimchi ignore — skip this PR (no review will be posted)
  • Reply to any inline comment to ask follow-up questions or request clarification
Configuration

Reviews are configured by your organization admin.
Review instructions, excluded directories, and severity thresholds can be adjusted per repository in the Kimchi dashboard.


Powered by Kimchi — AI-powered code review by CAST AI

Copy link
Copy Markdown

@kimchi-review kimchi-review Bot left a comment

Choose a reason for hiding this comment

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

📊 Review Score: 82/100 (overall code quality — 0 lowest, 100 highest)
⏱️ Estimated effort to review: 2/5 (1 = trivial, 5 = very complex)

🧪 Tests: no — No tests were added or modified alongside these changes. The PR modifies core update and launch logic significantly, increasing risk without test coverage to verify the new harness-only flow behaves correctly on network failures or edge cases.

📝 Found 3 issue(s). See inline comments for details.

Comment thread cmd/harness.go
// Reuse the update command logic for CLI + harness updates.
// Uses cache (skipCache=false) since harness launches happen frequently.
if _, err := runUpdate(cmd, false, false, false); err != nil {
result, err := runUpdate(cmd, false, false, false)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️⚠️ Error Handling

runUpdate now propagates errors from runHarnessUpdate as fatal, whereas previously runHarnessUpdate logged warnings and continued. If the update check fails (e.g., network error, GitHub API unavailable), the entire kimchi harness command fails and prevents launching the existing harness, degrading user experience.

💡 Suggestion: Change the error handling to log a warning and continue instead of returning: if err != nil { fmt.Fprintf(cmd.ErrOrStderr(), "Warning: harness update check failed: %v\n", err) } else if result != nil && result.Updated { ... }

Comment thread cmd/update.go
@@ -153,10 +107,11 @@ func runHarnessUpdate(cmd *cobra.Command, ctx context.Context, force, dryRun, sk
result, err := wf.Run(ctx)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️🔧 Maintainability

The comment Failures are reported as warnings and never block the CLI update is now stale and misleading. The function currently returns errors to the caller, which blocks execution (e.g., in cmd/harness.go). This contradicts the documented behavior.

💡 Suggestion: Update the comment to reflect the new behavior: Failures are returned as errors to the caller, which should handle them appropriately

Comment thread cmd/update.go
@@ -78,58 +73,17 @@ func NewUpdateCommand() *cobra.Command {
return cmd
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ℹ️🔧 Maintainability

The printUpdateResult helper is called with result without checking for nil. While wf.Run() likely never returns nil for success, a defensive nil check would prevent potential panics if the contract changes.

💡 Suggestion: Add a nil check before calling printUpdateResult: if result != nil { printUpdateResult(...) }

@Zilv1nas Zilv1nas force-pushed the update-only-harness branch from 0a7b398 to 3851799 Compare May 6, 2026 06:38
@Zilv1nas Zilv1nas force-pushed the update-only-harness branch from 3851799 to edd7628 Compare May 6, 2026 12:41
@Zilv1nas Zilv1nas merged commit b86e59f into main May 6, 2026
2 checks passed
@Zilv1nas Zilv1nas deleted the update-only-harness branch May 6, 2026 12:51
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants