Repository navigation
feat: WSLC SDK backend — persist, restart/inspect/exec, volumes, prefs - #4
Merged
Merged
Conversation
Use the windows subsystem so MSI launches do not spawn an empty console. Overlay the titlebar settings control outside the drag hitbox and occlude it so Windows HTCAPTION no longer swallows clicks. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
GPUI Stateful styling has no inset_y_0 helper; use top_0/bottom_0. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Hide child CLI consoles with CREATE_NO_WINDOW, apply the dark theme once before the first window, and relocalize UI without re-running wslc commands when switching language. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Drive Live mode through the official wslc crate / wslcsdk.dll on a dedicated worker thread; drop all CLI spawning. When the SDK is missing, keep Demo data only (no CLI fallback). Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Fetch Microsoft.WSL.Containers during packaging and install the win-x64 native DLL beside the exe so LoadLibrary succeeds without PATH. CI runs scripts/fetch-wslc-sdk.ps1 before cargo wix. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Drop bundled Microsoft.WSL.Containers from the installer. At startup, prefer wslcsdk.dll from WSL install dirs / PATH so the DLL matches the host runtime. Surface SdkNotFound / missing components / outdated SDK in the status bar instead of a generic Demo hint. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Probe wslc/wsl version on startup, resolve Microsoft.WSL.Containers from NuGet, and cache the native DLL under LocalAppData. Re-check when the host version changes or a newer matching package appears. MSI stays DLL-free; container ops still use the SDK only. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Session::start requires an empty storage root. SDK downloads were written under %LOCALAPPDATA%\WSLcDesktop\sdk, which made the shared WSLcDesktop folder non-empty and blocked LIVE boot. Use ...\session. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Install/update wslcsdk.dll behind a modal with logs and progress; the app stays locked until Live connects. Retry reinstalls the SDK; no demo fallback. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Attach to the wslc CLI default session via Session::open_default so images match `wslc image ls`. Remove the Run tab; pull and create containers use blocking modals with ports/volumes/command/auto-remove. Container rows show status/ports/mounts and open an inspect+runtime logs dialog. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
SDK cannot reliably share the reserved CLI default session. Own session under LocalAppData again; remove the vendored open_default patch. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Split the monolithic app.rs into src/app/* by concern (shell, containers, images, volumes, settings, SDK setup, refresh/state, parsing, poll/widgets). Keep AppView as the single GPUI root in mod.rs with Render wiring. Move port/bind-mount parsing to parsing.rs (no GPUI). Deduplicate modal overlay chrome and mpsc drain loops. Extract wslc public types to types.rs. Update README project structure. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Reset create/pull fields on open and dismiss. Run start/stop/create/logs off the UI thread with a busy overlay so Stop no longer freezes the window. Do not replace the image ENTRYPOINT with a sleep loop; status prefers inspect. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
- Default Overview with SDK/app/session/resource summary - Container logs collect runtime files, drop inspect JSON - Volumes buttons use .small() like other pages - Refresh Product.ico / Product.png Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
- Catalog JSON under WSLcDesktop; reopen on boot; no session terminate - Temp git dep on wslc-rs fork with OpenContainer - Confirm dialog before removing containers/images/volumes Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
Add container Restart/Inspect/Exec, volume GiB picker + named mounts on create, and session CPU/memory prefs with Overview stats. Vendor wslc-rs (OpenContainer/Logs/named_volume) as path dep. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
timeroute
marked this pull request as ready for review
October 10, 2026 09:41
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Settings scrolls; Images/Volumes match Containers (toolbar create, per-row actions). Extract shared list/row/modal helpers. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ec471d5176
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Fall back to stale NuGet index / active DLL when offline; do not cache failed Sdk::load; use unique auto container names. Co-authored-by: 绿岸公式 <chinesejar@gmail.com>
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
Windows-only WSLc Desktop on the official WSL Containers SDK (
wslcpath-vendored from timeroute/wslc-rs with OpenContainer / Logs / named_volume). Live-only dedicatedwslc-desktopsession; no Demo mode.Done in this PR
%LOCALAPPDATA%\WSLcDesktop\;OpenContaineron boot; session not terminated on app exit; remove requires confirmvol:/path); per-row RemoveSdk::loadnot cached; unique auto container namesAlso
vendor/wslc-rs(path dep) until crates.io catches upTest plan
cargo test(9 tests) on Linux CI/agent