ui finish
This commit is contained in:
parent
5c4f60f2b7
commit
31f25b54ab
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,5 +2,6 @@
|
|||||||
/dist/
|
/dist/
|
||||||
*.tmp
|
*.tmp
|
||||||
output
|
output
|
||||||
|
build/
|
||||||
frontend/dist/
|
frontend/dist/
|
||||||
frontend/node_modules/
|
frontend/node_modules/
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@opencode-ai/plugin": "1.4.3"
|
"@opencode-ai/plugin": "1.4.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
53
.trellis/tasks/04-18-04-18-finish-windows-desktop/task.json
Normal file
53
.trellis/tasks/04-18-04-18-finish-windows-desktop/task.json
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"id": "04-18-finish-windows-desktop",
|
||||||
|
"name": "04-18-finish-windows-desktop",
|
||||||
|
"title": "Finish Windows desktop integration",
|
||||||
|
"description": "",
|
||||||
|
"status": "planning",
|
||||||
|
"dev_type": null,
|
||||||
|
"scope": null,
|
||||||
|
"package": null,
|
||||||
|
"priority": "P2",
|
||||||
|
"creator": "OpenCode",
|
||||||
|
"assignee": "OpenCode",
|
||||||
|
"createdAt": "2026-04-18",
|
||||||
|
"completedAt": null,
|
||||||
|
"branch": null,
|
||||||
|
"base_branch": "master",
|
||||||
|
"worktree_path": null,
|
||||||
|
"current_phase": 0,
|
||||||
|
"next_action": [
|
||||||
|
{
|
||||||
|
"phase": 1,
|
||||||
|
"action": "brainstorm"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"phase": 2,
|
||||||
|
"action": "research"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"phase": 3,
|
||||||
|
"action": "implement"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"phase": 4,
|
||||||
|
"action": "check"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"phase": 5,
|
||||||
|
"action": "update-spec"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"phase": 6,
|
||||||
|
"action": "record-session"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"commit": null,
|
||||||
|
"pr_url": null,
|
||||||
|
"subtasks": [],
|
||||||
|
"children": [],
|
||||||
|
"parent": null,
|
||||||
|
"relatedFiles": [],
|
||||||
|
"notes": "",
|
||||||
|
"meta": {}
|
||||||
|
}
|
||||||
@ -12,7 +12,7 @@
|
|||||||
"assignee": "OpenCode",
|
"assignee": "OpenCode",
|
||||||
"createdAt": "2026-04-18",
|
"createdAt": "2026-04-18",
|
||||||
"completedAt": "2026-04-18",
|
"completedAt": "2026-04-18",
|
||||||
"branch": null,
|
"branch": "master",
|
||||||
"base_branch": "master",
|
"base_branch": "master",
|
||||||
"worktree_path": null,
|
"worktree_path": null,
|
||||||
"current_phase": 6,
|
"current_phase": 6,
|
||||||
@ -42,7 +42,7 @@
|
|||||||
"action": "record-session"
|
"action": "record-session"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"commit": null,
|
"commit": "5c4f60f",
|
||||||
"pr_url": null,
|
"pr_url": null,
|
||||||
"subtasks": [],
|
"subtasks": [],
|
||||||
"children": [],
|
"children": [],
|
||||||
|
|||||||
40
.trellis/workspace/OpenCode/index.md
Normal file
40
.trellis/workspace/OpenCode/index.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# Workspace Index - OpenCode
|
||||||
|
|
||||||
|
> Journal tracking for AI development sessions.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Current Status
|
||||||
|
|
||||||
|
<!-- @@@auto:current-status -->
|
||||||
|
- **Active File**: `journal-1.md`
|
||||||
|
- **Total Sessions**: 0
|
||||||
|
- **Last Active**: -
|
||||||
|
<!-- @@@/auto:current-status -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Active Documents
|
||||||
|
|
||||||
|
<!-- @@@auto:active-documents -->
|
||||||
|
| File | Lines | Status |
|
||||||
|
|------|-------|--------|
|
||||||
|
| `journal-1.md` | ~0 | Active |
|
||||||
|
<!-- @@@/auto:active-documents -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session History
|
||||||
|
|
||||||
|
<!-- @@@auto:session-history -->
|
||||||
|
| # | Date | Title | Commits | Branch |
|
||||||
|
|---|------|-------|---------|--------|
|
||||||
|
<!-- @@@/auto:session-history -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Sessions are appended to journal files
|
||||||
|
- New journal file created when current exceeds 2000 lines
|
||||||
|
- Use `add_session.py` to record sessions
|
||||||
70
.trellis/workspace/OpenCode/journal-1.md
Normal file
70
.trellis/workspace/OpenCode/journal-1.md
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user