Skip to content

fix(desktop): tray icon, readable logs, autostart checkbox & server landing page#26

Merged
krazyjakee merged 4 commits into
masterfrom
claude/amazing-khayyam-73716c
Jun 8, 2026
Merged

fix(desktop): tray icon, readable logs, autostart checkbox & server landing page#26
krazyjakee merged 4 commits into
masterfrom
claude/amazing-khayyam-73716c

Conversation

@krazyjakee

Copy link
Copy Markdown
Contributor

Summary

Fixes four desktop/server papercuts reported on Linux Mint:

  • Missing tray icon — the tray builder set no icon, so the system tray showed a blank box. It now uses the bundled app icon (tray.icon(app.default_window_icon()...)).
  • Unreadable logs — the "strange ASCII characters" were ANSI colour escape codes captured into the log file. The server now only emits colour when stderr is a real terminal: tracing uses with_ansi(use_color()) and the banner/status lines route through a status_line() helper that strips escapes when piped (the sidecar case). The desktop's own file logger gets with_ansi(false).
  • "Start on login" had no checkmark and didn't change state — replaced the relabeling MenuItem with a real CheckMenuItem, initialised from the actual autostart state. Toggling updates the checkbox to the real enabled/disabled state and logs failures (previously swallowed).
  • "Open in browser" → blank 404 — there was no / route. Added src/routes/landing.rs serving a styled landing page with live status, stats (users/spaces/channels/messages), server endpoints, a connect-a-client guide, and links to the client download + docs at daccord.gg.

Notes for reviewers

  • User-facing links point at https://www.daccord.gg (home/client) and https://www.daccord.gg/docs.html#deploying-a-server (docs); the desktop bundle homepage was updated to match. Confirmed canonical with the user.
  • src/routes/invite_page.rs still hardcodes the older https://daccord.cc for its "Get daccord" button — left out of scope here, but a candidate follow-up if daccord.gg is now canonical.
  • The desktop crate could not be fully built end-to-end in the dev checkout because the bundled sidecar binaries (binaries/accordserver-*, binaries/livekit-server-*) aren't present; both crates were type-checked (server via cargo check, desktop via cargo check with throwaway placeholder binaries that were then removed).

Test plan

  • Build the desktop app and confirm the tray shows the Accord icon (Linux Mint).
  • Confirm the captured server log no longer contains ANSI escape sequences.
  • Toggle "Start on login" and confirm the checkmark reflects state and persists across restarts.
  • Open the server URL in a browser and confirm the landing page renders with correct stats and working links.

🤖 Generated with Claude Code

krazyjakee and others added 4 commits June 8, 2026 22:15
…nding page

- Set the tray icon from the bundled app icon so it no longer shows as a
  blank box in the Linux system tray.
- Strip ANSI colour codes from server output when stderr is not a terminal
  (the sidecar case), and disable ANSI in the desktop file logger, so the
  captured logs are readable instead of full of escape sequences.
- Replace the relabeling "Enable/Disable start on login" item with a real
  CheckMenuItem whose checkmark reflects the actual autostart state and
  updates on toggle; surface previously-swallowed enable/disable errors.
- Add a GET / landing page (replacing the bare 404) with live status,
  stats, server endpoints, a connect-a-client guide, and links to the
  client download and docs at daccord.gg.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The invite and SEO snapshot pages still linked to the old daccord.cc
domain; align them with the canonical daccord.gg site used elsewhere.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
CI lint (cargo fmt --check) flagged the new banner/status_line calls and
the desktop build_menu signature. No behaviour change.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add tauri-plugin-updater so the desktop app checks GitHub Releases in the
background, stages signed bundles, and applies them on next restart. Surface
update phase in the tray menu label and on the server landing page via a
shared update_status.json polled through a new /update-status endpoint.

The release workflow now signs installers and assembles a latest.json
manifest from every platform's signed artifacts.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@krazyjakee krazyjakee merged commit 964a6b1 into master Jun 8, 2026
3 checks passed
@krazyjakee krazyjakee deleted the claude/amazing-khayyam-73716c branch June 8, 2026 22:27
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