You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I searched open issues and this has not already been proposed.
I searched discussions and this is not already being debated there.
This is a concrete, actionable proposal, not a vague "it would be nice if..." request.
Area
Testing / CI
Problem or Motivation
Odysseus needs a clear fresh-install smoke-test contract.
The roadmap calls for fresh-install smoke coverage across Docker, native Linux, macOS, Windows, and WSL, but there is no single tracker that defines what "fresh install works" means for each supported environment.
Some older install-related reports contain useful evidence, but are too broad, stale, duplicated, or mixed with provider-specific setup problems.
Current CI has syntax checks and advisory pytest, but does not prove that clean installs can start and reach a usable baseline state across supported environments.
Without a shared smoke contract, contributors can keep fixing individual startup issues without knowing what baseline behavior the project expects.
This makes fresh-install reliability hard to review, hard to reproduce, and hard to improve safely.
Proposed Solution
Use this issue as the parent tracker for fresh-install and smoke-test coverage.
The goal is to define small, repeatable smoke contracts for each supported environment, then add focused child issues and PRs for each slice.
Initial target environments:
Environment
Goal
Status
Docker Compose
Clean clone can start, UI/API become reachable, optional services degrade clearly
Needs child issue / validation
Native Linux
Clean clone can install dependencies and start a usable server
Needs child issue
macOS
Clean clone can install dependencies and start a usable server
Needs child issue
Windows native
Launcher/smoke checks verify prerequisites and app availability
Define the canonical smoke contract and accepted smoke modes.
Add Docker Compose clean-clone smoke validation.
Add native Linux clean-clone smoke validation.
Add macOS clean-clone smoke validation.
Refine the Windows smoke script so its scope is explicit.
Add WSL / Git Bash launcher validation.
Add optional-service degraded-startup validation.
Working rules:
One platform or smoke contract per child issue.
One behavior slice per PR.
No broad launcher rewrites.
No provider-specific setup requirements in the baseline smoke contract.
No GPU benchmarking or GPU-specific provider tuning.
No full browser E2E framework until the basic smoke contract is agreed.
No claim of "fresh-install coverage" unless the test actually starts from a clean or clearly documented state.
Success criteria:
Each supported environment has a documented smoke command or manual validation procedure.
Each smoke check states whether it installs, launches, probes, or only validates prerequisites.
Docker clean-start behavior is validated separately from optional provider configuration.
Windows native behavior is validated separately from WSL / Git Bash.
Optional services can fail or be unavailable without blocking the baseline app startup, unless they are explicitly required by that environment.
Future install bugs can be routed under a clear parent instead of becoming scattered one-off reports.
Alternatives Considered
Adding each install-related issue directly to the Stabilization milestone was rejected because it would make the milestone noisy and harder to reason about.
Using #2789 as the parent was rejected because it only covers Windows native smoke checks.
Using #3433 as the parent was rejected because it is a specific Docker/FastEmbed defect, not a cross-platform smoke contract.
Using older Docker/Ollama threads as the parent was rejected because those discussions mix baseline install behavior with optional provider setup, host Ollama behavior, GPU runtime issues, and user-support details.
Prerequisites
Area
Testing / CI
Problem or Motivation
Odysseus needs a clear fresh-install smoke-test contract.
The roadmap calls for fresh-install smoke coverage across Docker, native Linux, macOS, Windows, and WSL, but there is no single tracker that defines what "fresh install works" means for each supported environment.
Current state is fragmented:
Without a shared smoke contract, contributors can keep fixing individual startup issues without knowing what baseline behavior the project expects.
This makes fresh-install reliability hard to review, hard to reproduce, and hard to improve safely.
Proposed Solution
Use this issue as the parent tracker for fresh-install and smoke-test coverage.
The goal is to define small, repeatable smoke contracts for each supported environment, then add focused child issues and PRs for each slice.
Initial target environments:
Minimum smoke contract:
/api/versionor another agreed health endpoint;Initial child / linked issues:
Prior-art / evidence, not direct children yet:
Potential future child issues:
Working rules:
Success criteria:
Alternatives Considered
Adding each install-related issue directly to the Stabilization milestone was rejected because it would make the milestone noisy and harder to reason about.
Using #2789 as the parent was rejected because it only covers Windows native smoke checks.
Using #3433 as the parent was rejected because it is a specific Docker/FastEmbed defect, not a cross-platform smoke contract.
Using older Docker/Ollama threads as the parent was rejected because those discussions mix baseline install behavior with optional provider setup, host Ollama behavior, GPU runtime issues, and user-support details.
Prior Art / Related Issues
Directly related:
Prior art / evidence:
Explicitly not treated as direct children at this time:
python3but Windows only installspython#2341 - duplicate Windows python/python3 issue.Are you willing to implement this?
Yes. I can help organize the tracker, validate existing candidate issues, and contribute small smoke-test slices where appropriate.
Current Next Step
Agree on the minimum smoke contract first.
After that, the first practical slices should be: