Commit graph

27 commits

Author SHA1 Message Date
Virgil
dc53b04d2a refactor(ax): make window bounds and state updates more declarative
Some checks failed
Security Scan / security (push) Failing after 30s
Test / test (push) Successful in 1m24s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 08:30:58 +00:00
Virgil
5ce1d67f70 refactor(ax): add atomic window bounds task
Some checks failed
Security Scan / security (push) Failing after 28s
Test / test (push) Successful in 1m21s
2026-03-31 08:23:59 +00:00
Virgil
bd4dfa8027 refactor(ax): remove legacy snap aliases
Some checks failed
Security Scan / security (push) Failing after 29s
Test / test (push) Successful in 1m22s
2026-03-31 08:18:58 +00:00
Virgil
761b3b0784 refactor(ax): clarify window adapter naming and docs
Some checks failed
Security Scan / security (push) Failing after 29s
Test / test (push) Successful in 1m23s
2026-03-31 08:14:14 +00:00
Virgil
02b7fa9230 refactor(ax): dedupe window close events
Some checks failed
Security Scan / security (push) Failing after 29s
Test / test (push) Successful in 1m20s
2026-03-31 07:54:57 +00:00
Virgil
97c9d34f4f refactor(ax): tighten window creation semantics
Some checks failed
Security Scan / security (push) Failing after 29s
Test / test (push) Successful in 1m19s
2026-03-31 07:49:58 +00:00
Virgil
78a2a33ed2 refactor(ax): clarify default and named window creation
Some checks failed
Security Scan / security (push) Failing after 28s
Test / test (push) Successful in 1m19s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 07:43:28 +00:00
Virgil
450d04411a refactor(ax): remove legacy compatibility aliases
Some checks failed
Security Scan / security (push) Failing after 14s
Test / test (push) Successful in 1m5s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 07:28:11 +00:00
Virgil
f854b65720 refactor(ax): align WebSocket and window naming
Some checks failed
Security Scan / security (push) Failing after 30s
Test / test (push) Successful in 1m16s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 07:23:22 +00:00
Virgil
7deb91ac0b refactor(ax): standardise display and window contracts
Some checks failed
Security Scan / security (push) Failing after 31s
Test / test (push) Successful in 1m14s
2026-03-31 06:22:04 +00:00
Virgil
552b0751b9 refactor(ax): route saved window state via ipc
Some checks failed
Security Scan / security (push) Failing after 29s
Test / test (push) Successful in 1m16s
2026-03-31 06:10:54 +00:00
Virgil
f0a1f9027b refactor(ax): replace window option chains with declarative specs
Some checks failed
Security Scan / security (push) Failing after 28s
Test / test (push) Successful in 1m4s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 06:05:36 +00:00
Virgil
089bdacadb refactor(ax): align GUI surface with AX principles
Some checks failed
Security Scan / security (push) Failing after 29s
Test / test (push) Successful in 2m21s
Apply declarative window specs across display, MCP, and window service paths; route layout/window controls through IPC tasks; and add a local Wails stub so the workspace builds cleanly here.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 05:56:36 +00:00
Virgil
02ea237a1d refactor(ax): use primary screen size for layouts 2026-03-31 05:38:00 +00:00
Virgil
35f8f5ec51 refactor(ax): align GUI APIs with AX principles 2026-03-31 05:31:00 +00:00
Snider
f884d698b2 fix(display): correct GetWindowTitle and add WS input validation
Some checks failed
Security Scan / security (push) Failing after 9s
Test / test (push) Has been cancelled
GetWindowTitle was returning info.Name (the window's identifier) instead
of the actual title. Added Title() to the PlatformWindow interface and
Title field to WindowInfo so the real title flows through queries.

Added wsRequire() helper and input validation for all webview:* WS
message cases — window name is required for every webview action, and
selectors/URLs are validated where they'd cause errors if empty.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 16:25:29 +00:00
Snider
23bf0302d3 feat(window): add file drop support to PlatformWindow interface
Adds OnFileDrop(handler func(paths []string, targetID string)) to PlatformWindow.
trackWindow() now wires file drop callbacks to ActionFilesDropped broadcasts.
Updates both exported MockWindow and unexported mockWindow with the new method.
Wails adapter maps WindowFilesDropped event with DroppedFiles and DropTargetDetails.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:36:55 +00:00
Snider
92333ff2db feat(display): wire go-config for config file persistence
Some checks failed
Security Scan / security (push) Failing after 8s
Test / test (push) Failing after 1m25s
Replace the in-memory loadConfig() stub with real ~/.core/gui/config.yaml
loading via go-config. handleConfigTask now persists changes to disk via
cfg.Set() + cfg.Commit(). Sub-service applyConfig() stubs fleshed out:
window reads default dimensions (TODO: Manager API), systray stores icon
path, menu reads show_dev_tools flag with accessor.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-13 13:54:28 +00:00
Snider
0893456a9e feat(display): add HandleIPCEvents IPC->WS bridge
Display HandleIPCEvents converts sub-service actions to WS events.
ActionServiceStartup triggers buildMenu/setupTray after all services start.
Export mock platforms from each sub-package for integration tests.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-13 13:32:16 +00:00
Snider
a59028f112 feat(window): add IPC layer — Service, Register factory, message types
Window package is now a full core.Service with typed IPC messages.
Register(Platform) factory closure captures platform adapter for WithService.
OnStartup queries config and registers query/task handlers.
Platform events converted to IPC actions via trackWindow.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-13 13:25:34 +00:00
Snider
4814f960fb refactor(display): compose window/systray/menu sub-packages into orchestrator
Service now delegates to window.Manager, systray.Manager, and menu.Manager
instead of directly using Wails types. WSEventManager accepts EventSource
interface instead of calling application.Get() directly.
AttachWindowListeners now accepts window.PlatformWindow.

Removes migrated files: window.go, window_state.go, layout.go, tray.go, menu.go.
Tests rewritten against mock platform implementations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:27:19 +00:00
Snider
7c066ba3d8 feat(window): add Wails v3 adapter
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:12:05 +00:00
Snider
060bbe7c0b feat(window): add tiling, snapping, stacking, and workflow layouts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:09:31 +00:00
Snider
ff44b8c654 feat(window): add LayoutManager with JSON persistence
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:08:17 +00:00
Snider
3a4a2fc508 feat(window): add StateManager with JSON persistence
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:07:28 +00:00
Snider
ad3c63f093 feat(window): add Window struct, options, and Manager with CRUD
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:05:37 +00:00
Snider
2383bcd743 feat(window): add Platform and PlatformWindow interfaces
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:04:38 +00:00