Conversation
В заголовке панели две кнопки переключают сервис. Для Codex приложение запускает codex app-server, берёт короткое и недельное окна, моменты сброса и дневную токенную форму; длину короткого окна показывает такой, какой её сообщил сервер. Выбранный сервис переживает перезапуск. Снимок каждого аккаунта живёт отдельно: в памяти ключом служит UsageAccount, на диске у Codex свои codex-cache.json и codex-alerts.json. Запоздалый ответ старого провайдера отсекает поколение обновления в StatusItemController. Флаг --account=claude|codex выбирает сервис и для --json. Обновил README, docs/API.md, docs/ARCHITECTURE.md, docs/USAGE.md и журнал. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cnw6tgByHoBX8xPWN3dawq
Codex датирует дневные токенные бакеты по тихоокеанской зоне биллинга. cumulativeByDay раскладывал их по датам местного календаря окна, и в первые местные сутки недели единственный бакет выпадал за левую границу окна: total выходил нулевым, вся дневная форма становилась nil, а строка дня показывала «— / план» вместо точного недельного процента. Теперь каждый бакет — это интервал [полночь Pacific, +сутки), и токены раскладываются по суткам окна пропорционально реальному перекрытию во времени. Если перекрытия нет ни у одних прошедших суток, точный недельный процент вешается на последние из них, а не прячется за прочерками. Проверено на живом codex app-server: строка «сегодня» стала 21 / 14 % вместо — / 14 %. Обновил docs/API.md и счётчик тестов в README и ARCHITECTURE (477 → 528). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cnw6tgByHoBX8xPWN3dawq
Ближайшие SF Symbols — звёздочка и «</>» — сервис не называли, а намекали на него. Вместо них в кнопках стоят сами знаки: PNG в ресурсах таргета приложения, шаблонные, поэтому красятся под тему и под выбранное состояние. Кнопки заодно сведены в общую рамку — выбранный сервис виден по подложке и чёрточке под знаком, а не по одиночной обводке кружка. Ресурсы у таргета появились впервые, и `make-app.sh` теперь кладёт бандл SwiftPM в `.app`. Без него `Bundle.module` обрывается fatalError'ом ещё до отрисовки панели, так что ненайденный бандл останавливает сборку, а не уезжает в релиз молча. Обновил CHANGELOG, docs/USAGE.md, docs/ARCHITECTURE.md и AGENTS.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jjfp3AoEy2b6YCKfDKoLT7
Знаки Claude/Codex в заголовке панели были кнопками с рамкой, подложкой и чёрточкой под выбранным — тяжеловесно для двух значков рядом с надписью. Теперь это просто знаки без рамок и подложек: выбранный сервис виден по цвету (у Claude фирменный оранжевый, у Codex — цвет текста), невыбранный гаснет до серого. Вертикально они выровнены не числом-заглушкой, а центром строки текста: Theme.textCenterAboveBaseline считается по подъёму и спуску системного шрифта меню, так что знаки не поедут при другом кегле. Заодно поправил баг с полосами: при переключении на разбивку по моделям и обратно они на кадр отрисовывались выше своего места и съезжали вниз. Панель растёт от строки меню вниз, и после смены высоты содержимого кромку возвращает pinToAnchor — он висел на didResizeNotification с queue: .main, то есть срабатывал следующим проходом цикла, а не в момент самого уведомления. Между ними и проскакивал лишний кадр со старым положением. Подписка стала синхронной (queue: nil). Обновил CHANGELOG, docs/ARCHITECTURE.md и docs/USAGE.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jjfp3AoEy2b6YCKfDKoLT7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.