Skip to content

Releases: PhilippPolterauer/opencode-quotas

v0.0.4-beta

19 Mar 19:50
1f3c6dd

Choose a tag to compare

v0.0.4-beta Pre-release
Pre-release

Fixed

  • Wrap injected quota footers in a fenced Markdown text block and switch the default title away from underscore italics so OpenCode Desktop preserves alignment and renders the footer cleanly.

Documentation

  • Document the new Markdown footer rendering behavior in README.md and DESIGN.md.

v0.0.3

26 Jan 19:40
773afce

Choose a tag to compare

Changed

  • Replace platform-specific build scripts with a cross-platform scripts/build.ts runner used by bun run build

Fixed

  • Fix macOS (Darwin) path handling to use XDG-style paths (~/.local/share/opencode/, ~/.config/opencode/) instead of ~/Library/Application Support/opencode/, matching OpenCode's actual file locations (fixes #4)
  • ETTL Prediction: Fix overly pessimistic time-to-limit predictions for long-term quotas (Weekly/Monthly) by ignoring short-term usage spikes in the prediction engine.
  • Robustness: Ensure QuotaService handles missing authentication files gracefully (verified by new robustness tests), preventing crashes for users with minimal setups.

v0.0.2

20 Jan 18:38
a682b8b

Choose a tag to compare

Added

  • historyResetThreshold option (0-100) to allow fine-tuning quota reset detection in HistoryService
  • End-to-end injection test that runs the OpenCode CLI when OPENCODE_QUOTAS_E2E=1 is set
  • Integration tests for default configuration behavior to prevent documentation drift
  • Schema validation tests using AJV for configuration validation
  • Tests for overlapping aggregation patterns
  • Global predictionWindowMinutes config option for prediction engine
  • Error handling for malformed history files

Changed

  • Inline footer injection: Switch from idle-based PATCH injection to inline injection via experimental.text.complete, modifying output.text directly for immediate, reliable footer display
  • Relax token splitting in QuotaService to better handle common ID characters like hyphens and underscores
  • Align showUnaggregated default to false across implementation, interface documentation, and JSON schema
  • Switch validateConfig to synchronous validation for predictable initialization
  • Deep clone aggregatedGroups defaults to prevent shared array references between default and user configurations
  • Filter out internal/test Antigravity quotas (e.g. "chat 12345", "rev123") by default to reduce noise
  • Extract SHORT_WINDOW_FALLBACK_RATIO constant in prediction engine for better code clarity
  • Comprehensive test suite expanded from 46 to 175 tests with 383 assertions
  • Updated default progressBar.color to false (was incorrectly documented as true)

Fixed

  • Include schemas/ directory in npm package, required for configuration validation
  • Resolve issue where build artifacts were sometimes nested in dist/src due to stray files in the project root
  • Updated build script to automatically clear dist/ before each build to ensure no stale files remain
  • Skip footer injection for reasoning/subagent steps and incomplete messages, keeping quota footers limited to final responses only
  • Only inject footer when message is complete (finish === "stop" or finishReason === "stop") to prevent duplicate injections during streaming
  • Fix footer injection patch payload to include required discriminator fields (type: "text")
  • Ensure ANSI colorization strictly respects config.color and is disabled by default
  • Use build configuration (tsconfig.build.json) that emits to dist/
  • Add missing predictionShortWindowMinutes default to DEFAULT_CONFIG
  • Fix overlapping aggregation patterns with token-aware matching and regex/glob support
  • Fix unused imports in src/logger.ts
  • Fix tests/test-ag.ts outdated API signature
  • Add missing patterns and providerId fields to aggregatedGroups schema
  • Fix schema mismatch between 'groups' vs 'aggregatedGroups'
  • Fix showUnaggregated default causing empty quota display
  • Improved type safety in plugin initialization by replacing any with unknown for error handling
  • Updated all unit test mocks to support the new IHistoryService interface

Documentation

  • Update DESIGN.md architecture diagram to match implementation
  • Update AGENTS.md with complete project structure
  • Clarified experimental GitHub Copilot provider status in documentation
  • Document predictionShortWindowMinutes in README config reference
  • Correct README to reflect filterByCurrentModel default is false

Removed

  • Removed unused QuotaTool and stale docs
  • Removed unused recentChecks field in PluginState

v0.0.1

13 Jan 21:37
57878fb

Choose a tag to compare