Commit graph

57 commits

Author SHA1 Message Date
Snider
0d6b77ae4c Add MCP core route resolution tool
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-15 19:02:31 +01:00
Snider
c9562e5e59 Add window opacity support
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-15 18:41:31 +01:00
Snider
f9f8ee2e92 Harden GUI trust boundaries 2026-04-15 17:38:58 +01:00
Snider
866a4814d8 refine gui docs and local names for AX 2026-04-15 14:33:56 +01:00
Snider
0123bda0b0 Improve MCP tool descriptions for agents 2026-04-15 14:28:56 +01:00
Snider
286354a150 Implement dialog prompt flow 2026-04-15 14:26:13 +01:00
Snider
cd6a4c8d16 Add browser file MCP tool 2026-04-15 14:16:35 +01:00
Snider
2a1d785294 Align GUI MCP surface with RFC aliases 2026-04-15 14:14:32 +01:00
Snider
2a9968354b Implement remaining GUI integration tools
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-15 13:58:56 +01:00
Snider
2c59364250 Implement chat, preload shims, and smart layouts
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-15 13:39:13 +01:00
Snider
be0e66663e Merge feat/wails-submodule: Wails v3 submodule + Core v0.8.0 migration
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-15 12:41:55 +01:00
Snider
47c9a46a9c Align MCP bridge with GUI RFC tools
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-15 11:29:13 +01:00
Snider
f1d1294abd Implement GUI RFC integrations and stabilize specs
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-15 10:28:38 +01:00
Claude
30a8e7edd4 Add missing MCP chat and menu features 2026-04-14 15:13:45 +01:00
Claude
4bc4db544f Implement RFC chat gaps in display and MCP 2026-04-14 15:04:23 +01:00
Claude
8d3c0fb6d2
feat(gui): implement chat-first UI and display primitives
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
- Replace provider dashboard with full chat UI (history, model selection, image attachments)
- Add chat settings/history/image queue/tool-call metadata persistence
- Add core://settings and core://store route handling in display package
- Add progressive assistant rendering, collapsible thinking/tool-call blocks
- Add markdown/code rendering with copy actions and lightbox image preview
- Add app mode detection (pkg/display/mode.go)
- Add chat backend coverage (pkg/display/chat_test.go)
- Add chat.service.ts frontend service
- AX sweep across pkg/mcp tools and pkg/window/webview/systray/notification

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-14 14:36:01 +01:00
Claude
58308d74cc
Merge remote-tracking branch 'origin/dev-homelab-20260414-1418' into dev
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-14 14:20:11 +01:00
Claude
479537d12c
feat(gui): theme override, clipboard images, notifications, tray, layout helpers
Pass from codex implementing RFC spec gaps: theme_set IPC + state,
clipboard image read/write + MCP exposure, interactive notifications
and clearing, real tray tooltip/label/menu/message tasks, layout
heuristics (layout_suggest, layout_beside_editor, screen_find_space,
window_arrange_pair), dialog_message, focus_set, screen_work_area.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-14 14:18:05 +01:00
Snider
62ec735c10 refactor: AX compliance sweep — replace banned stdlib imports with core primitives
Some checks failed
Security Scan / security (push) Has been cancelled
Test / test (push) Has been cancelled
Replaced fmt, strings, sort, os, io, sync, encoding/json, path/filepath,
errors, log, reflect with core.Sprintf, core.E, core.Contains, core.Trim,
core.Split, core.Join, core.JoinPath, slices.Sort, c.Fs(), c.Lock(),
core.JSONMarshal, core.ReadAll and other CoreGO v0.8.0 primitives.

Framework boundary exceptions preserved where stdlib types are required
by external interfaces (Gin, net/http, CGo, Wails, bubbletea).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-13 09:32:01 +01:00
Virgil
6b3879fb9a refactor(ax): make webview registration declarative
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-02 20:47:33 +00:00
Virgil
29dc0d9877 refactor(gui): make theme override declarative
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-02 20:22:47 +00:00
Virgil
0d2ae6c299 Refactor MCP layout queries
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-02 19:24:59 +00:00
Virgil
cad4e212c4 feat(gui): add missing MCP aliases and webview errors
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
2026-04-02 19:09:10 +00:00
Virgil
4f7236a8bb feat(gui): add compatibility aliases for spec names
Some checks failed
Test / test (push) Waiting to run
Security Scan / security (push) Failing after 14m34s
Co-authored-by: Virgil <virgil@lethean.io>
2026-04-02 14:54:14 +00:00
Virgil
4f4a4eb8e4 feat(window): add window opacity support
Some checks failed
Test / test (push) Waiting to run
Security Scan / security (push) Failing after 35s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 14:42:03 +00:00
Virgil
a07fa49c20 feat(gui): add missing window mutators and MCP tools
Some checks failed
Security Scan / security (push) Failing after 35s
Test / test (push) Successful in 1m34s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 14:03:29 +00:00
Virgil
57fb567a68 feat(gui): add webview element screenshots
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Successful in 1m36s
2026-04-02 13:55:56 +00:00
Virgil
573eb5216a feat(systray): wire tray mutations and submenus
Some checks failed
Security Scan / security (push) Failing after 29s
Test / test (push) Successful in 1m22s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 13:39:36 +00:00
Virgil
a0cad39fbb feat(gui): add webview diagnostics and tray fallback
Some checks failed
Security Scan / security (push) Failing after 22s
Test / test (push) Successful in 1m25s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 13:29:46 +00:00
Virgil
3413b64f6c Expose layout stack and workflow actions 2026-04-02 13:23:17 +00:00
Virgil
5653bfcc8d feat(mcp): implement missing GUI features
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 13:03:55 +00:00
Claude
a9b795f223
feat: Wails v3 stub bridge + feature expansion + display bridge + MCP events
Some checks failed
Security Scan / security (push) Failing after 29s
Test / test (push) Successful in 2m9s
Stubs (15 files, 479 exports):
- All managers: Dialog, Event, Browser, Clipboard, ContextMenu, Environment, Screen, KeyBinding
- Window interface (~50 methods), BrowserWindow, platform options (iOS/Android)
- MenuItem (42 roles), WebviewWindowOptions (full platform types)
- Wails v3 submodule pinned at alpha 74

New events package (17th package):
- Custom event system bridged to Core IPC
- TaskEmit, TaskOn, TaskOff, QueryListeners, ActionEventFired

Feature expansions:
- Window: zoom, content (SetURL/SetHTML/ExecJS), bounds, print, flash
- Screen: QueryCurrent, ScreenPlacement, Rect geometry
- Dialog: typed tasks, file options, Info/Question/Warning/Error
- Keybinding: TaskProcess, ErrorNotRegistered
- Notification: RevokePermission, RegisterCategory, action broadcasts
- Dock: SetProgressBar, Bounce/StopBounce
- Environment: HasFocusFollowsMouse
- ContextMenu: QueryGetAll, TaskUpdate, TaskDestroy

Display bridge: 5 new event types wired to WebSocket
MCP: 4 event tools (emit, on, off, list)

17 packages build and test clean (1 flaky test ordering issue in window).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 17:42:09 +01:00
Claude
f1f7fcfab9
refactor: remove banned imports from display, window/layout, window/state
Some checks failed
Security Scan / security (push) Failing after 28s
- 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>
2026-03-31 16:37:47 +01:00
Claude
18a455b460
refactor: migrate entire gui to Core v0.8.0 API
Some checks failed
Security Scan / security (push) Failing after 25s
- 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>
2026-03-31 16:14:19 +01:00
Claude
484f7138ee
feat(mcp): add event_emit, event_on, event_off, event_list tools
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>
2026-03-31 15:03:30 +01:00
Claude
31f6e0b67e
feat(dialog): expand with typed tasks, file options, 3 new MCP tools
Some checks failed
Security Scan / security (push) Failing after 25s
- 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>
2026-03-31 14:55:55 +01:00
Claude
ee34ed5b26
fix(mcp): remove duplicate coreerr imports in 3 tool files
Some checks failed
Security Scan / security (push) Failing after 25s
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>
2026-03-31 14:51:06 +01:00
Virgil
3bcca95b5e refactor(ax): align GUI code with declarative AX principles
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 13:19:46 +00:00
Snider
13a493f57d refactor(ax): AX compliance sweep — comments, error handling, test names
Some checks failed
Security Scan / security (push) Failing after 26s
Test / test (push) Failing after 56s
- Fix window/service.go: replace 3 fmt.Errorf calls with coreerr.E() (removes implicit fmt dependency)
- Add usage-example comments to all bare Register() functions across 10 packages
- Remove redundant prose comments (Options/Service/Register/OnStartup/HandleIPCEvents boilerplate)
- Add Result-type comments to message types in contextmenu, keybinding, notification packages
- Fix test naming to TestFilename_Function_{Good,Bad,Ugly} pattern in display_test, window_test, persistence_test, service_screen_test
- Convert New() and CreateWindowOptions doc comments to usage-example style

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 12:18:41 +01:00
2001e7ed87 Merge pull request '[agent/codex:gpt-5.4-mini] Update the code against the AX design principles in ~/spec/r...' (#4) from main into dev
Some checks failed
Security Scan / security (push) Failing after 35s
Test / test (push) Failing after 41s
2026-03-31 05:57:04 +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
Snider
0e624bfb7b refactor(ax): merge mini AX pass
Some checks failed
Security Scan / security (push) Failing after 30s
Test / test (push) Failing after 2m10s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 06:32:06 +01:00
Virgil
35f8f5ec51 refactor(ax): align GUI APIs with AX principles 2026-03-31 05:31:00 +00:00
Virgil
da22bedbc6 refactor(ax): align public APIs with AX principles
Some checks failed
Security Scan / security (push) Failing after 42s
Test / test (push) Failing after 1m31s
2026-03-31 05:13:43 +00:00
Snider
b559562dd9 fix(dx): use coreerr.E() and go-io, update CLAUDE.md, add tests
Some checks failed
Security Scan / security (pull_request) Failing after 28s
Test / test (pull_request) Failing after 1m59s
- Replace 90+ fmt.Errorf calls with coreerr.E() from go-log across
  display, window, systray, keybinding, contextmenu, and mcp packages
- Replace os.ReadFile/WriteFile/MkdirAll with coreio.Local in
  window/layout.go and window/state.go
- Update CLAUDE.md: fix key files table for new package structure,
  document error handling and file I/O conventions, add missing deps
- Add 37 tests for window package (task handlers, persistence,
  tiling modes, snap positions, workflow layouts)
- Window coverage: 47.1% → 69.8%

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 09:05:35 +00:00
Snider
ec492658c2 fix(mcp): add safe type assertions and complete stub handlers
Some checks failed
Security Scan / security (push) Failing after 9s
Test / test (push) Failing after 1m40s
Replace all 32 unchecked type assertions (result.(Type)) with safe
ok-pattern checks that return descriptive errors on type mismatch.

Complete stub handlers in tools_window.go (restore, title, visibility,
fullscreen) and tools_layout.go (save, restore, list, delete, get,
tile, snap) using proper IPC message types instead of workarounds.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 16:28:15 +00:00
Snider
19b949b8f3 test(mcp): add subsystem tests with IPC round-trip verification
Fix cyclic type panic in contextmenu tools by using map[string]any
for ContextMenuDef which contains self-referencing MenuItemDef.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 16:10:06 +00:00
Snider
a89e66c832 feat(mcp): add browser, contextmenu, keybinding, dock, lifecycle tools (11)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 16:08:34 +00:00
Snider
69a57a6946 feat(mcp): add notification, tray, environment tools (9)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 16:08:29 +00:00
Snider
985d3c737c feat(mcp): add screen, clipboard, dialog tools (14)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 16:08:26 +00:00