Skip to content

Releases: YeoJeongHun1/ai-status-bar

v1.3.1 — Windows 바 위치 흔들림·호버 카드 수정 / Windows bar jitter & hover card fix

Choose a tag to compare

@YeoJeongHun1 YeoJeongHun1 released this 29 Sep 01:36

v1.3.1 — Windows 바 위치 흔들림 · 호버 카드 잔존 수정

(English below)

고친 것 (Windows)

  • 바가 작업 표시줄에서 왔다 갔다 하던 문제. 일부 환경에서 «캡처 제외» 로 설정한 바 창이 화면 캡처에 순흑으로 찍혀, 바가 자기 자신을 «내용» 으로 셌습니다. 그 결과 첫 빈 공간이 바 양옆 조각으로 쪼개지고 20초 재측정마다 두 조각을 오가며, 표시 단계(모두 동시에 ↔ 숫자만)와 «빈 공간 부족» 알림까지 되풀이됐습니다.
    • 이제 바 자리의 «캡처 구멍» 은 빈 공간으로 칩니다 (밑이 비쳐 찍히는 환경은 그대로).
    • 바 여백까지 다른 내용이 들어오면 즉시 옮기고, 그 밖의 재측정 결과는 3초 뒤 한 번 더 재서 같을 때만 반영합니다. 몇 px 흔들림으로는 움직이지 않습니다.
  • 호버 카드가 마우스를 치운 뒤에도 남던 문제. 커서가 항목 사이의 투명한 틈을 지나 바를 벗어나면 «나갔다» 신호가 오지 않아 카드가 남고, 자동 슬라이드·재측정도 멈췄습니다. 이제 실제 커서 위치를 0.25초마다 확인해 바를 벗어나면 닫습니다. 잠금·전체화면·설정 창 열기·바 이동 때도 카드를 닫습니다.

검증

  • 실기(작업 표시줄 아이콘이 많은 듀얼 모니터 Windows 11), 3분 · 1초 간격: 이전 판은 위치 9회 변경 · 표시 전환 9회 → 이번 판 0회 · 알림 0회.
  • 실제 마우스 입력으로 호버 이탈 6가지 경로: 이전 판은 2가지에서 카드가 남음 → 이번 판 전부 0.3초 안에 닫힘.
  • 회귀 테스트 추가(tests/test_placement.py · tests/test_hover.py). 검수 하네스 107항목 통과.

macOS

코드 변경 없음 — macOS 판은 v1.3.0 의 AIStatusBar-1.3.0-macos-arm64.zip 을 그대로 쓰세요.

받는 법: AIStatusBar-1.3.1-win64.zip 을 풀어 기존 폴더에 덮어쓰면 설정이 유지됩니다. .sha256 으로 검증할 수 있습니다 (certutil -hashfile AIStatusBar-1.3.1-win64.zip SHA256). 서명 없는 exe 라 SmartScreen 이 뜨면 «추가 정보 → 실행».


English

Fixed (Windows)

  • The bar kept jumping around on the taskbar. On some systems the capture-excluded bar window shows up in screen captures as solid black, so the bar counted itself as taskbar content. The first free gap split into the pieces left and right of the bar, and every 20-second re-measure moved it between them, flipping the display tier (all ↔ numbers) and repeating the "not enough space" notification.
    • The bar's own capture hole now counts as free space (systems where the window is see-through are unaffected).
    • If something reaches the bar's margin it moves at once; any other re-measure result is adopted only if a second measurement 3 s later agrees, and a few pixels of jitter never move it.
  • The hover card stayed after the mouse left. Leaving the bar through a transparent gap between items produced no final "leave" signal, so the card stayed and auto-slide/re-measure paused. The real cursor position is now checked every 0.25 s and the card closes once it is off the bar; it also closes on lock, full-screen, opening settings, or when the bar moves.

Verification

  • Real machine (dual-monitor Windows 11, busy taskbar), 3 minutes at 1 s: previous build 9 position changes / 9 tier flips → this build 0, no notifications.
  • Real mouse input over six ways of leaving the bar: previous build left the card up in two → this build closes it within 0.3 s in all six.
  • New regression tests (tests/test_placement.py, tests/test_hover.py); the 107-check review harness passes.

macOS

No code changes — keep using AIStatusBar-1.3.0-macos-arm64.zip from v1.3.0.

Install: unzip AIStatusBar-1.3.1-win64.zip over your existing folder (settings are kept). Verify with the .sha256 file. The exe is unsigned; if SmartScreen appears choose "More info → Run anyway".

v1.3.0 — macOS 메뉴 막대 판 / macOS menu bar version

Choose a tag to compare

@YeoJeongHun1 YeoJeongHun1 released this 29 Aug 08:38
a88a7e9

v1.3.0 — macOS 메뉴 막대 판 초판 / first macOS menu bar release

(English below)

macOS (신규)

Windows 판과 같은 값(Claude Code · Codex 구독의 5시간 / 7일 사용률)을 메뉴 막대에 상시 표시합니다 — [▬▬░░] 5h 23% · 7d 66%.

  • 2줄 미니 막대 + 숫자(초록/노랑/빨강), 표시 방식 4종(모두 동시에 / 하나씩 / 자동 슬라이드 / 고정), 캐러셀 점, 폭에 따른 3단계(막대+숫자 → 숫자만 → ›)와 넘침 정책, 계정 라벨·라벨 색·모델별 한도.
  • 클릭 메뉴 맨 위 항목 카드(서비스 · 계정 · 플랜 · 창별 막대·%·리셋 현지시각 · 마지막 조회 · 오류). ⌥클릭 = 다음 항목/새로고침, ⌘클릭 = 새로고침, ⇧클릭 = 설정.
  • 네이티브 설정 창 5탭(항목 / 표시·스타일 = 라이브 미리보기 + 프리셋 6종 / 데이터 / 시작·언어 / 정보), 로그인 시 자동 시작(LaunchAgent), 5개 언어.
  • Claude 토큰은 macOS 키체인(«Claude Code-credentials»)에서 Apple 기본 도구 /usr/bin/security 로 읽습니다 — 읽기만, 저장·로그 없음. 처음 한 번 «허용 / 항상 허용» 다이얼로그가 뜰 수 있습니다 → 항상 허용. 그때까지 «키체인 접근 허용 필요» 로 표시되고 앱은 계속 돕니다.
  • 공식 모드(statusline_export.sh, 네트워크 0)·80/95% 알림·조회 하한 60초·백오프·리다이렉트 금지·허용 호스트 — Windows 와 같은 코드.

요구 사항 — Apple Silicon(arm64) · macOS 26 이상. 번들에 든 Homebrew Python 3.14 의 최소 요구입니다. Intel 이나 그 이하 macOS 는 소스 설치(zsh mac/install.sh, Python 3.11+)로 쓰세요.

설치 — AIStatusBar-1.3.0-macos-arm64.zip 을 Finder 더블클릭 또는 ditto -x -k …zip . 으로 풀고(unzip 도 됨) AI Status Bar.app 을 ~/Applications 에. 검증: shasum -a 256 -c AIStatusBar-1.3.0-macos-arm64.zip.sha256.

Gatekeeper — Developer ID 서명이 없는(ad-hoc) 개인 오픈소스라 처음 열면 «확인할 수 없습니다» 로 차단됩니다 → 시스템 설정 › 개인정보 보호 및 보안 › «그래도 열기» 후 다시 실행(macOS 15+ 에서는 우클릭 → 열기가 통하지 않습니다). 또는 xattr -d com.apple.quarantine "AI Status Bar.app". 소스로 설치하면 경고가 없습니다.

Windows

Windows 는 1.2.0 과 동일합니다(코드 변경 없음). AIStatusBar-1.3.0-win64.zip 은 GitHub Actions(windows-latest)에서 build.cmd 로 빌드해 이 릴리스에 첨부했습니다 — .sha256 으로 검증할 수 있습니다.

알려진 한계

  • 넘침(폭 부족) 감지는 «우리 항목이 화면 밖으로 밀렸나» 만 봅니다 — Windows 처럼 빈 공간 px 을 재지 못합니다(설정 «최대 폭 pt» 로 고정 가능).
  • macOS 에서 Claude 계정 여러 개는 폴더별 .credentials.json 이 있을 때만(키체인 항목은 사용자당 하나).
  • 서명은 ad-hoc — 공증 없음. 알림은 «AI Status Bar» 이름으로 뜹니다.

검증

  • pytest tests --ignore=tests/test_settings.py(macOS): 74 passed. 번들: unzip 후 codesign --verify --deep --strict OK, 배포물에 빌드 머신 경로 없음, LSMinimumSystemVersion = 26.0, arm64.

English

macOS (new)

The same numbers as the Windows version (Claude Code · Codex 5-hour / 7-day usage) in the menu bar — [▬▬░░] 5h 23% · 7d 66%.

  • Two-line mini bars + numbers (green/yellow/red), four display modes (all / one at a time / auto slide / pinned), carousel dots, three width tiers (bars+numbers → numbers → ›) with overflow policy, account label, label color, per-model caps.
  • Entry cards at the top of the click menu (service · account · plan · bars, % and local reset time per window · last fetch · error). ⌥-click = next entry / refresh, ⌘-click = refresh, ⇧-click = settings.
  • Native settings window with five tabs (Entries / Display & style with live preview and six presets / Data / Startup & language / About), start at login (LaunchAgent), five languages.
  • The Claude token is read from the macOS Keychain («Claude Code-credentials») with Apple's /usr/bin/security — read only, never stored or logged. macOS may ask «Allow / Always Allow» once → choose Always Allow; until then the app shows «Keychain access needed» and keeps running.
  • Official mode (statusline_export.sh, zero network), 80/95% notifications, 60 s poll floor, backoff, no redirects, host allow-list — the same code as Windows.

Requirements — Apple Silicon (arm64) · macOS 26 or later (the minimum of the Homebrew Python 3.14 inside the bundle). Intel or older macOS: install from source (zsh mac/install.sh, Python 3.11+).

Install — extract AIStatusBar-1.3.0-macos-arm64.zip by double-clicking in Finder or ditto -x -k …zip . (unzip works too) and put AI Status Bar.app into ~/Applications. Verify: shasum -a 256 -c AIStatusBar-1.3.0-macos-arm64.zip.sha256.

Gatekeeper — no Developer ID signature (ad-hoc only), so the first launch is blocked with «could not verify» → System Settings › Privacy & Security › «Open Anyway», then launch again (on macOS 15+ right-click → Open no longer works). Or xattr -d com.apple.quarantine "AI Status Bar.app". A source install shows no warning.

Windows

Identical to 1.2.0 (no code changes). AIStatusBar-1.3.0-win64.zip is built by GitHub Actions (windows-latest) with build.cmd and attached to this release — verify with the .sha256 file.

Known limitations

  • Overflow detection only knows whether the item was pushed off-screen — it cannot measure free pixels like the Windows version (a fixed «max width (pt)» setting is available).
  • Several Claude accounts on macOS only with per-folder .credentials.json files (one Keychain item per user).
  • Ad-hoc signature, not notarized. Notifications appear under the «AI Status Bar» name.

Verification

  • pytest tests --ignore=tests/test_settings.py on macOS: 74 passed. Bundle: codesign --verify --deep --strict OK after unzip, no build-machine paths inside, LSMinimumSystemVersion = 26.0, arm64.

v1.2.0

Choose a tag to compare

@YeoJeongHun1 YeoJeongHun1 released this 28 Aug 15:20

v1.2.0 — 보안·정직성 릴리스

외부 코드 리뷰에서 지적된 항목을 반영했습니다.

보안

  • 사용량 요청이 리다이렉트를 절대 따라가지 않습니다. 30x 응답이 오면 요청을 끊고 ⚠ 로 표시합니다 — 토큰이 다른 호스트로 전달될 가능성을 차단(테스트로 실증). 허용 호스트는 api.anthropic.com·chatgpt.com 뿐.
  • 새로고침 폭주 방지: 폴링 하한 60초, 수동 새로고침 10초 디바운스, 429 Retry-After 존중 + 5xx/네트워크 오류 지수 백오프(최대 30분). 툴팁에 «다음 조회 시각».

README 를 코드와 일치시킴

  • 공식 모드는 Claude Code 가 statusline_export.ps1 을 실행한다는 점과 그 이유를 정확히 기술.
  • 공식 모드 저장 파일은 사용량 필드만(작업 폴더·트랜스크립트·세션 ID 는 저장하지 않음), «상태줄 연결 해제» 시 파일 삭제.
  • 제거 절차: 상태줄 연결 해제 → 자동 시작 끄기 → 폴더 삭제 (--unlink-statusline 플래그 추가).
  • 넘침 알림은 실제로 1회(히스테리시스).

고지·안정성

  • 약관 고지: 비공식 엔드포인트 사용은 각 서비스 약관상 계정 제한 사유가 될 수 있습니다 — README·첫 실행 창·정보 탭(5개 언어). 걱정되면 공식 모드를 쓰세요.
  • 위젯 경계 감지(UIA) 안전화: 인터페이스·AutomationId 검증, 실패 시 픽셀 측정으로 폴백.
  • 크래시 로그(%LOCALAPPDATA%\AIStatusBar\logs\error.log, 토큰·사용자명 마스킹), 설정 저장 원자화, 시각 파싱 수정, 릴리스에 SHA-256 첨부, 영문 README 를 한국어와 동등하게.

받는 법: AIStatusBar-1.2.0-win64.zip 을 풀고 AIStatusBar.exe 실행(기존 폴더에 덮어쓰면 설정 유지). .sha256 으로 파일 검증 가능. 서명 없는 exe 라 SmartScreen 은 «추가 정보 → 실행».

English

Security/honesty release: requests never follow redirects (host allow-list; proven by test), refresh flood protection (60s floor, 10s debounce, Retry-After + exponential backoff), README now matches the code (official mode stores usage fields only and PowerShell is launched by Claude Code, removal order, one-time notification), Terms-of-Service notice in 5 languages, hardened UIA widget-boundary detection with fallback, crash log with masking, atomic settings save, SHA-256 on releases, English README parity.

v1.1.0

Choose a tag to compare

@YeoJeongHun1 YeoJeongHun1 released this 28 Aug 07:23

v1.1.0

사용자 피드백을 모아 반영한 UX 릴리스입니다.

  • 바는 최소 정보만 — 5h/7d 막대·%·리셋 시각. 서비스·계정은 항목 위에 마우스를 올리면 카드 툴팁으로 (서비스 칩 · 계정 · 미니 막대 · 모델별 한도 · 플랜 · 마지막 조회). 5개 언어 모두 넘침 없음.
  • 호버 강조 — 항목 위에서 은은한 하이라이트, 클릭 가능하면 손 커서. 호버 중에는 자동 슬라이드가 멈춥니다.
  • 캐러셀 — «클릭으로 전환/자동 슬라이드» 에서 항목 어디를 눌러도 다음 항목, 왼쪽 끝 페이지 점(● ○)으로 현재 위치 표시·점 클릭 점프. 움직이는 버튼 없음 («전환 표시: 점 / 왼쪽 ⇄ / 없음» 선택).
  • 설정 창 재설계 — 상단 라이브 미리보기(값을 바꾸면 즉시 반영) + 탭(항목 / 표시·스타일 / 데이터 / 시작·언어 / 정보) + 프리셋 카드 6장(각 카드에 그 설정의 미리보기). «저장» 은 창을 닫지 않고 적용만.
  • 위젯과 겹치지 않음 — 작업 표시줄 위젯 버튼 경계를 정확히 읽고(외부 프로세스 없이) 여백 확보, 20초 재측정, 2초마다 바 밑 감시.
  • 위치 «왼쪽 고정»(기본) — 다른 빈 공간으로 건너뛰지 않음. 공간이 부족하면 정책대로(한 항목씩 자동 슬라이드 / 숫자만+… / 접힘) 임시 전환하고 트레이 알림 1회, 공간이 돌아오면 조용히 복귀.
  • 실제 마우스 버그 수정 — 호버 깜빡임, 같은 자리 연속 클릭 불가, 클릭 시 바가 사라지는 문제 (실제 OS 입력으로 검증).

받는 법: AIStatusBar-1.1.0-win64.zip 을 풀고 AIStatusBar.exe 실행 (기존 폴더에 덮어쓰면 설정 유지). 서명 없는 exe 라 SmartScreen 은 «추가 정보 → 실행».

English

UX release: minimal bar (bars · % · reset), card tooltip on hover with service/account/plan, hover highlight, carousel with page dots (click entry to advance, click dot to jump), redesigned settings with live preview and presets (Save keeps the window open), precise taskbar-widget boundary (no overlap), fixed-left placement with an overflow policy and a one-time notification, and real-mouse bug fixes (hover flicker, dead repeated clicks, bar vanishing on click) verified with real OS input. Unzip and run AIStatusBar.exe.

v1.0.0

Choose a tag to compare

@YeoJeongHun1 YeoJeongHun1 released this 28 Aug 04:32

AI Status Bar 1.0.0

Windows 작업 표시줄의 빈 공간에 AI 구독 사용량(5시간 / 주간 한도)을 상시 표시합니다.

  • 서비스: Claude Code(비공식 API 모드 + 공식 상태줄 모드) · Codex / ChatGPT 구독(비공식 API 모드)
  • 항목 = 서비스 × 계정: 자동 탐색 + 폴더 직접 지정, 계정 여러 개 동시
  • 표시 방식: 모두 동시에 / 클릭으로 전환 / 자동 슬라이드 / 하나 고정 · 배지·라벨·막대 스타일·색 커스텀
  • 투명·클릭 통과 바, 빈 공간 자동 배치, 깜빡임 없음, 전체화면 앱 자동 숨김, 트레이 아이콘
  • 설정 창 · «내 계정이 안 떠요» 안내 · 언어 5종(한국어·English·日本語·Português·Español)
  • 폴더 zip 배포(설치 프로그램·레지스트리·자기 복사 없음), 버전 정보 포함, Defender 로컬 스캔 위협 0

받는 법: AIStatusBar-1.0.0-win64.zip 을 풀고 AIStatusBar.exe 실행 → 시작 설정 창에서 «시작». 각 서비스 CLI(claude / codex)로 이 PC 에서 로그인돼 있어야 합니다.
코드 서명이 없어 SmartScreen 이 막으면 «추가 정보 → 실행». 동작 방식(어떤 파일을 읽고 어떤 요청을 보내는지)은 README 에 전부 적혀 있습니다. 이 앱은 Anthropic·OpenAI 와 무관한 개인 오픈소스입니다.

English

AI subscription usage (5-hour / weekly windows) on the Windows taskbar — Claude Code (unofficial API + official status-line mode) and Codex / ChatGPT (unofficial API). Multiple accounts, four display modes (all / click / slide / pinned), style options, 5 languages. Unzip and run AIStatusBar.exe; requires being logged in via the claude / codex CLIs. Unsigned — SmartScreen: More info → Run anyway. Not affiliated with Anthropic or OpenAI.