Skip to content

Replace licence pacing with confidence-gated global forecasts - #7

Merged
mindtheflo merged 8 commits into
nightlyfrom
conductor/pacing-algorithm-prediction
Oct 16, 2026
Merged

mindtheflo merged 8 commits into
nightlyfrom
conductor/pacing-algorithm-prediction

Conversation

@mindtheflo

@mindtheflo mindtheflo commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Summary

Replace start-of-window/per-licence extrapolation with a global enabled-fleet forecast, separately for Codex and Claude. Individual licences now show measured quota and renewal times only.

  • Persist minimal local quota observations; use actual usage deltas, not a quota-window lifetime average.
  • Combine a last-24-comparable-hour baseline (6h half-life), a recent burst estimate (30m half-life), and learned local-hour weekday/weekend profiles. Carry Friday into Monday without weekend-zero dilution.
  • Simulate session and weekly constraints on the same account, future renewals, idle cycle starts and cooldowns. An idle weekly allowance gets a full-week horizon.
  • Show blue/green/orange only when conservative demand scenarios support the classification. Orange requires a deficit against an optimistic cumulative supply envelope, not a failed routing heuristic. Neutral on insufficient history, missing/stale readings, ambiguous availability, mixed/unknown plan capacity, or colour-boundary disagreement.
  • In OpenAI + Claude mode, bar heights use pooled weekly capacity only (86/500 = 17.2%); session limits still affect forecast colours, not fill. Provider tooltips explicitly say Weekly. Keep provider capacities separate even in combined session/weekly icon mode. Add global forecast lines and neutral reasons in English/French; remove per-licence pace text, colours and diagnostic fields.

Full equations, assumptions and confidence limits: docs/forecasting.md. Sensitivity bands are not claimed as calibrated statistical confidence intervals.

Validation

  • swift test: 63 tests passed, including bursts, weekday/weekend boundaries, inactive weekends, Monday continuity, staggered renewals, repeating sessions, coupled constraints, provider isolation and abstention.
  • bash scripts/install.sh with the existing Developer ID: release app, archive and plugin built successfully; installed app signature verified. Installed build identity is 60d6394, with no local source modifications.
  • Live read-only quota check succeeded. Both provider forecasts correctly stayed neutral while recent history is being collected. After the weekly-fill update, the latest recorded Claude weekly pool is 88/500 points, or 17.6%.
  • Native demo menu visually checked: global forecast lines, neutral measured licence bars, no individual forecasts. No real account data used in the visual check.

Test: swift run cpamc-menubar --demo --show-menu — this is a native macOS menu-bar app; there is no HTTP preview URL. Production forecasts need at least six observed comparable hours plus recent coverage after the new app starts collecting history.

Draft only; not merged or released. Installed locally at the user's request, preserving configuration, signing identity and collected forecast history. Proxy routing and enabled-account state were not changed.

@mindtheflo
mindtheflo marked this pull request as ready for review October 16, 2026 06:13
@mindtheflo
mindtheflo merged commit f082682 into nightly Oct 16, 2026
1 check passed
@mindtheflo
mindtheflo deleted the conductor/pacing-algorithm-prediction branch October 16, 2026 08:52
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