Skip to content

feat: add linear graph view with ideal usage pace indicator#19

Open
yenpvn wants to merge 4 commits intof-is-h:mainfrom
quangyendn:main
Open

feat: add linear graph view with ideal usage pace indicator#19
yenpvn wants to merge 4 commits intof-is-h:mainfrom
quangyendn:main

Conversation

@yenpvn
Copy link
Copy Markdown

@yenpvn yenpvn commented Jan 11, 2026

Summary

Add configurable graph display modes (circular/linear) with pace guidance to help users optimize their Claude usage rate and stay within session limits.

image image

Changes

  • Add new GraphDisplayType enum with circular and linear options for usage graph display
  • Add graphDisplayType setting to UserSettings with persistence support
  • Add localization strings for graph type options in all supported languages (EN, JA, KO, ZH-Hans, ZH-Hant)

Test plan

  • Verify the setting persists across app restarts
  • Verify localized strings display correctly in all supported languages
  • Verify reset to defaults sets graph type to circular
  • Verify the graph display correctly during all the sessions

- Add GraphDisplayType enum with circular/linear cases
- Add graphDisplayType @published property to UserSettings
- Add localization strings for all 5 languages
- Foundation for Phase 2-5 of linear usage graph feature
- Add LinearUsageGraphView component with ideal pace reference line
- Add graph style picker in GeneralSettingsView
- Add localization strings for graph style settings
- Refactor UsageDetailView to support both circular and linear graphs
- Update gitignore to exclude Claude files
- Widen graph (262x100pt) to fill container width
- Remove center "Proj: XX%" metrics overlay
- Add percentage labels directly at each data dot
- Add boundary checks to prevent label clipping at edges
- Change empty state to rounded rectangle (matches rectangular graph)
@yenpvn yenpvn changed the title feat: add GraphDisplayType setting for linear usage graph feat: add linear graph view with ideal usage pace indicator Jan 11, 2026
@ArthurD
Copy link
Copy Markdown

ArthurD commented Mar 2, 2026

+1, this would be useful to me!

Having it be optional is great for users who aren't pushing the limits of their plan and/or who don't want the extra info.

I also quite like the UI choice -- it's a clean display that adds quite a bit of new useful info (pace/trajectory plus current actual % value), and does so without adding clutter or ambiguity.

I'd definitely really like to see this merged!

@f-is-h
Copy link
Copy Markdown
Owner

f-is-h commented Mar 20, 2026

Hi, thanks for working on this! The linear graph idea is interesting.

A few things to clean up:

  1. The .serena/ directory and its contents shouldn't be included. That looks like local tooling config.

  2. The .gitignore changes (adding .claude and CLAUDE.md) should be reverted. Those are unrelated to this feature.

  3. Please don't modify the signing config (CODE_SIGN_STYLE, CODE_SIGN_IDENTITY) in project.pbxproj.

  4. The graph component and settings are added, but I don't see where the linear view is actually wired into UsageDetailView. Could you add the UI integration so users can switch between circular and linear?

Also, since it's been a while, you may need to rebase onto the latest main to resolve any conflicts.

Thanks!

@quangyendn
Copy link
Copy Markdown

quangyendn commented Apr 3, 2026

Hi @f-is-h
Apologies for the long period of inactivity.
Given the complexity of updating this PR, I’ve opened #39 instead, which will replace this one — it also cleans up unnecessary .serena/ configuration files and fork-specific .gitignore entries.

Thanks!

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.

4 participants