Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -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`,直接用浏览器打开(无需额外服务),覆盖模型选择、空模型与账号断开;不发送真实模型请求。

Expand Down Expand Up @@ -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,仓库保护未放宽。
4 changes: 2 additions & 2 deletions marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
},
{
Expand All @@ -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"
}
]
Expand Down
2 changes: 1 addition & 1 deletion scripts/catalog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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}`);
Expand Down
2 changes: 1 addition & 1 deletion scripts/tasks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)`);
Expand Down
2 changes: 1 addition & 1 deletion tests/plugins.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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`);
});
Loading