Skip to content

feat: add OpenCode activity and modernize UsageBeam - #7

Merged
oo7kc merged 7 commits into
mainfrom
dev
Oct 9, 2026
Merged

oo7kc merged 7 commits into
mainfrom
dev

Conversation

@oo7kc

@oo7kc oo7kc commented Oct 9, 2026

Copy link
Copy Markdown
Owner

UsageBeam gains optional OpenCode activity, a cleaner native GNOME interface, and a maintainable architecture for the existing provider and collection behavior.

What changed

  • Add read-only OpenCode SQLite activity with daily and per-model totals, explicit unsupported states, bounded collection, cancellation, and private derived caching.
  • Follow GNOME Shell system surfaces so light/dark themes and configured popup blur style the menu naturally.
  • Center the combined UsageBeam/calendar group on its monitor across display sizes, scaling, neighboring center actors, work-area offsets, and RTL allocation.
  • Simplify model totals, compact the Activity disclosure, strengthen typography, balance panel padding, and preserve stable panel width across provider/value changes.
  • Expand preferences for provider enablement, ordering, defaults, refresh, alerts, retention, and safe derived-data clearing.
  • Split provider metadata, usage validation, history cache/reader, snapshots, subprocesses, RPC, refresh policy, and panel presentation into focused modules with enforced dependency boundaries.
  • Add development documentation and stricter syntax, named-import, dependency-cycle, schema, layout, and packaging checks.

Validation

  • npm run check — 51 Node tests, GJS integration suites, and 9 Python SQLite tests.
  • npm run test:stress — 16 synthetic history, cache, notification, subprocess, RPC, bounds, and cancellation cases.
  • npm run pack — deterministic allowlisted extension archive.
  • Exact-head GNOME smoke passed in native light/dark themes with SF Pro 10 @opsz=17, preferences construction, and disable/re-enable lifecycle.
  • Exact-head 1024×600 stress profile passed its UI assertions, 100 refresh/provider/expand cycles, and 10 disable/re-enable cycles.
  • Broader display testing across the change covered 1024×600 through 2560×1080, 1×/1.25×/2× scaling, large text, fallback fonts, side docks, RTL allocation, and primary-monitor changes.

No settings keys, usage/cache schema versions, provider token semantics, or extension identity changed.

Inherit the configured GNOME font, stabilize panel sizing, and simplify provider, chart, and model presentation. Add provider ordering, alert and retention settings, and safe saved-data reset with migration and packaged preferences coverage.
Split core contracts, collection, persistence, RPC, and panel presentation into focused modules. Follow GNOME system surfaces, refine panel and activity layout, and expand deterministic UI and repository verification.
@oo7kc
oo7kc merged commit e5c69d3 into main Oct 9, 2026
2 checks 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