Skip to content

feat: CrossUsage 1.1.0 Insights Plus#5

Merged
barramee27 merged 2 commits into
feat/linux-windows-native-supportfrom
feat/release-1.1.0-insights-plus
Jun 7, 2026
Merged

feat: CrossUsage 1.1.0 Insights Plus#5
barramee27 merged 2 commits into
feat/linux-windows-native-supportfrom
feat/release-1.1.0-insights-plus

Conversation

@barramee27
Copy link
Copy Markdown
Owner

@barramee27 barramee27 commented Jun 7, 2026

Summary

CrossUsage 1.1.0 (“Insights Plus”) — local-only usage intelligence on top of probe + history data, plus Cursor Nightly as a separate provider, A–Z provider sorting, and ports from OpenUsage v0.6.27.

Version bump: package.json + src-tauri/tauri.conf.json1.1.0
CHANGELOG: CHANGELOG.md ## 1.1.0 section documents everything below (lands with this PR).


What we added

1. Usage insights banner (home panel)

Item Detail
Component src/components/usage-insights-banner.tsx
Logic src/lib/usage-insights.ts, src/lib/primary-progress-line.ts
Behavior Surfaces providers behind pace, tightest remaining quota, next reset
Pace alerts Burn-rate warnings when primary progress line is low and projected to exhaust before reset
v2 polish Click insight → open provider detail; dismiss per row (src/lib/insight-dismiss.ts); split token vs cost deltas
Sparkline 7-day aggregated token sparkline from local usage_daily (src/lib/usage-daily-sparkline.ts)
30-day rollup Weekly rollup row (src/hooks/use-weekly-rollup.ts, src/lib/weekly-rollup.ts)

2. History persistence + export + local API

Item Detail
Persist hook src/hooks/use-persist-usage-history.ts — writes quota snapshots + daily token rows locally
CSV export Settings → export quota snapshots + daily tokens (src/lib/history-export.ts)
Export UX Folder picker via @tauri-apps/plugin-dialog; UTF-8 BOM; billing USD columns via cursor_billing ingest
Permissions src-tauri/capabilities/default.json: fs:allow-write-text-file, fs:allow-home-write-recursive, dialog:allow-open
Local HTTP API GET /v1/history/quota, GET /v1/history/daily (Rust handlers + docs in docs/)
Tests src/lib/history-export.test.ts, API tests in src-tauri

3. Cursor billing / usage stats in GUI

Item Detail
Panel src/components/cursor-usage-stats-panel.tsx on provider detail
Backend crates/crossusage-core/src/cursor_usage_export.rs — MTD totals, usage-stats table, billing ingest
Cache 45-minute in-memory cache for Cursor dashboard CSV export
CLI parity Same data as crossusage-cli usage-stats / billing paths

4. Spend spike alert (opt-in)

Item Detail
Hook src/hooks/use-spend-spike-alert.ts
Settings Toggle in Settings; compares 7-day estimated local spend vs prior week
Prefs src/stores/app-preferences-store.ts

5. Cursor Nightly — separate provider

Item Detail
Plugin plugins/cursor-nightly/ (plugin.json, plugin.js, icon.png)
Paths crates/crossusage-core/src/cursor_paths.rs — Stable vs Nightly DB paths (~/.config/Cursor vs ~/.config/Cursor Nightly on Linux)
Registration plugins/cursor/plugin.js uses __OPENUSAGE_PLUGIN_REGISTRATION_ID__; copy-bundled.cjs generates nightly bundle from cursor
GUI src/pages/provider-detail.tsx treats cursor-nightly as Cursor family
Icon fix src/components/provider-icon.tsx + src/lib/provider-icon-url.ts — raster PNG icons as <img> (not CSS mask); manifest.rs supports image/png data URLs; brand color #E85D3A
Not default-enabled Only cursor in DEFAULT_ENABLED_PLUGINS; enable Nightly in Settings

6. Provider list A–Z

Item Detail
Sort sortPluginOrderAlphabetically() in src/lib/settings.ts, applied in normalizePluginSettings()
Tests src/lib/settings.test.ts updated

7. Linux .deb dependencies (folder picker + export)

Added to src-tauri/tauri.conf.json deb Depends:

  • libgtk-3-0
  • xdg-desktop-portal
  • xdg-desktop-portal-gtk | xdg-desktop-portal-gnome | xdg-desktop-portal-cosmic

8. Ports from OpenUsage v0.6.27

Upstream Change
#554 Devin — auth from Devin - Next app (plugins/devin/plugin.js + tests)
#557 macOS panel — clamp to visible screen when menu bar auto-hides (src-tauri/src/panel.rs)
#559 macOS keychain — optional account on readGenericPassword(service) (host_api.rs + test)
#552 Plugins — remove retired Windsurf from app data on startup (plugin_engine/mod.rs + tests)
Deps serial_test 3.5 in src-tauri/Cargo.toml + crossusage-core dev-deps

9. CLI fix

  • fetch_cursor_month_to_date_totalsfetch_cursor_month_to_date_totals_for_plugin in crates/crossusage-cli/ (plugin-id aware for Stable vs Nightly)

10. Docs + README

  • CHANGELOG.md — full ## 1.1.0 section
  • README.md — Insights Plus, Cursor Nightly, history API/export
  • docs/ — local API endpoints for history

Files changed (high level)

71 files, +5869 / −857 lines

New Rust: cursor_paths.rs, cursor_usage_export.rs
New plugin: plugins/cursor-nightly/
New frontend: insights banner, cursor usage panel, provider icon, history export, weekly rollup, spike alert hooks/libs + tests
Touched: src-tauri (capabilities, deb deps, history API, manifest PNG, panel, host_api, plugin engine), plugins/cursor, plugins/devin, settings pages, app preferences store

Not in this PR: release binaries (.exe, .deb, AppImage, releases/*), local keys (.tauri/), junk untracked files.


Test plan

  • bun run test — 1346+ passed
  • cargo test -p crossusage-core cursor_ — cursor paths + export
  • plugins/devin/plugin.test.js — 18/18 (Devin Next auth)
  • Local .deb build: crossusage_1.1.0_amd64.deb (updater signing may fail without private key; deb still produced)
  • Manual: home panel insights banner (pace, sparkline, 30d rollup, dismiss, click-through)
  • Manual: Settings → export CSV to chosen folder (portal/GTK on Linux)
  • Manual: Cursor + Cursor Nightly provider detail → billing table + correct icons
  • Manual: enable Cursor Nightly in Settings; verify ~/.config/Cursor Nightly path
  • Manual: GET /v1/history/quota + /daily on local API port
  • Manual: provider list sorted A–Z in Settings/nav
  • Manual: spend spike alert toggle (opt-in)

After merge

  1. Tag v1.1.0 and GitHub Release when approved (not in this PR).
  2. Rebuild platform bundles; attach .deb / Windows onefile as needed.
  3. Users with existing installs: copy or sync cursor-nightly plugin into app data if not bundled in updater path.

Made with Cursor

….6.27 port

Ship local usage insights, history export/API, separate Cursor Nightly provider,
GUI billing stats, and OpenUsage v0.6.27 fixes. Bump app version to 1.1.0.

Co-authored-by: Cursor <cursoragent@cursor.com>
notify-rust links against dbus-1 on Linux; CI runners lack the dev package.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added the ci label Jun 7, 2026
@barramee27 barramee27 self-assigned this Jun 7, 2026
@barramee27 barramee27 merged commit c26a056 into feat/linux-windows-native-support Jun 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant