diff --git a/CHANGELOG.md b/CHANGELOG.md index 0564234..e1ea589 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## Unreleased + +- Rebalance the ThreadRelink logo so the return arrow has more room and visual + weight. +- Clarify the VS Code extension description and document the Azure free-trial + publishing contingency. + ## 0.4.1 - Repair stale automatic conversation links when the current project has diff --git a/docs/MARKETPLACE_PUBLISHING.md b/docs/MARKETPLACE_PUBLISHING.md index 6836e86..23183fd 100644 --- a/docs/MARKETPLACE_PUBLISHING.md +++ b/docs/MARKETPLACE_PUBLISHING.md @@ -69,6 +69,27 @@ Token。 9. 再次运行身份检查,将 `verify_access` 设置为 `true`。检查成功前不要创建 Release。 +## Azure Free Trial 到期后的备用方案 + +Marketplace 发布本身不会消耗 Azure Free Trial 额度,但当前的 user-assigned +managed identity 是 Azure subscription 中的资源。Free Trial 到期后,先手动运行 +**Check Marketplace Publishing Identity**,并将 `verify_access` 设置为 `true`: + +- 如果检查成功,继续使用当前 identity,不做迁移。 +- 如果检查因为 subscription 已禁用而失败,再迁移到不依赖 subscription 的 + Microsoft Entra app registration。 + +迁移时使用现有 GitHub OIDC issuer、不可变 subject 和 audience 创建 app +federated credential,将 GitHub Environment 中的 `AZURE_CLIENT_ID` 改为新 +application client ID,并在两个工作流的 `azure/login` 步骤中删除 +`subscription-id`、添加 `allow-no-subscriptions: true`。先以 +`verify_access: false` 取得新 identity 的 Marketplace profile ID,将其添加为 +publisher Contributor,再以 `verify_access: true` 验证访问。 + +只有新 identity 成功发布一个版本后,才移除旧 Marketplace Contributor,并删除 +旧 managed identity 和空 resource group。不要仅因为 Free Trial 即将到期就升级为 +按量付费订阅。 + ## 发布新版本 1. 将 `packages/vscode/package.json` 更新为新的 `X.Y.Z` 版本。 diff --git a/packages/vscode/CHANGELOG.md b/packages/vscode/CHANGELOG.md index 6197a70..56068eb 100644 --- a/packages/vscode/CHANGELOG.md +++ b/packages/vscode/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## Unreleased + +- Rebalance the ThreadRelink logo so the return arrow has more room and visual + weight. +- Describe the extension as keeping Codex conversations connected to their + projects after repository renames or moves. + ## 0.4.1 - Repair stale automatic conversation links when the current project has diff --git a/packages/vscode/package.json b/packages/vscode/package.json index 0ce3a71..5ea479e 100644 --- a/packages/vscode/package.json +++ b/packages/vscode/package.json @@ -1,7 +1,7 @@ { "name": "threadrelink", "displayName": "ThreadRelink", - "description": "A VS Code extension that keeps local Codex conversations discoverable after a repository is renamed or moved.", + "description": "A VS Code extension that keeps local Codex conversations connected to their projects after repositories are renamed or moved.", "version": "0.4.1", "icon": "resources/threadrelink.png", "publisher": "ascendho", diff --git a/packages/vscode/resources/threadrelink-mark.svg b/packages/vscode/resources/threadrelink-mark.svg index 0b86a2b..f20d39a 100644 --- a/packages/vscode/resources/threadrelink-mark.svg +++ b/packages/vscode/resources/threadrelink-mark.svg @@ -6,8 +6,8 @@ - - - - + + + + diff --git a/packages/vscode/resources/threadrelink.png b/packages/vscode/resources/threadrelink.png index 8e3ebe5..e4c01af 100644 Binary files a/packages/vscode/resources/threadrelink.png and b/packages/vscode/resources/threadrelink.png differ diff --git a/packages/vscode/resources/threadrelink.svg b/packages/vscode/resources/threadrelink.svg index 791bfb1..8e55068 100644 --- a/packages/vscode/resources/threadrelink.svg +++ b/packages/vscode/resources/threadrelink.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/packages/vscode/test/manifest.test.ts b/packages/vscode/test/manifest.test.ts index 0e5156a..15417d5 100644 --- a/packages/vscode/test/manifest.test.ts +++ b/packages/vscode/test/manifest.test.ts @@ -46,7 +46,7 @@ describe("VS Code extension manifest", () => { expect(manifest.publisher).toBe("ascendho"); expect(manifest.displayName).toBe("ThreadRelink"); expect(manifest.description).toBe( - "A VS Code extension that keeps local Codex conversations discoverable after a repository is renamed or moved.", + "A VS Code extension that keeps local Codex conversations connected to their projects after repositories are renamed or moved.", ); expect(manifest.version).toMatch(/^\d+\.\d+\.\d+$/); expect(manifest.pricing).toBe("Free");