v2.11.0
What's Changed
Added (#172, thanks @opastorello)
Net tool count: 38 → 42 (after consolidation; original PR proposed 45 before review).
storagestool — list/create/update/delete persistent or file storages for application/database/service. Single consolidated tool with action+resource pattern.scheduled_taskstool — list/create/update/delete/list_executions for application or service. Consolidated.hetznertool — list_locations, list_server_types, list_images, list_ssh_keys, create_server against the Coolify Hetzner cloud-provider endpoints. Requires a configured cloud-provider token UUID. The Coolify Hetzner routes are auth-scope-gated; the wiring is correct but the calling user needs the right token.systemtool — health, list_resources, enable_api, disable_api against the instance. Consolidates what would have been three separate tools.env_varsexpanded — addsdatabaseresource,bulk_updateaction, plusis_build_time,is_preview,data[]params on the existing actions.github_appsexpanded — addslist_repos,list_branchesactions.database_backupsexpanded — addsdelete_executionaction.ResourceListItemtype — concrete interface for/api/v1/resourcesresponses withuuid,name,type, optionalstatus. ReplacesPromise<unknown>on the client method (no-implicit-any policy compliance).
Changed (breaking, behavioural)
delete_previewmoved intoapplicationtool (#172) — was a standalone top-level tool, nowaction: 'delete_preview'on the existingapplicationtool alongside create/update/delete/get/start/stop/restart. Callers must update tool invocations:delete_preview({ application_uuid, pull_request_id })→application({ action: 'delete_preview', uuid, pull_request_id }).health,list_resources,api_controlconsolidated intosystemtool (#172) — three standalone tools merged into one. Callers must update:health()→system({ action: 'health' }),list_resources()→system({ action: 'list_resources' }),api_control({ enabled: true/false })→system({ action: 'enable_api' | 'disable_api' }).storagesupdateaction now requiresstorage_uuid(#172) — previously not validated; the PATCH would send without the required field and silently fail. Now zod-validated; missingstorage_uuidreturns a guard error before the request is built.
Internal
- Dependency bumps via dependabot (#184, #188): minor-and-patch group across two cycles — @types/node, eslint, lint-staged.
- Live-verified the new
systemtool'shealthandlist_resourcesactions against a real Coolify instance; Hetzner routes confirmed wired (401 not 404) but require an instance with a properly-scoped token.