diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fa72f6f..4289e7b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ concurrency: cancel-in-progress: false jobs: release: - if: github.repository == 'potato47/malatang-plugins' + if: github.repository == 'semicoder-dev/malatang-plugins' runs-on: ubuntu-latest permissions: contents: write diff --git a/README.md b/README.md index e6247ba..986e982 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # 麻辣烫官方插件与市场 -[独立官方仓库](https://github.com/potato47/malatang-plugins),宿主不携带此处任何插件。翻译和随手记 0.1.0 已发布归档并上架,市场适用于麻辣烫 0.4.2。 +[独立官方仓库](https://github.com/semicoder-dev/malatang-plugins),宿主不携带此处任何插件。翻译和随手记 0.1.0 已发布归档并上架,市场适用于麻辣烫 0.4.2。 - `plugins/translate`:译文,使用宿主模型翻译。 - `plugins/quick-notes`:随手记,使用宿主 KV 存储。 -- `marketplace.json`:仅列已发布并验收的插件。默认索引为 https://raw.githubusercontent.com/potato47/malatang-plugins/main/marketplace.json 。 +- `marketplace.json`:仅列已发布并验收的插件。默认索引为 https://raw.githubusercontent.com/semicoder-dev/malatang-plugins/main/marketplace.json 。 - `scripts/tasks.ts`:通过固定的公开 SDK 0.3.0 检查、构建和打包,产生归档、SHA-256 与候选条目。 - `tests/translate-models.html`:迁入的离线浏览器回归;通过 `bun scripts/browser-fixture.ts` 生成 `artifacts/browser/index.html`,直接用浏览器打开(无需额外服务),覆盖模型选择、空模型与账号断开;不发送真实模型请求。 @@ -37,7 +37,7 @@ bun run index:check ## 首次上线证据(2026-10-11) -- 翻译 [translate-v0.1.0](https://github.com/potato47/malatang-plugins/releases/tag/translate-v0.1.0),源码 `1d65444`,SHA-256 `47f1ca96ba81a367944c4f01823e25dd960f3465d18f056e6573def05ac8d833`。 -- 随手记 [quick-notes-v0.1.0](https://github.com/potato47/malatang-plugins/releases/tag/quick-notes-v0.1.0),源码 `a377f30`,SHA-256 `14b55f3722be87a3674cb7bdf0c41408cd8fbe1808de57cdf8dfc6d329cb56e0`。 -- 两个归档经匿名下载、包身份和哈希验收;索引 PR [#1](https://github.com/potato47/malatang-plugins/pull/1)、[#2](https://github.com/potato47/malatang-plugins/pull/2) 经 CI 后合并,公开 Raw 索引已返回两条记录。 +- 翻译 [translate-v0.1.0](https://github.com/semicoder-dev/malatang-plugins/releases/tag/translate-v0.1.0),源码 `1d65444`,SHA-256 `47f1ca96ba81a367944c4f01823e25dd960f3465d18f056e6573def05ac8d833`。 +- 随手记 [quick-notes-v0.1.0](https://github.com/semicoder-dev/malatang-plugins/releases/tag/quick-notes-v0.1.0),源码 `a377f30`,SHA-256 `14b55f3722be87a3674cb7bdf0c41408cd8fbe1808de57cdf8dfc6d329cb56e0`。 +- 两个归档经匿名下载、包身份和哈希验收;索引 PR [#1](https://github.com/semicoder-dev/malatang-plugins/pull/1)、[#2](https://github.com/semicoder-dev/malatang-plugins/pull/2) 经 CI 后合并,公开 Raw 索引已返回两条记录。 - 首次翻译流程在归档发布后因 Actions 无 PR 创建权限而报错;维护者补建 PR,标签与归档未移动。工作流此后保留候选分支并明确提示手工补建 PR,仓库保护未放宽。 diff --git a/marketplace.json b/marketplace.json index e9cc780..e655dff 100644 --- a/marketplace.json +++ b/marketplace.json @@ -11,7 +11,7 @@ "color": "#6e8169", "version": "0.1.0", "sdkVersion": "0.3", - "url": "https://github.com/potato47/malatang-plugins/releases/download/quick-notes-v0.1.0/quick-notes-0.1.0.tgz", + "url": "https://github.com/semicoder-dev/malatang-plugins/releases/download/quick-notes-v0.1.0/quick-notes-0.1.0.tgz", "sha256": "14b55f3722be87a3674cb7bdf0c41408cd8fbe1808de57cdf8dfc6d329cb56e0" }, { @@ -23,7 +23,7 @@ "color": "#cf633c", "version": "0.1.0", "sdkVersion": "0.3", - "url": "https://github.com/potato47/malatang-plugins/releases/download/translate-v0.1.0/translate-0.1.0.tgz", + "url": "https://github.com/semicoder-dev/malatang-plugins/releases/download/translate-v0.1.0/translate-0.1.0.tgz", "sha256": "47f1ca96ba81a367944c4f01823e25dd960f3465d18f056e6573def05ac8d833" } ] diff --git a/scripts/catalog.ts b/scripts/catalog.ts index 7b0e7e7..974eaa5 100644 --- a/scripts/catalog.ts +++ b/scripts/catalog.ts @@ -13,7 +13,7 @@ if (import.meta.main) { const index = indexSchema.parse(await Bun.file("marketplace.json").json()); if (action === "promote") { const entry = entrySchema.parse(await Bun.file(process.argv[3]!).json()); - const expectedURL = `https://github.com/potato47/malatang-plugins/releases/download/${entry.id}-v${entry.version}/${entry.id}-${entry.version}.tgz`; + const expectedURL = `https://github.com/semicoder-dev/malatang-plugins/releases/download/${entry.id}-v${entry.version}/${entry.id}-${entry.version}.tgz`; if (entry.url !== expectedURL) throw new Error("候选条目不是官方固定版本归档"); const response = await fetch(entry.url, { signal: AbortSignal.timeout(120000) }); if (!response.ok) throw new Error(`公开归档未就绪:${response.status}`); diff --git a/scripts/tasks.ts b/scripts/tasks.ts index 9c7f732..65da2b8 100644 --- a/scripts/tasks.ts +++ b/scripts/tasks.ts @@ -18,7 +18,7 @@ for (const id of ids) { const sha256 = createHash("sha256").update(await Bun.file(`artifacts/${name}`).bytes()).digest("hex"); const { id: pluginId, name: title, description, icon, color, sdkVersion } = pkg.malatang; const entry = { id: pluginId, packageName: pkg.name, name: title, description, icon, color, sdkVersion, version: pkg.version, - url: `https://github.com/potato47/malatang-plugins/releases/download/${id}-v${pkg.version}/${name}`, sha256 }; + url: `https://github.com/semicoder-dev/malatang-plugins/releases/download/${id}-v${pkg.version}/${name}`, sha256 }; await Bun.write(`artifacts/${id}.json`, JSON.stringify(entry, null, 2) + "\n"); await Bun.write(`artifacts/${name}.sha256`, `${sha256} ${name}\n`); console.log(`Prepared ${name}; candidate index entry artifacts/${id}.json (not published)`); diff --git a/tests/plugins.test.ts b/tests/plugins.test.ts index 9ce73c1..a13ebf0 100644 --- a/tests/plugins.test.ts +++ b/tests/plugins.test.ts @@ -18,5 +18,5 @@ test("translation stores preferences and delegates to the selected host model", test("official index has no unpublished archive entries", async () => { const index = indexSchema.parse(await Bun.file("marketplace.json").json()); expect(index.schemaVersion).toBe(1); - for (const entry of index.plugins) expect(entry.url).toBe(`https://github.com/potato47/malatang-plugins/releases/download/${entry.id}-v${entry.version}/${entry.id}-${entry.version}.tgz`); + for (const entry of index.plugins) expect(entry.url).toBe(`https://github.com/semicoder-dev/malatang-plugins/releases/download/${entry.id}-v${entry.version}/${entry.id}-${entry.version}.tgz`); });