opencode-provider-switch/.trellis/workspace/OpenCode/journal-1.md
apale7 f3b211f745 feat(desktop): refresh localized control panel
Rebuild the Wails desktop shell into a localized tabbed control panel so provider, alias, sync, and settings workflows are easier to manage in one place. Extend desktop preferences with theme and language, document the desktop build flow, and keep the browser fallback shell aligned with the same frontend.
2026-04-19 10:07:46 +08:00

3.2 KiB

Journal - OpenCode (Part 1)

AI development session journal Started: 2026-04-18


Session 1: Finish Windows desktop integrations

Date: 2026-04-18 Task: Finish Windows desktop integrations Branch: master

Summary

Completed the Windows-focused desktop integration pass for ocswitch desktop by fixing the Wails bridge path, adding native tray controls, wiring desktop notifications, implementing Windows launch-at-login, and fixing cross-platform file locking that previously blocked Windows builds.

Main Changes

Area Description
Wails bridge Corrected frontend bridge detection and access from window.go.main.App to window.go.desktop.App.
Tray Added Wails-only native tray integration via github.com/getlantern/systray with open/hide/start/stop/quit actions and proxy status display.
Notifications Hooked desktop preference state to Wails runtime notifications for proxy start/stop, sync apply, and notification enablement.
Launch at login Added Windows Startup-folder .cmd launcher generation while preserving existing Linux XDG autostart flow.
Windows compatibility Replaced direct syscall.Flock usage with platform-specific file locking helpers and aligned config tests with cross-platform lock helpers.
Task docs Added implementation PRD for .trellis/tasks/04-18-windows-desktop-integrations/.

Updated Files:

  • .trellis/tasks/04-18-windows-desktop-integrations/prd.md
  • .trellis/tasks/04-18-windows-desktop-integrations/task.json
  • .trellis/workspace/OpenCode/journal-1.md
  • internal/desktop/app.go
  • internal/desktop/tray.go
  • internal/desktop/tray_wails.go
  • internal/desktop/notify.go
  • internal/desktop/autostart.go
  • internal/desktop/autostart_test.go
  • internal/desktop/runtime_wails.go
  • internal/desktop/runtime_fallback.go
  • internal/fileutil/fileutil.go
  • internal/fileutil/lock_unix.go
  • internal/fileutil/lock_windows.go
  • internal/config/config_test.go
  • internal/config/file_lock_testhelper_unix_test.go
  • internal/config/file_lock_testhelper_windows_test.go
  • frontend/index.html
  • frontend/src/api.ts
  • frontend/src/env.d.ts
  • frontend/tsconfig.json

Git Commits

(No commits - implementation left in worktree)

Testing

  • [OK] npm run build (in frontend/)
  • [OK] go test ./internal/desktop
  • [OK] go test -tags desktop_wails ./internal/desktop
  • [OK] go test ./internal/config ./internal/opencode

Status

[OK] Completed

Next Steps

  • If needed, run a full desktop binary build path (wails build or Windows packaging) on a machine with final packaging prerequisites.

Session 1: Desktop GUI i18n and UX refresh

Date: 2026-04-19 Task: Desktop GUI i18n and UX refresh Branch: master

Summary

Added desktop theme/language preferences across Go and frontend, rebuilt the app into a tabbed localized shell, refreshed CSS theming/layout, updated Wails desktop prefs models, and verified with npm run build plus go test ./internal/app ./internal/desktop.

Main Changes

(Add details)

Git Commits

(No commits - planning session)

Testing

  • [OK] (Add test results)

Status

[OK] Completed

Next Steps

  • None - task complete