Skip to content

windows bug fix#22

Merged
xuelin-cell merged 59 commits intomainfrom
feat/demo-electron-packaging-fixes
Mar 29, 2026
Merged

windows bug fix#22
xuelin-cell merged 59 commits intomainfrom
feat/demo-electron-packaging-fixes

Conversation

@xuelin-cell
Copy link
Copy Markdown
Collaborator

No description provided.

xuelin-cell and others added 30 commits March 20, 2026 18:58
Use the backend uv environment for PyInstaller, enforce the correct packaging working directory, and add China mirror envs for Electron/electron-builder downloads to avoid startup and packaging failures.

Made-with: Cursor
…electron-packaging-fixes

Made-with: Cursor

# Conflicts:
#	libs/openagent_demo/backend/openagent_api/agent_manager.py
#	libs/openagent_demo/backend/openagent_api/routes/setup.py
#	libs/openagent_demo/electron/package.json
#	libs/openagent_demo/frontend/src/components/SettingsModal.tsx
Resolve duplicate const declarations introduced during conflict resolution so the sandbox settings panel compiles cleanly and preserves feat/agent-loop behavior.

Made-with: Cursor
Admin feedback:
- Revert harness/environment.py: restore ValueError on empty datetime;
  graceful fallback was rejected — failure must surface, not be hidden
- Revert langchain/middleware.py: remove mid-conversation working-directory
  refresh; cwd is intentionally immutable after conversation start
- Restore sandbox/vm/setup/ to pre-PR state; full package list must
  not be overwritten by this branch
- Add sandbox/vm/setup_lite/ as a lite variant for demo/Electron
  deployments: trimmed APT/npm/pip baselines, bundled-browser detection,
  China-mirror support
- Add vm_setup_lite_dir() to paths.py; point Lima and WSL provisioners
  in routes/setup.py at setup_lite/ (fix Lima tar to derive folder name
  dynamically instead of hardcoding "setup")
- Fix .gitignore: correct stale openagent_demo reference, ignore .vite/
  cache, WSL prebuilt tars, and reports/ directory

CI fixes:
- Fix ruff format: collapse multi-line f-string shell commands in
  vm_win.py; add missing blank line in test_vm.py
- Fix ruff lint in _wsl.py: SYSTEMROOT capitalisation (SIM112),
  Path.cwd() over os.getcwd() (PTH109), noqa for assert (S101) and
  magic number (PLR2004); noqa PLR0912 on mount() in vm_win.py
- Fix mypy method-assign errors in test_wsl.py
- Fix test_mount_idempotent_self_heals_missing_live_mount: patch
  _win_path_to_wsl so the test runs on Linux CI where tmp_path is
  not a Windows drive-letter path
Resolve conflicts between main's per-conversation streaming refactor
(streamingByConversation) and this branch's isRequestPending feature:
- store.ts: keep both StreamingEntry and RestartRequiredModalState
  interfaces; merge isRequestPending into per-conversation state model
- App.tsx: combine REQUEST_START/END dispatches with per-conversation
  streaming guards and conversationId-scoped payloads
- ChatInput.tsx: merge isPreparingRequest guard with per-conversation
  streaming check
- routes/setup.py: keep both WSL/Lima platform dispatch and limactl
  entitlement check
…tetime

The environment.py revert restored the ValueError behavior for empty
datetime, but the PR's tests still expected the removed graceful
fallback. Update test_empty_datetime and test_pads_missing_parts to
assert ValueError is raised.
…exposure

- OnboardingWizard.tsx: exclude API keys (apiKey, sumApiKey, searchKey,
  fetchKey, e2bKey) from localStorage draft persistence; only non-sensitive
  form state (provider IDs, model IDs, display names, URLs) is saved
- routes/setup.py: sanitize _run_wrapper exception handler to emit a
  generic error message to the SSE stream instead of raw str(exc) which
  could expose stack traces or internal paths; full details are still
  logged server-side via logger.exception()
…on chain

_check_wsl_prerequisites() now returns the validated wsl.exe path so
WslVM.__init__ can use it directly, removing the redundant second call to
_resolve_wsl_exe() and the assert that would be silently stripped under
python -O in packaged builds.

In agent_manager, the catch-all cowork setup error now raises from exc
instead of from None so unexpected failures carry a full traceback for
debugging. Known operational states (distro not found, VM not running)
correctly keep from None since their rewrites are intentional.
xuelin-cell and others added 29 commits March 28, 2026 08:04
@xuelin-cell xuelin-cell merged commit 4e6fb4f into main Mar 29, 2026
16 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.

2 participants