- 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>
- 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>
Implements pkg/browser with three-layer pattern: IPC Bus -> Service -> Platform. Stateless service — delegates OpenURL and OpenFile to platform adapter. No queries or actions, tasks only. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>