feat: v0.5.0 — welle B Teil 1 (registry tools: search, tags, pull)
Three new SYNO.Docker.Registry tools, reverse-engineered from a live DSM API capture (n4s4 reference disagrees on param names and methods). - search_registry (#5): SYNO.Docker.Registry/search v1 with JSON-encoded q, plus offset/limit/page_size. Renders stars, downloads, official flag, truncated description, and total match count. Read-only. - list_image_tags: SYNO.Docker.Registry/tags v1 with JSON-encoded repo (not name — DSM live capture diverges from n4s4). Response shape is unusual: tag list comes back as the envelope's data field directly. Output capped by limit (default 50); accepts both list and dict response shapes defensively. Read-only. - pull_image (#3): SYNO.Docker.Registry/pull_start v1 with both repository and tag JSON-encoded. Async pull — no pull_status method confirmed on this DSM, so completion is detected by polling SYNO.Docker.Image/list (2–10 s backoff, 240 s budget under the Claude Desktop ~4 min tool-call ceiling). Timeout returns a non-fatal "still running" hint. Short-circuits when the image is already present locally. Confirmation gate required. Tool count: 31 → 34. CLAUDE.md confirmation list updated. New DSM quirks documented for pull_start (no pull_status) and tags (repo param name, top-level data array). Closes #3 Closes #5 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+34
-1
@@ -2,7 +2,40 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [0.4.3] - 2026-05-18
|
||||
## [0.5.0] - 2026-05-18
|
||||
|
||||
### Added
|
||||
|
||||
**Welle B Teil 1 — Registry tools (#3, #5).** Three new `SYNO.Docker.Registry`
|
||||
tools, reverse-engineered from a live DSM API capture (the n4s4 reference
|
||||
disagrees on parameter names and methods; the live capture wins):
|
||||
|
||||
- `search_registry` (#5) — search the active Docker registry by query string.
|
||||
Uses `SYNO.Docker.Registry/search` (version 1) with the query JSON-encoded
|
||||
as `q`, plus `offset`, `limit`, and `page_size`. Renders stars, downloads,
|
||||
the official-image flag, and a truncated description per hit, and shows
|
||||
the total match count so the caller knows when to raise `limit`. No
|
||||
confirmation gate (read-only).
|
||||
- `list_image_tags` — list available tags for a repository (bonus tool).
|
||||
Uses `SYNO.Docker.Registry/tags` (version 1) with the repository
|
||||
JSON-encoded as `repo` — note the parameter name diverges from the n4s4
|
||||
reference which uses `name`. The response shape is unusual: DSM returns
|
||||
the tag list as the envelope's `data` field directly (not wrapped in a
|
||||
sub-key), so the tool accepts both shapes defensively. Output is capped
|
||||
by `limit` (default 50) because popular images like `alpine` ship 200+
|
||||
tags. No confirmation gate (read-only).
|
||||
- `pull_image` (#3) — pull an image into the local cache via
|
||||
`SYNO.Docker.Registry/pull_start` (version 1) with both `repository` and
|
||||
`tag` JSON-encoded. Requires `confirmed=True`. DSM exposes no confirmed
|
||||
`pull_status` method, so completion is detected by polling
|
||||
`SYNO.Docker.Image/list` for the new `repository:tag` pair with a 2–10 s
|
||||
backoff schedule and a 240 s overall budget (kept under the Claude
|
||||
Desktop ~4 min tool-call ceiling). A timeout returns a non-fatal "still
|
||||
running" hint pointing at `list_images` instead of raising — DSM keeps
|
||||
pulling server-side regardless. Short-circuits when the image is already
|
||||
present locally so a repeated call is cheap. Closes #3 and #5.
|
||||
|
||||
Tool count rises from 31 to 34.
|
||||
|
||||
### Fixed
|
||||
|
||||
|
||||
Reference in New Issue
Block a user