Harden for production + wire cross-platform release installers - #12
Merged
Conversation
Add an optional AI Assistant panel and a new `umide_agent` engine that brings a coding agent into UMIDE with the unique ability to see and drive the embedded Android/iOS emulators in a closed loop. Engine (crates/umide_agent): - Streaming Anthropic Messages API client (claude-opus-4-8, adaptive thinking, prompt caching, vision), agentic tool loop, cancellation. Editor integration (crates/umide): - New optional PanelKind::AiAssistant with a streaming chat panel. - Read-only tools: read_file / list_dir / grep (workspace-bounded). - Approval-gated edit_file (buffer-aware, undo-preserving) and run_command, surfaced as diff / command cards. - Vision + device driving: screenshot_device, tap, swipe, type_text, press_key, read_logs for Android (adb) and iOS (simctl + idb). - BYO Anthropic key via OS keychain or ANTHROPIC_API_KEY. - Dedicated sparkle panel icon. Purely additive: the editor and embedded emulators are unchanged; mutations are approval-gated and the agent runs off the UI thread. 18 unit tests cover the wire format, provider/key resolution, the path-traversal guard, vision encoding, and edit position math.
Production-readiness pass over the AI-assistant branch: - Release pipeline: `publish` now waits on linux+windows+macos (was macOS-only, which shipped partial/failed releases); build a Windows MSI (WiX 3, version templated) and a Linux .deb (cargo-deb); align in-app updater asset names. - Cross-platform code: Linux keyring backend (secret-service); per-OS shell for run_command/device tools (was `sh -c` only); run_command wall-clock cap; LLM request/connect timeouts. - Correctness/legal: updater no longer points at lapce/lapce (would self-update users to the wrong product); Apache-2.0 attribution to Lapce + NOTICE; Makefile template/icon paths; renamed extra/linux/umide.desktop -> dev.umide.umide.desktop (fixes RPM/.deb install). - Includes the in-progress multi-provider AI engine (Anthropic + OpenAI-compat backends) and a release/parity plan (docs/RELEASE-AND-PARITY.md).
Addresses the PR #12 release-workflow dry-run failures: - umide_native: cfg-gate the macOS-only FFI extern block; add no-op C-ABI stubs for non-macOS so Windows/Linux link (emulator panel reports unavailable at runtime; embedding tracked in docs/RELEASE-AND-PARITY.md). - release.yml: build the Windows MSI by substituting the version into the wix manifest (candle -d preprocessor var did not expand). - release.yml: skip macOS signing on PR dry-runs (cert is not imported there) so packaging validates unsigned.
dev-josias
force-pushed
the
feat/ai-assistant
branch
from
June 29, 2026 16:33
9d7cb5b to
87e7a50
Compare
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.
Summary
Production-readiness + cross-platform release hardening for the AI-assistant branch. Opening this PR triggers the release-workflow dry-run (full build matrix, no publish) so we can confirm the macOS DMG, Windows MSI, and Linux
.deball build on CI before tagging a real release.Release pipeline
publishnow waits on linux + windows + macos (was macOS-only → partial/failed releases)extra/windows/wix/umide.wxs(WiX 3,-arch x64, version templated fromCargo.toml, outputUMIDE-windows.msi).debviacargo deb(new[package.metadata.deb]; bundles binaries +.desktop+ icon + metainfo)extra/linux/umide.desktop→dev.umide.umide.desktop(fixes RPM/.debinstall; matches metainfolaunchable)UMIDE-macos.dmg/umide-linux-x86_64.tar.gz/UMIDE-windows.msiAI assistant hardening
client.rs,openai.rs)run_commandwall-clock cap + per-OS shell (cmd /Con Windows, wassh -conly)secret-service) so API keys persist on LinuxCorrectness / legal
lapce/lapce(would self-update users to a different product)NOTICEUMIDE.app,umide.icns)Verification
UMIDE 0.1.2).debsteps run only on CI — this PR's dry-run is the validationSee
docs/RELEASE-AND-PARITY.mdfor the full status and the path to true three-OS parity — including the hard constraint that the iOS Simulator is macOS-only and that Android-emulator embedding on Windows/Linux is the remaining multi-week graphics task.🤖 Generated with Claude Code