Skip to content

帳號用量:「使用中」chip 不隨帳號切換移動(追蹤的是全域 seed,不是視窗當下的帳號) #111

Description

@kiki830621

Problem

Original text:
「帳號用量那邊使用中的標籤是有問題的,切換標籤之後使用中標籤不會切換。」
— Source: user, live session 2026-08-03

帳號用量(Window(id: "account-usage"))每一列右上的「使用中」chip 釘在同一個帳號上;切換帳號之後 chip 不會跟著移動,等於這個 chip 現在指的不是「真的正在用的帳號」。

讀法的不確定性(待 diagnose 確認):原文的「切換標籤」有兩種讀法 —— (a) 切換帳號之後 chip 沒跟著換(本 issue 目前的假設);(b) 切換 macOS 視窗分頁之後 chip 沒跟著換。兩者的 Expected 不同,diagnose 時請先向使用者確認。

Type

bug

Expected

「使用中」chip 標記的是當下真正在使用的帳號;在視窗內切換帳號之後,chip 隨即移到新帳號那一列。

Actual

Chip 停在切換前的帳號,不隨切換更新。

觀察(不是 diagnosis,只是把已知事實記下來)

  • Sources/Logos/Views/Usage/AccountUsageWindow.swift:55
    account.registryAccountId == accountManager.activeAccountId 判定 isActive
  • feature: 每個視窗可綁不同帳號 — 多視窗多帳號並行 (additive) #42 的 window-local 決策,視窗內切換帳號寫的是
    WindowAccountSelection.accountId,且刻意不寫全域
    AccountManager.activeAccountId(見 AccountSwitcherSheet.selectAccount
    「A window-local switch never writes the global default」)。全域那個 id 現在只是
    新開視窗的 seed。
  • 也就是說 chip 追蹤的是一個「切換動作永遠不會改到」的值。

Impact

帳號用量是使用者判斷「我現在燒的是哪個帳號的額度」的地方。chip 指錯帳號會讓人把用量歸錯帳,尤其在多帳號輪替避開 rate limit 的情境下,誤判的成本是「以為還有額度、實際上沒有」。

Open question(留給 diagnose)

帳號用量是單一獨立視窗,但帳號是per-window#42)。所以開了多個終端視窗時,「使用中」本身是語意未定的:

  1. 反映最前景(key window)那個視窗的帳號?
  2. 允許多個 chip —— 所有「有視窗正在用」的帳號都標?(可能還要顯示視窗數)
  3. 保留現在的全域語意,但把字改成「預設 / 新視窗」,另外用別的樣式標真正在用的?

選哪一個會決定要不要把 per-window 選擇 aggregate 到一個 observable 上。

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions