@synopackageland/cli 0.41.1 → 0.41.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.41.2 (2026-10-29)
6
+
7
+ - Require templates ~0.35.2 with SDK/App 0.38.1 and clean registry metadata.
8
+
5
9
  ## 0.41.1 (2026-10-29)
6
10
 
7
11
  - `ui.banner: shown | hidden` lets an App choose whether DSM draws its banner
package/README.md CHANGED
@@ -82,7 +82,7 @@ alongside npm lockfiles. Do not disable checksum verification for public SDK
82
82
  packages. Private mirrors can use explicitly configured Go authentication and
83
83
  checksum settings; a failed fetch reports `SDK_DOWNLOAD_FAILED`.
84
84
 
85
- CLI 0.41.1 uses templates ~0.35.1, whose default SDK pin is 0.38.0. Compose import and SDK defaults
85
+ CLI 0.41.2 uses templates ~0.35.2, whose default SDK pin is 0.38.1. Compose import and SDK defaults
86
86
  read the SDK pin from the installed templates; explicit App SDK declarations take precedence.
87
87
  Every App method must be declared in the permissions table. Dynamic names and
88
88
  custom HTTP dispatchers are rejected. With SDK 0.33.0, use fixed
@@ -93,7 +93,7 @@ unimported development commands are excluded. Use
93
93
  authentication. See [App entry and registration](docs/app-entry.md).
94
94
 
95
95
  `init` and `add` read their templates from the locally installed
96
- `@synopackageland/templates`. CLI 0.41.1 depends on `~0.35.1`: npm installation or
96
+ `@synopackageland/templates`. CLI 0.41.2 depends on `~0.35.2`: npm installation or
97
97
  update can select the latest templates patch in the 0.35 minor line. Templates
98
98
  patches need only a templates release; update the npm installation to receive them.
99
99
  The CLI never fetches templates at runtime, so offline use works after installation;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synopackageland/cli",
3
- "version": "0.41.1",
3
+ "version": "0.41.2",
4
4
  "description": "Syno Package Land Developer Kit CLI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@napi-rs/keyring": "^2.1.1",
31
- "@synopackageland/templates": "~0.35.1",
31
+ "@synopackageland/templates": "~0.35.2",
32
32
  "ajv": "^8.17.1",
33
33
  "commander": "^13.1.0",
34
34
  "json-canonicalize": "^3.0.1",
package/skills/SKILL.md CHANGED
@@ -5,7 +5,7 @@ description: Initialize, extend, check, build, inspect, and deploy Synology appl
5
5
 
6
6
  # Independent Synology SPKs
7
7
 
8
- The CLI installs templates through `~0.35.1`. A templates patch needs only a
8
+ The CLI installs templates through `~0.35.2`. A templates patch needs only a
9
9
  templates release; npm install/update selects a patch in that minor line. The CLI
10
10
  uses the locally installed templates and reads their SDK pin for defaults; it
11
11
  never downloads templates at runtime. Preserve the lockfile and use `npm ci` for
@@ -24,7 +24,7 @@ Use this guide to initialize, build and inspect own applications or upstream OSS
24
24
 
25
25
  For an existing open-source App, first read [reference/upstream-fork.md](reference/upstream-fork.md): upstream fork/history + untouched upstream files + all packaging in `synology/`, official container images pinned by tag/index digest, native official release binaries pinned by SHA-256 or a source build hook, and a single tag-merge upgrade command. Use `init --upstream-fork`; never rewrite the App as a component. Integrated upstream Apps require direct DSM administrator entry without a separate App password or an OIDC/SSO server: supported trusted headers first, disabling native login second; the shipped OpenList pattern uses the existing SDK 0.17.3 token adapter (`mode: token`, `access: dsm-admins`, `entry: admin-only`) with server-side Authorization injection. All DSM admins share one upstream admin; token reset requires package restart; WebDAV retains its native credentials.
26
26
 
27
- Use SDK/App 0.38.0 and CLI 0.41.1 for App entry enforcement. Declare every App method
27
+ Use SDK/App 0.38.1 and CLI 0.41.2 for App entry enforcement. Declare every App method
28
28
  in the permissions table; dynamic names and unregistered HTTP dispatchers are rejected.
29
29
  Use fixed SDK routes and `identity_gateway.upstream_auth_paths` for client API
30
30
  paths that rely on upstream authentication. Read
@@ -41,7 +41,7 @@ cannot upgrade a connection; use an existing upgrade-capable deployment
41
41
  transport. The audit follows each configured Go binary's Linux import graph,
42
42
  including declared workers; unshipped dev commands are excluded.
43
43
 
44
- SDK/App 0.38.0 allows 300 seconds for requests by default, with the browser
44
+ SDK/App 0.38.1 allows 300 seconds for requests by default, with the browser
45
45
  waiting 302 seconds. Explicit budgets and earlier parent deadlines still win.
46
46
  For long work, use existing independent workers with prompt job admission,
47
47
  progress and authorized status/result polling by the original ID. A timed-out
@@ -62,7 +62,7 @@ backend: {runtime: rust, dir: app, entry: hello, methods: [hello.greet]}
62
62
 
63
63
  ## 請求期限與視窗尺寸
64
64
 
65
- SDK/App 0.38.0 的 backend 請求期限預設 300 秒,DSM 視窗與 TS client 預設等候 302 秒。CLI 從 App 所選 SDK 的 timeout spec 讀取預設;`backend.timeout_seconds`(1–3600 的整數)可明確覆寫,go、python、node、rust 都適用,較早的 parent deadline 仍優先。到期時 App 回 `request_timeout`;DSM 視窗把工作期限放進 `ctx.requestTimeout`(毫秒),`ctx.call` 與 SDK 瀏覽器 client 多等 2 秒,讓 backend 的回覆先到。已安裝的 App、舊 SDK 或既有明確 timeout 不會自動改變;需使用匹配的 Go/TS SDK 重建。
65
+ SDK/App 0.38.1 的 backend 請求期限預設 300 秒,DSM 視窗與 TS client 預設等候 302 秒。CLI 從 App 所選 SDK 的 timeout spec 讀取預設;`backend.timeout_seconds`(1–3600 的整數)可明確覆寫,go、python、node、rust 都適用,較早的 parent deadline 仍優先。到期時 App 回 `request_timeout`;DSM 視窗把工作期限放進 `ctx.requestTimeout`(毫秒),`ctx.call` 與 SDK 瀏覽器 client 多等 2 秒,讓 backend 的回覆先到。已安裝的 App、舊 SDK 或既有明確 timeout 不會自動改變;需使用匹配的 Go/TS SDK 重建。
66
66
 
67
67
  - python、node、rust:build 把它寫進 `bridge.json` 的 `timeout_seconds`;runtime 以它為期限,傳給 App 的 `deadline_ms` 是送出呼叫時剩下的時間。
68
68
  - go:build 以 `-X main.requestTimeout=<秒>` 傳入。要寫 `timeout_seconds`,`main.go` 必須讀這個變數,否則 check 回 `STANDALONE_TIMEOUT_UNSUPPORTED`;未設定時使用所選 SDK 的 `api.DefaultRequestTimeout`:
@@ -93,7 +93,7 @@ func deadline() api.DeadlineOption {
93
93
 
94
94
  直接 File Station 瀏覽器讀取預設也為 302 秒;identity gateway 等候 upstream headers 預設 310 秒,自訂期限需對齊 gateway 與外部 proxy。這些預設不保證所有 DSM/proxy 都能完成五分鐘請求。executor batch 的 60 秒上限、已核准 root policy/program budget 與 credential lifetime 維持原契約;長 root 工作使用既有 `root.start` / `root.jobs.*`。
95
95
 
96
- 獨立 `ctl` transport 預設仍是 62 秒。長同步呼叫須明確指定 `--timeout`,或使用既有 nonblocking job flow;參考 [ctl](ctl.md)。完整契約見 SDK 的 [request deadlines](https://github.com/synopackageland/syno-pkg-land-sdk/blob/v0.38.0/docs/request-deadlines.md)。
96
+ 獨立 `ctl` transport 預設仍是 62 秒。長同步呼叫須明確指定 `--timeout`,或使用既有 nonblocking job flow;參考 [ctl](ctl.md)。完整契約見 SDK 的 [request deadlines](https://github.com/synopackageland/syno-pkg-land-sdk/blob/v0.38.1/docs/request-deadlines.md)。
97
97
 
98
98
  DSM 視窗預設 960×640、最小 700×420;`ui.window` 只寫要改的欄位:
99
99
 
@@ -132,7 +132,7 @@ every App supports cancellation or singleton deduplication.
132
132
 
133
133
  For AI consumers:
134
134
 
135
- The independent ctl transport defaults to 62 seconds even with SDK/App 0.38.0.
135
+ The independent ctl transport defaults to 62 seconds even with SDK/App 0.38.1.
136
136
  For a long synchronous call, set `--timeout` explicitly; for an existing job
137
137
  flow, use `--no-wait` and the original ID. A status read timeout leaves the last
138
138
  known queued/running state intact. If the App's admission API supports an