Replies: 6 comments 5 replies
-
|
Thanks for opening this ? this is exactly the right place to coordinate before implementation. I was the author of PR #1979 (the POC), which was closed with the request to route through here first. I've been working on getting Odysseus running on Windows ARM64 (Surface Pro X/11), and the desktop wrapper was motivated by that experience. A few observations for the proposal: 1. Port numberThe existing 2. Dependency/bootstrap ? an answer to the open questionAuto-installing dependencies from a desktop wrapper is a sharp edge: it touches system Python, may fail on unusual architectures (ARM64 has no pre-built grpcio wheels), and creates support burden around "why did the installer break my environment?" I would suggest show clear instructions when deps are missing, rather than auto-installing. This keeps the wrapper thin (window management + server lifecycle) and avoids bootstrap complexity. A standalone setup script the user runs once is fine, but baking install logic into the Tauri binary seems like a maintenance risk. 3. Windows ARM64 is a real targetThe desktop package should account for non-x64 Windows:
ARM64 awareness matters for CI/scripts even if the initial release targets x64. 4. Process management on WindowsThe proposal says "shuts down only the processes it started" ? on Windows this needs:
5. File layout cross-platform considerationNesting under My answers to the Open Questions
Happy to help with implementation once direction is settled ? items 2 (dep/runtime checks) and 4 (thin Tauri shell) align closely with the POC work already under |
Beta Was this translation helpful? Give feedback.
-
|
Some of us where talking about a dekstop app written in a framework that allows u to bundle a web app for all 3 major OS. #605 What you did here is nice. Let's all discuss over there too. We could prob use this |
Beta Was this translation helpful? Give feedback.
-
|
Re: @JosephScherreik's point about #605 and a cross-platform framework ? Tauri is already cross-platform (same Rust codebase targets Windows, macOS, Linux), so it matches the "bundle for all 3 major OS" goal well. The current POC at feat/desktop-poc targets Windows first but the architecture naturally extends: the server manager and health-check polling are platform-agnostic; only process spawning and window config need platform-specific handling. If anyone wants to pick up the macOS/Linux side I am happy to coordinate on isolating the platform bits. |
Beta Was this translation helpful? Give feedback.
-
|
Re: data storage paths -- good call. The
In Rust it is just Electron can do this too via The repo-relative data dir ( |
Beta Was this translation helpful? Give feedback.
-
|
Agreed on all points. The split is clean: Python owns business logic and the existing For Tauri vs Electron equivalents -- Tauri's Rust ecosystem covers most of what Electron does via the |
Beta Was this translation helpful? Give feedback.
-
|
Yes -- Tauri uses Rust's std::fs and std::io for all file access, plus crates like |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Opening this because #603 was closed for scope, with the request to propose packaging architecture first.
Summary
This proposes an optional Windows desktop packaging architecture for Odysseus.
The desktop package would be a thin wrapper around the existing local app. It would not replace the browser, Docker, or native Python workflows, and it would not change core app behavior.
Architecture
The Windows desktop package would have four responsibilities:
localhost:7000, then open it in a native desktop window.The wrapper should stay separate from the core app. Core routes, auth/session behavior, model serving, storage, and frontend app logic should remain owned by the existing Odysseus code.
Proposed File Layout
One possible layout:
The exact layout can change, but the important boundary is that desktop packaging files stay grouped under a dedicated packaging directory instead of being mixed through core app code.
Startup Flow
localhost:7000is ready, the window loads the app directly.Packaging Boundary
The desktop package may own:
The desktop package should not own:
Security / Maintenance Notes
The wrapper should:
Open Questions
Follow-up Split
If this architecture is accepted, implementation could be split into smaller PRs:
Beta Was this translation helpful? Give feedback.
All reactions