Skip to content

feat: add account email support and release lihi plugin 0.3.2 - #6

Merged
bwayne98 merged 3 commits into
mainfrom
develop
Aug 24, 2026
Merged

feat: add account email support and release lihi plugin 0.3.2#6
bwayne98 merged 3 commits into
mainfrom
develop

Conversation

@bwayne98

Copy link
Copy Markdown
Contributor

摘要

develop 目前累積的 account email 支援與 0.3.2 版本更新合併至 production branch。

這次更新把帳號 email 納入 lihi AccountStatus 必填契約,讓一般帳號資訊查詢以及工作群組/短網址網域切換結果都能顯示目前帳號 email。同時將 Codex 與 Claude Code 的 production plugin manifests 同步升級為純 0.3.2,並將 Codex cachebuster 嚴格限制在產生後的 develop artifact。

本次不變更 MCP tool 數量、tool inputs、OAuth、selector mutation、shortening 行為、production identities 或 production endpoint。

AccountStatus email 契約

account_statusaccount_switch_groupaccount_switch_domain 的成功結果現在都必須包含:

email: non-empty string

Client 顯示與驗證規則:

  • 完整保留 server 回傳的 email,不正規化、不推導其他帳號資訊;
  • 一般帳號狀態第一行顯示 帳號 Email:<email>
  • 完整狀態依序顯示 email、短網址用量、方案、續訂日期、工作群組與短網址網域;
  • 只查詢 email、目前群組或目前網域時,只顯示使用者要求的欄位;
  • email/group/domain-only 回覆不附加訂閱方案說明;
  • selector switch 成功後仍直接顯示 mutation 回傳的完整 AccountStatus,不追加狀態查詢;
  • 原有 quota、plan dates、null group/domain rendering 與 server-value preservation 維持不變。

Codex 與 Claude Code skills

同步更新兩個 host 的三個相關 skills,維持語意一致:

lihi-account

  • 將帳號 email 納入 skill description、routing 與中文觸發詞;
  • account_status schema 驗證新增非空 email
  • 一般帳號資訊由五行調整為六行,email 固定置頂;
  • 保留 requested-fields-only 與 pricing guidance 邊界。

lihi-switch-group

  • 驗證成功 switch response 必須包含非空 email
  • 完整狀態第一行顯示帳號 email;
  • 不改變 fresh options、exact group ID、possibly-dispatched verification 或 retry 規則。

lihi-switch-domain

  • 驗證成功 switch response 必須包含非空 email
  • 完整狀態第一行顯示帳號 email;
  • 不改變 owned/public sorting、exact hostname、domain equality validation 或 recovery handoff。

Production 與 develop packaging

Production 與 OpenAI Platform

Production marketplace packager 與 OpenAI Platform packager 現在會 fail closed:

  • 兩個 production manifests 必須是相同的純 major.minor.patch
  • production source 若包含 prerelease 或 build metadata,打包會在輸出前失敗;
  • production artifacts 不包含 Codex cachebuster、develop identity 或 develop endpoint;
  • OpenAI Platform 仍只輸出四個 individual skill ZIP,不輸出完整 plugin、marketplace、MCP config 或 app config;
  • host-neutral rewrite 已同步 account email wording,standalone switch skills 保留 email schema 與顯示規則;
  • production skills 與 checked-in source 不會被 staging rewrite 修改。

Develop bundle

Develop packager 保持 artifact 與 host-specific manifest 的版本責任分離:

  • artifact 目錄、Claude develop manifest 與 DEVELOP_BUILD.json 使用 0.3.2-develop.<build>
  • 只有 Codex develop manifest 使用 0.3.2-develop.<build>+codex.<build>
  • cachebuster 使用 normalized build number,並維持單一 +codex.* suffix;
  • production manifests 若已含 build metadata,develop build 也會在 staging 前拒絕;
  • identity、endpoint、skill folder 與 metadata rewrite 仍只發生於 staging;
  • checked-in production runtime files 保持不變。

文件與 CI

  • 更新英文與繁中 production guides,說明帳號狀態會先顯示 email;
  • 更新 Codex/Claude plugin-internal READMEs;
  • 更新 MCP contract、acceptance scenarios 與 repository guide;
  • 更新 OpenAI Platform packaging 文件中的 0.3.2 artifact、tag 與 develop cachebuster 說明;
  • 更新 release workflow 的 SemVer tag 錯誤範例;
  • tag release 仍只接受 v<major.minor.patch><major.minor.patch>,並要求 tag 與 production manifests 相符。

測試覆蓋

  • AccountStatus email routing、schema、顯示順序與 value preservation;
  • email-only 回覆不顯示 pricing guidance;
  • group/domain switch skills 的完整六行 AccountStatus;
  • Codex/Claude skill parity;
  • Codex 與 Claude production manifests 精確版本一致;
  • production/OpenAI/develop packagers 拒絕 production build metadata;
  • Codex develop cachebuster 與 Claude/artifact base develop version 分離;
  • OpenAI standalone switch skill artifacts 保留 email 契約;
  • production/develop identity 與 endpoint isolation;
  • source tree 在打包前後保持不變。

測試與驗證

  • python3 -m unittest discover -s tests -v(74 tests passed)
  • python3 -m compileall 通過
  • Codex production plugin validation 通過
  • Codex develop plugin validation 通過
  • 本機成功建立 lihi-agent-0.3.2 production marketplace bundle
  • 本機成功建立 lihi-agent-0.3.2-develop.42 develop marketplace bundle
  • 本機成功建立四個 0.3.2 OpenAI Platform skill ZIPs
  • Codex/Claude detector scripts byte-for-byte 相同
  • Codex/Claude shortening workflow byte-for-byte 相同
  • Codex/Claude group/domain switch error-recovery references byte-for-byte 相同
  • git diff --check

Reviewer 重點

  • 確認 live MCP 的三個 AccountStatus tools 都已回傳非空 email,且 tools/list 最低版本已更新為 0.3.2
  • 確認一般帳號狀態與 selector switch 的完整結果都先顯示 email;
  • 確認 email-only 回覆不帶出未要求的狀態欄位或 pricing guidance;
  • 確認 Codex 與 Claude Code 的 account/switch skills 維持語意一致;
  • 確認兩個 production manifests 都精確為 0.3.2,不包含 prerelease、build metadata 或 cachebuster;
  • 確認 +codex.<build> 只存在於 Codex develop artifact;
  • 確認 production、develop 與 OpenAI Platform artifacts 的 identity、endpoint 與檔案範圍維持隔離;
  • 確認本次沒有改變 OAuth、selector mutation safety、shortening workflow 或 MCP tool input shape。

wayne and others added 3 commits August 21, 2026 14:29
- require and preserve account email in AccountStatus responses
- display email first for general status and selector switch results
- keep Codex and Claude account and switch skills aligned
- update the public OpenAI skill overlay for the revised source wording
- refresh protocol, acceptance, installation, and plugin documentation
- extend source and packaged-skill regression coverage
- refresh the Codex plugin cachebuster after runtime changes
- set both checked-in production manifests to plain 0.3.2 versions
- update the documented MCP minimum version and release examples
- keep Codex cachebuster metadata exclusive to generated develop bundles
- reject production manifest prerelease and build metadata in all packagers
- preserve the base develop artifact and Claude manifest version
- extend packaging coverage for production metadata isolation
@bwayne98
bwayne98 merged commit e19afb0 into main Aug 24, 2026
6 checks passed
@bwayne98
bwayne98 deleted the develop branch August 31, 2026 03:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant