Move agent detection into the client list, simplify usage filters and pagination, and route interface text through the shared type scale. Subpage navigation now uses underlined tabs instead of segmented controls.
Darken secondary text on white surfaces, keep long labels readable, and move the OAuth browser picker and quota actions onto existing rows instead of separate lines.
Use the home page background across pages, remove redundant titles, and match the usage records tabs and filters to the shared controls. Move the API refresh and add actions beside search, and drop the standalone provider total.
Adopt a white theme, add home-page shortcuts, and show usage metrics with color-coded details, automatic units, and explicit estimated-cost coverage. Update the README screenshots.
Keep core config writes on the watched file so repeated saves take effect.
Recover credentials from the update backup when the new macOS app has an empty OAuth directory.
Complete the v0.3.11 release notes in four languages.
Prefer diskutil eject with retries and a compatibility fallback. Defer failed cleanup without blocking verified updates, preserve mounted directories, and add regression tests.
- Extend OAuth directory recovery to Windows and Linux
- Align credential path resolution and log directory selection with the core
- Update v8 TLS and logging fields without requiring a version marker
- Support flow-style YAML mappings and preserve null legacy TLS fields
- Add regression tests for path recovery and config updates
- Normalize auth paths before comparison and credential scanning
- Update effective v8 auth-dir fields without requiring a version marker
- Preserve active credentials and configuration when recovery fails
- Add regression tests for config reloads and v7-to-v8 upgrades
- Default absent optional config nodes to empty values without hiding other errors
- Normalize empty parent mappings to prevent alias save and rollback conflicts
- Add regression tests for missing config, first-time alias creation, and rollback