WindowManager is the repository name. The current product surface is Odyssey Desktop: a Windows-only desktop operations console for local workflow control, desktop automation, validated data lookup, and release support.
This repository is desktop-only. Window_Modern.py is the active CustomTkinter
entrypoint, and Window_9.py is a compatibility wrapper that delegates to it.
The deleted web/API stack is not part of the normal runtime.
Odyssey Desktop brings the operator's daily Windows workflows into one local shell:
- Excel workbook discovery and COM session control.
- Workspace, shortcut, Todo, layout, MSTSC, and QuickSearch operations.
- Database map and business ontology exploration with guarded read-only query execution.
- DART, Approval, CouponCheck, private placement, and local LLM/Anomaly support surfaces.
- Preflight, runbook, package, manual, and release validation helpers.
This is not a web app, FastAPI service, React/Vite frontend, or cross-platform utility. It should not store passwords, API keys, DB credentials, personal task data, production extracts, or mailbox/workbook bodies in committed source files.
- Windows 10/11.
- Python 3.12.
- Excel installed for Excel COM workflows.
mstsc.exefor Remote Desktop workflows.- SQL Server-compatible ODBC driver only when live DB queries are needed.
- Windows keyring-compatible storage for MSTSC passwords and other secrets.
python -m pip install --upgrade pip
python -m pip install -r requirements-dev.txt
python Window_Modern.pyOpen a specific route:
python Window_Modern.py --view ops
python Window_Modern.py --view db
python Window_Modern.py --view ontology
python Window_Modern.py --view dart
python Window_Modern.py --view approval
python Window_Modern.py --view couponcheckUse an isolated profile for smoke checks or test runs:
$env:ODYSSEY_PROFILE_ROOT="$pwd\.tmp\profile"
$env:ODYSSEY_LOCAL_ROOT="$pwd\.tmp\local"
python Window_Modern.py --view settingsDefault local gate:
python -m pytest -q
$desktopFiles = @('Window_Modern.py','Window_9.py','excel_instance_manager.py','config_manager.py') + `
(Get-ChildItem desktop_services -Filter *.py | ForEach-Object { $_.FullName }) + `
(Get-ChildItem desktop_tabs -Filter *.py | ForEach-Object { $_.FullName })
python -m py_compile @desktopFiles
python scripts\preflight.py --no-screenshot-check
python scripts\build_user_manual.py --check
python scripts\manifest_consistency_check.py --no-screenshot-checkRoute startup smoke:
python scripts\source_ui_smoke.py --view ops --view db --view settings
python scripts\source_ui_smoke.py --view dart --view private --view outlook --view excel --view workspaces --hold-seconds 0.5 --ready-timeout 20 --shutdown-timeout 8 --report-json tmp\source-smoke.jsonPackage and release checks:
python scripts\release_scope_report.py --json docs\engineering\release-scope-classification.json --markdown docs\engineering\release-scope-classification.md
python scripts\release_guard.py --source-root . --pre-release-source-check
python scripts\build_package.py --no-bundled-llm
python scripts\release_integrity.py --root dist\Odyssey --check
python scripts\release_guard.py --root dist\Odyssey
python scripts\package_ui_smoke.py --via-launcher --view default --view excel --view workspaces --view dart --view private --view outlook --view db --ready-timeout 45 --shutdown-timeout 10 --report-json tmp\package-smoke.json
python scripts\team_release_smoke.py --share-root "\\server\Odyssey" --view default --view excel --view db --ready-timeout 45 --shutdown-timeout 10 --report-json tmp\team-release-smoke.json- Desktop architecture
- Operations runbook
- Engineering Kanban
- Codebase analysis roadmap
- Architecture baseline
- Route inventory
- Service inventory
- Configuration inventory
- Test matrix
Odyssey defaults to local execution and fail-closed behavior for sensitive surfaces. MSTSC passwords belong in Windows keyring-compatible storage. DB credentials are session/environment-only. DART, Approval, CouponCheck, AI SQL, and support bundle flows must preserve read-only gates, redaction, row limits, timeouts, and live-submit guards.
The operator manual is generated from config/user_guide_manifest.json:
python scripts\capture_user_guide.py --views all --generated-only
python scripts\build_user_manual.pyThe generated HTML lives at docs/user_manual/index.html.