Fix/cowork prereq skip installed python#264
Merged
Merged
Conversation
Introduces image validation and resizing for MCP tool outputs with per-provider limits, plus a shared tool output sanitizer to normalize results across legacy and mcp-use services. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Introduce 'background' visual status for tool calls running as async tasks, with a new Activity icon and shared deriveToolCallVisualStatus helper. - Strip ANSI escape sequences in sanitizeBinaryOutput so shell tool output renders cleanly. - Rebuild web preview tabs from running tasks when push events are missed. - Add unit tests for shell sanitization and tool-call status derivation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Restores the gate removed in the WIP commit so the BreathingLogo only appears next to the running todo item, not duplicated below the list. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
feat(local): optional API key for private local/OpenAI-compatible endpoints
Ensures Cowork mode always has a POSIX shell and Python available. On
the first Cowork-mode stream of the process, ensureCoworkPrerequisites
runs once and provisions:
- Windows: Git Bash on PATH → Levante-managed PortableGit 2.47.0.2
downloaded from git-for-windows and extracted to
~/levante/runtimes/gitbash/<version>/.
- All platforms: Python 3.13 via python-build-standalone (needed by
skill-creator and Python-based MCP servers).
Progress is broadcast to renderer via the new
levante/cowork/prerequisites-status IPC channel and surfaced as toasts
by the new CoworkPrerequisitesStatus component. Provisioning failure
is non-fatal — the bash tool falls back to the existing
auto-detection in getShellConfig.
The resolved shell path is passed down through
getCodingTools → BashTool → executeCommand/BackgroundTaskManager via a
new shellOverride option, avoiding re-detection on every command.
Also widens analytics runtime typing to the new RuntimeType union
(node|python|gitbash) and pins MCPDeepLinkModal's local type to
node|python since gitbash is not user-selectable there.
Adds unit tests for getShellConfig override behavior and
ensureCoworkPrerequisites fallback order.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Revamps the CWD selector in the create/edit project modal:
- Replaces the "use custom folder" toggle with a two-option radio
group: "New folder" (auto-generated under ~/levante/projects) vs
"Existing folder" (user-selected path).
- Adds a drop zone in "Existing folder" mode that accepts a folder
dragged from the OS file browser. The resolved path is obtained
via webUtils.getPathForFile (exposed as window.levante.fs.getPath\
ForFile) because File.path is deprecated in Electron 32+.
- Validates the dropped item is actually a directory through a new
levante/cowork/validate-directory IPC handler before accepting it.
- Surfaces localized errors when the drop target is not a folder or
the path cannot be read, and disables Save until a path is chosen
in existing-folder mode.
- Adds en/es strings for the new UI (cwd_mode_new,
cwd_mode_existing, cwd_drop_zone, cwd_drop_zone_hint,
cwd_drop_error_*, cwd_clear).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Emit the 'ensuring-python' progress event only when the Levante-managed Python runtime is missing and needs to be provisioned. Previously the event fired on every Cowork entry (first per process), causing a brief toast flash on each app restart even though Python was already cached. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Contributor
|
Kilo Code Review could not run — your account is out of credits. Add credits or switch to a free model to enable reviews on this change. |
Comment on lines
+9
to
+17
| import { | ||
| DEFAULT_NODE_VERSION, | ||
| DEFAULT_PYTHON_VERSION, | ||
| LEVANTE_DIR_NAME, | ||
| RUNTIME_DIR_NAME, | ||
| NODE_DIST_BASE_URL, | ||
| PORTABLE_GIT_ARCHIVE_X64, | ||
| PORTABLE_GIT_URL_X64, | ||
| } from './constants'; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.