Skip to content

Codex - #18

Merged
Greem4 merged 5 commits into
mainfrom
codex
Aug 30, 2026
Merged

Greem4 merged 5 commits into
mainfrom
codex

Conversation

@Greem4

@Greem4 Greem4 commented Aug 30, 2026

Copy link
Copy Markdown
Owner

No description provided.

Greem4 and others added 5 commits August 30, 2026 00:21
В заголовке панели две кнопки переключают сервис. Для 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
@Greem4
Greem4 merged commit c610fd2 into main Aug 30, 2026
1 check 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