- 24 tests covering all X-Resource routes - Mock Gotify server for message/application CRUD - Error cases: nil gotify, invalid JSON, missing fields, 429, 500 - Fix readError() to handle io.ReadAll failure - GotifyClient direct tests for all 7 methods
- Add internal handler support to ServiceAdapter (Handler field) - Dispatcher routes to internal handler when set (no reverse proxy) - GotifyClient: full CRUD (send/list/delete messages, CRUD applications) - Refactor notification handler: route by X-Resource header, not body format - Register notification as ServiceAdapter with auth required - Resources: send-email, send-message, list-messages, delete-message, delete-all-messages, list-applications, create-application, delete-application - Update examples: sendmsg-email.sh, gotify-crud.sh - Env vars: GOTIFY_URL, GOTIFY_APP_TOKEN, GOTIFY_CLIENT_TOKEN