Skip to content

feat(tray): serve TytusOS from tray#11

Merged
rschumann merged 2 commits intomainfrom
feat/tray-tytusos-cutover
May 2, 2026
Merged

feat(tray): serve TytusOS from tray#11
rschumann merged 2 commits intomainfrom
feat/tray-tytusos-cutover

Conversation

@rschumann
Copy link
Copy Markdown
Contributor

Summary

  • serve embedded TytusOS from the tray web server root (/)
  • keep legacy Tower hidden behind TYTUS_ENABLE_LEGACY_TOWER=1; /tower redirects to / by default
  • route tray menu actions to canonical TytusOS /#/... deep links
  • vendor the current TytusOS dist into tray/web/os/ with a build-time asset manifest and drift-check script
  • document fresh-install UI support by platform and include tytus-tray in macOS release archives

Validation

  • scripts/check-tytus-os-dist.sh
  • cargo test -p tytus-tray (107 passed)
  • cargo check -p tytus-tray
  • cargo check --workspace

Notes

  • Legacy Tower bytes are not deleted in this PR; deletion remains gated to the 2026-05-13+ cutover.
  • Linux/Windows desktop tray/browser parity is intentionally documented as future packaging work; CLI/MCP support remains supported.
  • Existing unrelated local music work was not included in this commit.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 2, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
❌ Deployment failed
View logs
tytus-cli 3fe5a8f May 02 2026, 02:51 PM

@rschumann
Copy link
Copy Markdown
Contributor Author

Lope check on Cloudflare failure: claude + opencode consensus = do not block tray cutover; document external check and proceed after code review. Verified locally: main Cloudflare check is green, but PR does not change wrangler.jsonc or web/** (the Cloudflare static asset root is ./web). The PR does add vendored TytusOS assets under tray/web/os/**, which are Rust tray assets, not Worker deploy assets. Local gates passed: scripts/check-tytus-os-dist.sh, cargo test -p tytus-tray (107), cargo check --workspace.

@rschumann
Copy link
Copy Markdown
Contributor Author

Extra verification: local npx --yes wrangler@latest deploy --dry-run --config wrangler.jsonc succeeds and reads only 7 files from ./web. So the failing Cloudflare GitHub check is not caused by the vendored tray/web/os/** bundle. Treating it as external/integration noise unless dashboard logs prove otherwise.

@rschumann
Copy link
Copy Markdown
Contributor Author

PR update after Lope code-only review (claude + opencode):

Applied both pre-merge hardening recommendations:

  • Wired scripts/check-tytus-os-dist.sh into .github/workflows/release.yml so release packaging fails if the vendored TytusOS bundle is stale.
  • Removed the dead open_tower* wrapper chain and legacy fragment normalizer; tray entry points now use open_os* only.

Also tightened the cutover path:

  • /assets/tower.css and /assets/tower.js are only served when TYTUS_ENABLE_LEGACY_TOWER=1 is set.
  • Unknown /api/* routes now return JSON 404 for every method instead of falling through to SPA/plain fallback.
  • build.rs skips symlinked assets and generates safer include_bytes! paths.
  • Install instructions now clarify that the localhost TytusOS URL is available after tytus tray install.

Validation on the exact staged commit in a clean detached worktree:

  • scripts/check-tytus-os-dist.sh ✅ (source tree absent in clean worktree, monorepo freshness check intentionally skipped)
  • cargo test -p tytus-tray ✅ 106 passed
  • cargo check --workspace
  • npx --yes wrangler@latest deploy --dry-run --config wrangler.jsonc ✅ (reads only web/, not tray/web/os)

Note: the external Cloudflare Workers check is still failing, but this PR does not modify web/** or wrangler.jsonc; the local Wrangler dry run confirms the Worker upload path remains isolated from tray packaging.

@rschumann rschumann merged commit 6fd7862 into main May 2, 2026
1 check failed
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.

1 participant