Skip to content

Cloud animation for Cloud Agent subagent - #1113

Open
roman-commits-code wants to merge 1 commit into
masterfrom
remote-run-cloud-animation
Open

Cloud animation for Cloud Agent subagent#1113
roman-commits-code wants to merge 1 commit into
masterfrom
remote-run-cloud-animation

Conversation

@roman-commits-code

@roman-commits-code roman-commits-code commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Linked issue

Closes #0

What does this PR do?

Adds a unique inline animation for the Cloud Agent (Remote-Runner) subagent type, replacing the generic braille spinner it shared with all other agents. The Cloud Agent now shows a cloud glyph () with a loading arc (◜◝◞◟) tracing around it, completing in a full circle before restarting — visually distinguishing remote execution from local agents at a glance.

The animation works across all three TUI rendering surfaces:

  • Agent widget (persistent panel above the editor)
  • Inline tool-call block (foreground agent progress)
  • get_subagent_result icon (queued/running status)

Other agent types are unaffected — they continue to use the standard braille spinner.

Checklist

  • I have read CONTRIBUTING.md and agree to the CLA
  • This PR links to an open issue above
  • Tests pass locally (pnpm run test)
  • Lint passes (pnpm run check)
  • Documentation updated if behavior changed

Co-Authored-By: Kimchi <noreply@kimchi.dev>
@readme-ai-writer

readme-ai-writer Bot commented Aug 31, 2026

Copy link
Copy Markdown

📚 No documentation changes were needed for this PR.

@kimchi-review

kimchi-review Bot commented Aug 31, 2026

Copy link
Copy Markdown

Kimchi Code Review

Property Value
Commit 32ad059
Author @roman-commits-code
Files changed 0
Review status Completed
Comments 2 (2 warning)
Duration 31s

Summary

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

🧪 Tests: no — No test files were added or modified in the diff. The change is mostly visual (animation frames and widget rendering), but there are no unit tests for getAgentSpinnerFrames, frame indexing, or the optional subagentType propagation paths.

📝 Found 2 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
  • @getkimchi review — re-trigger a full review on the latest commit
  • @getkimchi summary — regenerate the PR summary
  • @getkimchi 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

@kimchi-review kimchi-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

🧪 Tests: no — No test files were added or modified in the diff. The change is mostly visual (animation frames and widget rendering), but there are no unit tests for getAgentSpinnerFrames, frame indexing, or the optional subagentType propagation paths.

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

@@ -1320,7 +1324,8 @@ ${AGENT_TOOL_GUIDELINES}`,
}

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

getAgentSpinnerFrames(details.subagentType) is called with a value that may be undefined, because GetSubagentResultDetails.subagentType is declared as optional (subagentType?: string) while getAgentSpinnerFrames requires a non-optional string. Although the function happens to fall back to SPINNER when the type does not match, relying on this is brittle and may break under stricter TypeScript settings or future refactors. It is also inconsistent with getSubagentResultIcon, which explicitly guards the call with subagentType ? getAgentSpinnerFrames(subagentType) : SPINNER.

💡 Suggestion: Change getAgentSpinnerFrames in src/extensions/agents/ui/agent-widget.ts to accept type: string | undefined (returning SPINNER for undefined), or guard the call here: const frames = details.subagentType ? getAgentSpinnerFrames(details.subagentType) : SPINNER.

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.

this comment makes sense, it would be better to handle this possible null case in getAgentSpinnerFrames itself.

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.

3 participants