Skip to content

feat(ai): add shared group key authorization - #36

Merged
HeiTang merged 1 commit into
devfrom
feature/group-shared-ai
Nov 5, 2026
Merged

HeiTang merged 1 commit into
devfrom
feature/group-shared-ai

Conversation

@HeiTang

@HeiTang HeiTang commented Nov 5, 2026

Copy link
Copy Markdown
Owner

群組觸發提醒現在可使用持有人明確授權的一組既有 Key。管理員先在群組 /ai group allow,持有人點「授權我的 Key」進入 Bot 私聊,以按鈕選擇自己的既有 Key,最後由管理員 /ai group on 啟用;不必手填群組 ID 或 Key ID。

  • 私聊選取與授權時查核群組成員及 Key 所有權,群組管理操作查核管理員;查詢失敗不變更。選取 callback 綁定持有人,已完成、已關閉或已刪 Key 的選單不能重新授權。
  • 群組只引用指定的原加密 Key,不受發訊者個人 AI 開關影響,不會改用任何人的其他 Key。保留供應商隔離、冷卻、固定模型及共用等待預算。
  • 持有人可撤銷、管理員可關閉或解除綁定;schema v10 以刪除 trigger 清除群組 Key 引用,既有資料保留,schema 與版本紀錄同交易提交。
  • 群組 AI 失敗時提示並改用內建解析,私聊維持既有失敗處理。明確新提醒在降級時隔離舊草稿;仍由發起者確認建立,解析標籤依草稿紀錄顯示。
  • 同步 README、Bot 說明、AGENTS.md 與 changelog,明示送至供應商的觸發訊息、必要上下文及持有人費用歸屬。

驗證:本機 make check(使用現有虛擬環境,UV_NO_SYNC=1)通過,包含 Ruff、426 個 unit tests 與 smoke flow;git diff --check 通過。另以主機環境執行 scripts/container_check.py,確認 v0.5.0、加密及 schema v10;實際 amd64/arm64 映像由 PR CI 建置驗證。

測試使用模擬 Telegram/供應商及暫存 SQLite,涵蓋雙方同意、按鈕選 Key、權限失敗、群組與個人隔離、撤銷/刪 Key、冷卻/降級及確認流程。未進行真實 Telegram 點擊、真實 Key/付費呼叫或部署驗收。

@HeiTang
HeiTang merged commit d8fda78 into dev Nov 5, 2026
3 checks passed
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