Skip to content

Fix/cowork prereq skip installed python#264

Merged
Saul-Gomez-J merged 9 commits into
mainfrom
fix/cowork-prereq-skip-installed-python
Apr 26, 2026
Merged

Fix/cowork prereq skip installed python#264
Saul-Gomez-J merged 9 commits into
mainfrom
fix/cowork-prereq-skip-installed-python

Conversation

@Saul-Gomez-J
Copy link
Copy Markdown
Contributor

No description provided.

Saul-Gomez-J and others added 9 commits April 14, 2026 16:55
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>
@kilo-code-bot
Copy link
Copy Markdown
Contributor

kilo-code-bot Bot commented Apr 22, 2026

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';
@Saul-Gomez-J Saul-Gomez-J merged commit d7fe7b5 into main Apr 26, 2026
4 of 5 checks passed
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.

1 participant