Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions dist/registry/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,14 @@
"id": "nllb",
"name": "NLLB",
"description": "Neural machine translation using NLLB",
"latest": "0.3.0",
"latest": "0.3.1",
"versions": [
{
"version": "0.3.1",
"manifest_url": "https://streamkit.dev/registry/plugins/nllb/0.3.1/manifest.json",
"signature_url": "https://streamkit.dev/registry/plugins/nllb/0.3.1/manifest.minisig",
"published_at": "2026-07-05"
},
{
"version": "0.3.0",
"manifest_url": "https://streamkit.dev/registry/plugins/nllb/0.3.0/manifest.json",
Expand All @@ -129,8 +135,14 @@
"id": "parakeet",
"name": "Parakeet TDT",
"description": "Fast speech-to-text using NVIDIA Parakeet TDT via sherpa-onnx",
"latest": "0.3.0",
"latest": "0.3.1",
"versions": [
{
"version": "0.3.1",
"manifest_url": "https://streamkit.dev/registry/plugins/parakeet/0.3.1/manifest.json",
"signature_url": "https://streamkit.dev/registry/plugins/parakeet/0.3.1/manifest.minisig",
"published_at": "2026-07-05"
},
{
"version": "0.3.0",
"manifest_url": "https://streamkit.dev/registry/plugins/parakeet/0.3.0/manifest.json",
Expand Down Expand Up @@ -247,8 +259,14 @@
"id": "slint",
"name": "Slint",
"description": "Slint UI rendering as a video source \u2014 render .slint files to RGBA8 frames at configurable resolution and frame rate",
"latest": "0.4.0",
"latest": "0.5.0",
"versions": [
{
"version": "0.5.0",
"manifest_url": "https://streamkit.dev/registry/plugins/slint/0.5.0/manifest.json",
"signature_url": "https://streamkit.dev/registry/plugins/slint/0.5.0/manifest.minisig",
"published_at": "2026-07-05"
},
{
"version": "0.4.0",
"manifest_url": "https://streamkit.dev/registry/plugins/slint/0.4.0/manifest.json",
Expand Down
33 changes: 33 additions & 0 deletions dist/registry/plugins/nllb/0.3.1/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"schema_version": 1,
"id": "nllb",
"name": "NLLB",
"version": "0.3.1",
"node_kind": "nllb",
"kind": "native",
"description": "Neural machine translation using NLLB",
"license": "MPL-2.0",
"entrypoint": "libnllb.so",
"bundle": {
"url": "https://github.com/streamer45/streamkit/releases/download/plugin-nllb-v0.3.1/nllb-0.3.1-bundle.tar.zst",
"sha256": "45eb956c36ae311abe6bde1266e973bc7dbcd54953b531472176986457015e1c",
"size_bytes": 2816533
},
"models": [
{
"id": "nllb-200-distilled-600M-ct2-int8",
"name": "NLLB-200 distilled 600M (CTranslate2 int8)",
"default": false,
"source": "huggingface",
"repo_id": "streamkit/nllb-models",
"revision": "main",
"files": [
"nllb-200-distilled-600M-ct2-int8.tar.xz"
],
"expected_size_bytes": 1135260128,
"license": "CC-BY-NC-4.0",
"license_url": "https://huggingface.co/facebook/nllb-200-distilled-600M",
"sha256": "6c95a9bc42239a189c71d32aeb66b3108a4fef97d194e3360f3a749671a05c35"
Comment on lines +24 to +30

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 New translation model download fails integrity check

The new NLLB model file is listed with a different archive format (.tar.xz at dist/registry/plugins/nllb/0.3.1/manifest.json:25) while keeping the exact download checksum and size of the previous .tar.bz2 archive, so downloading the model fails verification.
Impact: Users installing the new NLLB version cannot complete installation — the model download aborts with a hash mismatch (or a missing-file error).

Checksum belongs to the old bz2 archive, not the new xz file

The installer hashes the downloaded (still compressed) file bytes and compares against the manifest sha256 (apps/skit/src/marketplace_installer.rs:1698-1706). In dist/registry/plugins/nllb/0.3.0/manifest.json the file was nllb-200-distilled-600M-ct2-int8.tar.bz2 with sha256 6c95a9bc42239a189c71d32aeb66b3108a4fef97d194e3360f3a749671a05c35 and expected_size_bytes 1135260128. The 0.3.1 manifest changes the filename to nllb-200-distilled-600M-ct2-int8.tar.xz but keeps the byte-identical sha256 and expected_size_bytes. A bz2 and an xz archive of the same content have entirely different bytes and thus different hashes, so either the checksum/size were never regenerated for the new archive, or the extension was changed by mistake. The same discrepancy exists in docs/public/registry/plugins/nllb/0.3.1/manifest.json:25,30.

Prompt for agents
The NLLB 0.3.1 manifest declares the model file as nllb-200-distilled-600M-ct2-int8.tar.xz but reuses the sha256 (6c95a9bc42239a189c71d32aeb66b3108a4fef97d194e3360f3a749671a05c35) and expected_size_bytes (1135260128) from the previous 0.3.0 manifest, which referenced the .tar.bz2 archive. The installer (apps/skit/src/marketplace_installer.rs) verifies this sha256 against the bytes of the downloaded compressed file, so this will fail. Determine whether the model archive on Hugging Face (repo streamkit/nllb-models) is actually .tar.xz or still .tar.bz2. If it is genuinely a new .tar.xz archive, regenerate and update both the sha256 and expected_size_bytes to match the new file. If the file is unchanged, revert the extension back to .tar.bz2. Apply the fix to both dist/registry/plugins/nllb/0.3.1/manifest.json and docs/public/registry/plugins/nllb/0.3.1/manifest.json (and note the .minisig signatures must be regenerated for the corrected manifest).
Open in Devin Review (Staging)

Was this helpful? React with 👍 or 👎 to provide feedback.

Debug

Playground

}
]
}
4 changes: 4 additions & 0 deletions dist/registry/plugins/nllb/0.3.1/manifest.minisig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
untrusted comment: signature from minisign secret key
RUQ/85JEqYXEgdeVVmGwIGnSi5mBQsV48E9WsObmfD+rWnDxGpawRiVmX8FATBnjiz/rsQtZrGMquMXH9RXp/Omoj/hYz1VEMgE=
trusted comment: timestamp:1783273484 file:manifest.json hashed
peC71tuvTUJ/H8UqXTyY3iCBvy196vyTDoXEiLfa/p3HgHHFKseIQIOtGypX00U45IgDWTCDiKOpdGupFsdzAQ==
Comment on lines +1 to +4

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Manifest .minisig signatures must match corrected manifest content

Each new manifest.json ships with a detached minisign signature over manifest.json. If the NLLB 0.3.1 manifest is corrected (per the reported checksum bug), the corresponding manifest.minisig in both dist/ and docs/public/ must be regenerated, otherwise signature verification of the manifest will fail at install time.

Open in Devin Review (Staging)

Was this helpful? React with 👍 or 👎 to provide feedback.

Debug

Playground

49 changes: 49 additions & 0 deletions dist/registry/plugins/parakeet/0.3.1/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"schema_version": 1,
"id": "parakeet",
"name": "Parakeet TDT",
"version": "0.3.1",
"node_kind": "parakeet",
"kind": "native",
"description": "Fast speech-to-text using NVIDIA Parakeet TDT via sherpa-onnx",
"license": "MPL-2.0",
"homepage": "https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3",
"entrypoint": "libparakeet.so",
"bundle": {
"url": "https://github.com/streamer45/streamkit/releases/download/plugin-parakeet-v0.3.1/parakeet-0.3.1-bundle.tar.zst",
"sha256": "2e703ea8b4ead15390bab0c4c62218ccae2985e5a111155a7292add9333bdcac",
"size_bytes": 15626276
},
"models": [
{
"id": "parakeet-tdt-0.6b-v3-int8",
"name": "Parakeet TDT 0.6B v3 (25 languages, INT8)",
"default": true,
"source": "huggingface",
"repo_id": "streamkit/parakeet-models",
"revision": "main",
"files": [
"sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8.tar.bz2"
],
"expected_size_bytes": 486660829,
"license": "CC-BY-4.0",
"license_url": "https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3",
"sha256": "181f96d0dcac111d68c2ee5843655bb08ecb5fe26f845a915c3e4fca7915b9f8"
Comment on lines +25 to +31

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Parakeet 0.3.1 switches from per-file checksums to single tarball

Parakeet 0.3.0 delivered the model as individual .onnx/.txt files with a file_checksums map, whereas 0.3.1 delivers a single archive sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8.tar.bz2 with a top-level sha256. Because the model has a single file, the installer selects model.sha256 for verification (apps/skit/src/marketplace_installer.rs:1467), so this new hash is what will be checked. The silero-vad sha256 (1a153a22...88e3) is unchanged from 0.3.0, which is correct since silero_vad.onnx is unchanged. Unlike the NLLB entry, the parakeet tarball hash is new and could not be cross-checked against a prior value — reviewer should confirm it matches the actual uploaded archive.

Open in Devin Review (Staging)

Was this helpful? React with 👍 or 👎 to provide feedback.

Debug

Playground

},
{
"id": "silero-vad",
"name": "Silero VAD (v6.2)",
"default": true,
"source": "huggingface",
"repo_id": "streamkit/parakeet-models",
"revision": "main",
"files": [
"silero_vad.onnx"
],
"expected_size_bytes": 2327524,
"license": "MIT",
"license_url": "https://github.com/snakers4/silero-vad/blob/master/LICENSE",
"sha256": "1a153a22f4509e292a94e67d6f9b85e8deb25b4988682b7e174c65279d8788e3"
}
]
}
4 changes: 4 additions & 0 deletions dist/registry/plugins/parakeet/0.3.1/manifest.minisig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
untrusted comment: signature from minisign secret key
RUQ/85JEqYXEgc41nvLxnfh0Xq01/ShZ8f11vHnmzZwyFWXR3PY14YWdKB/FWsXIz80EAKtqqj/tWAh2/6/Huli7QQbOZMl5MAI=
trusted comment: timestamp:1783273484 file:manifest.json hashed
vdrb7ufLo3AJjt/xBayzKSki9+NaBAhiMiQ1+AjJdO5+fvYpGDCNVREUn4naJFWkbG1g8zGFi09ucsJtCdzYAA==
31 changes: 31 additions & 0 deletions dist/registry/plugins/slint/0.5.0/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"schema_version": 1,
"id": "slint",
"name": "Slint",
"version": "0.5.0",
"node_kind": "slint",
"kind": "native",
"description": "Slint UI rendering as a video source \u2014 render .slint files to RGBA8 frames at configurable resolution and frame rate",
"license": "MPL-2.0",
"entrypoint": "libslint.so",
"bundle": {
"url": "https://github.com/streamer45/streamkit/releases/download/plugin-slint-v0.5.0/slint-0.5.0-bundle.tar.zst",
"sha256": "745a44bca16bf66eac9738c7ca598f676b116726ae4194c84e47f829d4eb0216",
"size_bytes": 9606193
},
"models": [],
"assets": [
{
"type_id": "slint",
"label": "Slint Files",
"extensions": [
"slint"
],
"max_size_bytes": 1048576,
"content_type": "text",
"icon_hint": "code",
"node_param": "slint_file",
"system_dir": "samples/slint/system"
}
]
}
4 changes: 4 additions & 0 deletions dist/registry/plugins/slint/0.5.0/manifest.minisig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
untrusted comment: signature from minisign secret key
RUQ/85JEqYXEgZBcpO/CrHmvojERYNoZ9ysO8DglRClFOm6InnO+UJH4PTD0yJAWNZz8YOIze4bOJ2N9dL5pGRqWaVOCk2+VUAk=
trusted comment: timestamp:1783273484 file:manifest.json hashed
xMmox7dk56GTlFDNaYFx3KM7sqRLhZC0g0Q5HFeawYN4Z0Kpt3ktmVdn6rDG0CQUnLm5Nkb7Lzv7fkQMO88hDw==
24 changes: 21 additions & 3 deletions docs/public/registry/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,14 @@
"id": "nllb",
"name": "NLLB",
"description": "Neural machine translation using NLLB",
"latest": "0.3.0",
"latest": "0.3.1",
"versions": [
{
"version": "0.3.1",
"manifest_url": "https://streamkit.dev/registry/plugins/nllb/0.3.1/manifest.json",
"signature_url": "https://streamkit.dev/registry/plugins/nllb/0.3.1/manifest.minisig",
"published_at": "2026-07-05"
},
{
"version": "0.3.0",
"manifest_url": "https://streamkit.dev/registry/plugins/nllb/0.3.0/manifest.json",
Expand All @@ -129,8 +135,14 @@
"id": "parakeet",
"name": "Parakeet TDT",
"description": "Fast speech-to-text using NVIDIA Parakeet TDT via sherpa-onnx",
"latest": "0.3.0",
"latest": "0.3.1",
"versions": [
{
"version": "0.3.1",
"manifest_url": "https://streamkit.dev/registry/plugins/parakeet/0.3.1/manifest.json",
"signature_url": "https://streamkit.dev/registry/plugins/parakeet/0.3.1/manifest.minisig",
"published_at": "2026-07-05"
},
{
"version": "0.3.0",
"manifest_url": "https://streamkit.dev/registry/plugins/parakeet/0.3.0/manifest.json",
Expand Down Expand Up @@ -247,8 +259,14 @@
"id": "slint",
"name": "Slint",
"description": "Slint UI rendering as a video source \u2014 render .slint files to RGBA8 frames at configurable resolution and frame rate",
"latest": "0.4.0",
"latest": "0.5.0",
"versions": [
{
"version": "0.5.0",
"manifest_url": "https://streamkit.dev/registry/plugins/slint/0.5.0/manifest.json",
"signature_url": "https://streamkit.dev/registry/plugins/slint/0.5.0/manifest.minisig",
"published_at": "2026-07-05"
},
{
"version": "0.4.0",
"manifest_url": "https://streamkit.dev/registry/plugins/slint/0.4.0/manifest.json",
Expand Down
33 changes: 33 additions & 0 deletions docs/public/registry/plugins/nllb/0.3.1/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"schema_version": 1,
"id": "nllb",
"name": "NLLB",
"version": "0.3.1",
"node_kind": "nllb",
"kind": "native",
"description": "Neural machine translation using NLLB",
"license": "MPL-2.0",
"entrypoint": "libnllb.so",
"bundle": {
"url": "https://github.com/streamer45/streamkit/releases/download/plugin-nllb-v0.3.1/nllb-0.3.1-bundle.tar.zst",
"sha256": "45eb956c36ae311abe6bde1266e973bc7dbcd54953b531472176986457015e1c",
"size_bytes": 2816533
},
"models": [
{
"id": "nllb-200-distilled-600M-ct2-int8",
"name": "NLLB-200 distilled 600M (CTranslate2 int8)",
"default": false,
"source": "huggingface",
"repo_id": "streamkit/nllb-models",
"revision": "main",
"files": [
"nllb-200-distilled-600M-ct2-int8.tar.xz"
],
"expected_size_bytes": 1135260128,
"license": "CC-BY-NC-4.0",
"license_url": "https://huggingface.co/facebook/nllb-200-distilled-600M",
"sha256": "6c95a9bc42239a189c71d32aeb66b3108a4fef97d194e3360f3a749671a05c35"
}
]
}
4 changes: 4 additions & 0 deletions docs/public/registry/plugins/nllb/0.3.1/manifest.minisig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
untrusted comment: signature from minisign secret key
RUQ/85JEqYXEgdeVVmGwIGnSi5mBQsV48E9WsObmfD+rWnDxGpawRiVmX8FATBnjiz/rsQtZrGMquMXH9RXp/Omoj/hYz1VEMgE=
trusted comment: timestamp:1783273484 file:manifest.json hashed
peC71tuvTUJ/H8UqXTyY3iCBvy196vyTDoXEiLfa/p3HgHHFKseIQIOtGypX00U45IgDWTCDiKOpdGupFsdzAQ==
49 changes: 49 additions & 0 deletions docs/public/registry/plugins/parakeet/0.3.1/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"schema_version": 1,
"id": "parakeet",
"name": "Parakeet TDT",
"version": "0.3.1",
"node_kind": "parakeet",
"kind": "native",
"description": "Fast speech-to-text using NVIDIA Parakeet TDT via sherpa-onnx",
"license": "MPL-2.0",
"homepage": "https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3",
"entrypoint": "libparakeet.so",
"bundle": {
"url": "https://github.com/streamer45/streamkit/releases/download/plugin-parakeet-v0.3.1/parakeet-0.3.1-bundle.tar.zst",
"sha256": "2e703ea8b4ead15390bab0c4c62218ccae2985e5a111155a7292add9333bdcac",
"size_bytes": 15626276
},
"models": [
{
"id": "parakeet-tdt-0.6b-v3-int8",
"name": "Parakeet TDT 0.6B v3 (25 languages, INT8)",
"default": true,
"source": "huggingface",
"repo_id": "streamkit/parakeet-models",
"revision": "main",
"files": [
"sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8.tar.bz2"
],
"expected_size_bytes": 486660829,
"license": "CC-BY-4.0",
"license_url": "https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3",
"sha256": "181f96d0dcac111d68c2ee5843655bb08ecb5fe26f845a915c3e4fca7915b9f8"
},
{
"id": "silero-vad",
"name": "Silero VAD (v6.2)",
"default": true,
"source": "huggingface",
"repo_id": "streamkit/parakeet-models",
"revision": "main",
"files": [
"silero_vad.onnx"
],
"expected_size_bytes": 2327524,
"license": "MIT",
"license_url": "https://github.com/snakers4/silero-vad/blob/master/LICENSE",
"sha256": "1a153a22f4509e292a94e67d6f9b85e8deb25b4988682b7e174c65279d8788e3"
}
]
}
4 changes: 4 additions & 0 deletions docs/public/registry/plugins/parakeet/0.3.1/manifest.minisig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
untrusted comment: signature from minisign secret key
RUQ/85JEqYXEgc41nvLxnfh0Xq01/ShZ8f11vHnmzZwyFWXR3PY14YWdKB/FWsXIz80EAKtqqj/tWAh2/6/Huli7QQbOZMl5MAI=
trusted comment: timestamp:1783273484 file:manifest.json hashed
vdrb7ufLo3AJjt/xBayzKSki9+NaBAhiMiQ1+AjJdO5+fvYpGDCNVREUn4naJFWkbG1g8zGFi09ucsJtCdzYAA==
31 changes: 31 additions & 0 deletions docs/public/registry/plugins/slint/0.5.0/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"schema_version": 1,
"id": "slint",
"name": "Slint",
"version": "0.5.0",
"node_kind": "slint",
"kind": "native",
"description": "Slint UI rendering as a video source \u2014 render .slint files to RGBA8 frames at configurable resolution and frame rate",
"license": "MPL-2.0",
"entrypoint": "libslint.so",
"bundle": {
"url": "https://github.com/streamer45/streamkit/releases/download/plugin-slint-v0.5.0/slint-0.5.0-bundle.tar.zst",
"sha256": "745a44bca16bf66eac9738c7ca598f676b116726ae4194c84e47f829d4eb0216",
"size_bytes": 9606193
},
"models": [],
"assets": [
{
"type_id": "slint",
"label": "Slint Files",
"extensions": [
"slint"
],
"max_size_bytes": 1048576,
"content_type": "text",
"icon_hint": "code",
"node_param": "slint_file",
"system_dir": "samples/slint/system"
}
]
}
4 changes: 4 additions & 0 deletions docs/public/registry/plugins/slint/0.5.0/manifest.minisig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
untrusted comment: signature from minisign secret key
RUQ/85JEqYXEgZBcpO/CrHmvojERYNoZ9ysO8DglRClFOm6InnO+UJH4PTD0yJAWNZz8YOIze4bOJ2N9dL5pGRqWaVOCk2+VUAk=
trusted comment: timestamp:1783273484 file:manifest.json hashed
xMmox7dk56GTlFDNaYFx3KM7sqRLhZC0g0Q5HFeawYN4Z0Kpt3ktmVdn6rDG0CQUnLm5Nkb7Lzv7fkQMO88hDw==
Loading