Skip to content

Integrate quota projection into menu card and provider detail rows #3

@kmatsunami

Description

@kmatsunami

Summary

Wire the projection contract and forecast-capable progress bar API into the actual usage rows so forecast becomes visible in the menu card and provider detail UI.

This issue is the end-to-end integration step. It decides when forecast is shown on real rows, but it must consume the outputs from #6, #5, and #4 instead of recreating them.

Scope

  • Use the projection contract from #6 when a RateWindow has both windowMinutes and resetsAt.
  • Feed forecast data into shared metric rows using the fields/helpers introduced in #4.
  • Show the forecast overlay using the progress bar API introduced in #5.
  • Show compact forecast copy next to the row without regressing existing pace information.
  • Skip forecast for providers / rows that only expose textual reset descriptions and do not have enough timing info.

Non-goals

  • No new forecast math.
  • No new forecast formatting helpers.
  • No new progress bar drawing primitives beyond using the API from #5.

Files likely involved

  • Sources/CodexBar/MenuCardView.swift
  • Sources/CodexBar/PreferencesProviderDetailView.swift
  • Sources/CodexBar/StatusItemController+Menu.swift if shared wiring needs adjustment

Acceptance Criteria

  • Forecast appears on real usage rows when timing info is available.
  • Rows without concrete reset timing do not show guessed forecast.
  • Forecast and pace can coexist without copy collisions or ambiguous semantics.
  • Menu card and provider detail stay visually aligned.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions