feat/wails-submodule #8

Open
Snider wants to merge 0 commits from feat/wails-submodule into dev
Owner
No description provided.
feat(wails): pin Wails v3 source as submodule at alpha 74
Some checks are pending
Security Scan / security (push) Waiting to run
82f427dc12
internal/wails3/ is a submodule of github.com/wailsapp/wails pinned to
v3.0.0-alpha.74. This is the reference source for the stub bridge — the
exact API surface we target.

Upgrade flow:
  cd internal/wails3 && git checkout v3.0.0-alpha.XX
  diff stubs vs reference
  update stubs to match
  commit submodule bump + stub changes together

The replace directive in go.mod still points to ./stubs/wails — our code
never imports Wails directly. The submodule is the reference, not the
build dependency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat(stubs): expand Wails v3 stub bridge — 16 files, 316 functions
Some checks failed
Security Scan / security (push) Failing after 24s
fc94b4d2a5
New stub files:
- browser_manager.go, browser_window.go (95 methods, full Window interface)
- clipboard.go, context_menu.go, dialog.go (33 dialog methods)
- environment.go, events.go, keybinding.go
- menuitem.go, screen.go, services.go
- webview_window_options.go (574 lines, all platform types)
- window.go (Window interface ~50 methods)
- window_manager_expanded.go (Get, GetByID)
- application_options.go (Options, platform options, iOS/Android)

App struct expanded with all manager fields.
WebviewWindow and BrowserWindow both satisfy Window interface.
GetAll() returns []Window (was []any).

All stubs compile clean: GOWORK=off go build ./...

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
fix(mcp): remove duplicate coreerr imports in 3 tool files
Some checks failed
Security Scan / security (push) Failing after 25s
ee34ed5b26
Pre-existing build errors in tools_clipboard.go, tools_contextmenu.go,
tools_environment.go — each had coreerr imported twice. Removed duplicates.

All 16 packages build and test clean.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Platform.GetCurrent() for active screen query
- ScreenPlacement with Apply() for window positioning rules
- Rect geometry: Origin, Corner, InsideCorner, IsEmpty, Contains, RectSize, Intersect
- Point type, Alignment/OffsetReference constants
- 18 new tests with Good/Bad/Ugly coverage

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Platform.Process(accelerator) for programmatic trigger
- TaskProcess IPC task with ActionTriggered broadcast
- ErrorNotRegistered sentinel for remove/process on unknown bindings
- 5 new tests: process good/bad/ugly, remove sentinel, concurrent adds

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat(dialog): expand with typed tasks, file options, 3 new MCP tools
Some checks failed
Security Scan / security (push) Failing after 25s
31f6e0b67e
- TaskOpenFileWithOptions, TaskSaveFileWithOptions with extended options
- TaskInfo, TaskQuestion, TaskWarning, TaskError convenience tasks
- OpenFileOptions: CanChooseDirectories, CanChooseFiles, ShowHiddenFiles
- 3 new MCP tools: dialog_info, dialog_warning, dialog_error
- 29 new tests with Good/Bad/Ugly coverage

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Platform interface wrapping EventManager (Emit, On, Off, OnMultiple, Reset)
- TaskEmit, TaskOn, TaskOff, QueryListeners IPC message types
- ActionEventFired broadcast for agent consumption
- Service with listener tracking and shutdown cleanup
- 17 tests with Good/Bad/Ugly coverage

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat(window): zoom, content, bounds, fullscreen, print + new events pkg
Some checks failed
Security Scan / security (push) Failing after 26s
de6c6c3405
Window package:
- 15 new PlatformWindow methods (zoom, content, bounds, states, print, flash)
- 16 new IPC types (tasks + queries for all new capabilities)
- ZoomIn/ZoomOut step 0.1, clamped to minimum 0.1
- SetURL, SetHTML, ExecJS for webview content control
- 36 new tests with Good/Bad/Ugly coverage

Events package (NEW — 17th package):
- Custom event system bridged to Core IPC
- Emit, On, Off, OnMultiple, Reset via Platform interface
- ActionEventFired broadcast for agent consumption
- 17 tests

All 17 packages build and test clean.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4 new MCP tools for the events package:
- event_emit — fire custom events with optional data
- event_on — register event listener via IPC
- event_off — remove listeners by name
- event_list — query all registered listeners

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat(environment,contextmenu): expand with new queries and lifecycle
Some checks failed
Security Scan / security (push) Failing after 26s
bb5122580a
Environment:
- QueryFocusFollowsMouse IPC query
- 9 new tests (accent colour, file manager, focus follows mouse)

Context Menu:
- TaskUpdate (remove-then-add semantics)
- TaskDestroy (remove + release)
- QueryGetAll
- OnShutdown cleanup
- 12 new tests

All 17 packages build and test clean.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat: notification perms/categories, dock progress/bounce, webview zoom/print
Some checks failed
Security Scan / security (push) Failing after 28s
84ec201a05
Notification: RevokePermission, RegisterCategory, action broadcasts
Dock: SetProgressBar, Bounce/StopBounce, ActionProgressChanged
Webview: QueryZoom, TaskSetZoom, TaskSetURL, TaskPrint (with PDF export)
MCP: 4 new event tools (emit, on, off, list)
Environment: HasFocusFollowsMouse query
ContextMenu: Update, Destroy, GetAll, OnShutdown cleanup

Core upgraded to v0.8.0-alpha.1 (added alongside existing v0.3.3 —
full module path migration pending).

All 17 packages build and test clean.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
refactor: migrate entire gui to Core v0.8.0 API
Some checks failed
Security Scan / security (push) Failing after 25s
18a455b460
- Import paths: forge.lthn.ai/core/go → dappco.re/go/core
- Import paths: forge.lthn.ai/core/go-log → dappco.re/go/core/log
- Import paths: forge.lthn.ai/core/go-io → dappco.re/go/core/io
- RegisterTask → c.Action("name", handler) across all 15 services
- QueryHandler signature: (any, bool, error) → core.Result
- PERFORM(task) → Action.Run(ctx, opts)
- QUERY returns single core.Result (not 3 values)
- All 17 packages build and test clean on v0.8.0-alpha.1

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
feat(display): wire events, dock, notification actions to WebSocket bridge
Some checks failed
Security Scan / security (push) Failing after 29s
22668f7faa
- Import events package in display orchestrator
- Bridge events.ActionEventFired → EventCustomEvent WebSocket broadcast
- Bridge dock.ActionProgressChanged → EventDockProgress
- Bridge dock.ActionBounceStarted → EventDockBounce
- Bridge notification.ActionNotificationActionTriggered → EventNotificationAction
- Bridge notification.ActionNotificationDismissed → EventNotificationDismiss
- 5 new EventType constants

All 17 packages build and test clean.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
refactor: remove banned imports from display, window/layout, window/state
Some checks failed
Security Scan / security (push) Failing after 28s
f1f7fcfab9
- display/events.go: encoding/json → core.JSONMarshal/JSONUnmarshal
- display/display.go: os, filepath → core.Env, core.JoinPath
- window/layout.go: encoding/json, os, filepath → core primitives
- window/state.go: encoding/json, os, filepath → core primitives

All 17 packages build and test clean.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
refactor: remove banned imports from test files
Some checks failed
Security Scan / security (push) Failing after 27s
9bd0e7b025
- window/persistence_test.go: path/filepath → core.JoinPath
- display/display_test.go: path/filepath → core.JoinPath/PathDir
- browser/service_test.go: errors → core.NewError
- notification/service_test.go: errors → core.NewError

Zero banned imports in ALL gui files — production AND test.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Some checks failed
Security Scan / security (push) Failing after 27s
This pull request has changes conflicting with the target branch.
  • go.mod
  • pkg/clipboard/service.go
  • pkg/contextmenu/messages.go
  • pkg/contextmenu/service.go
  • pkg/dialog/messages.go
  • pkg/dialog/service.go
  • pkg/display/display.go
  • pkg/display/display_test.go
  • pkg/display/events.go
  • pkg/dock/messages.go
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/wails-submodule:feat/wails-submodule
git switch feat/wails-submodule

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch dev
git merge --no-ff feat/wails-submodule
git switch feat/wails-submodule
git rebase dev
git switch dev
git merge --ff-only feat/wails-submodule
git switch feat/wails-submodule
git rebase dev
git switch dev
git merge --no-ff feat/wails-submodule
git switch dev
git merge --squash feat/wails-submodule
git switch dev
git merge --ff-only feat/wails-submodule
git switch dev
git merge feat/wails-submodule
git push origin dev
Sign in to join this conversation.
No description provided.