Skip to content

v0.3.0

Choose a tag to compare

@MrCesar107 MrCesar107 released this 24 Apr 12:57
· 15 commits to main since this release

Added

  • Pro-only Codex model handling: gpt-5.3-codex-spark and gpt-5.2-codex are tagged as pro_only in the Codex model catalog and render with a (Pro only) marker in the /model selector. Plus/free JWT plan claims now hide Pro-only models from the selector, while unknown plans keep the previous behavior to avoid breaking Pro users.
  • Automatic Codex model fallback: When the Codex backend rejects a model with not supported when using Codex with a ChatGPT account, the request is transparently retried against gpt-5.4 and the user is informed via a system message.
  • Provider metadata in /model: CodexModel now exposes provider metadata so the selector shows (openai) instead of (unknown).
  • Unified command catalog: New RubyCoded::Commands module with a central Catalog, CommandDefinition, and provider abstraction (CoreProvider, PluginProvider, MarkdownProvider) consolidating all slash commands in a single source of truth, replacing the hand-rolled help.txt and ad-hoc registrations.
  • Markdown custom commands: Users can now drop *.md files under ~/.ruby_coded/commands/ (or the project-local .ruby_coded/commands/) to define reusable slash commands with front-matter metadata, loaded via the new MarkdownLoader / MarkdownProvider.
  • Context window tracking: New State::ContextWindow module plus status bar integration that shows live context usage per model, driven by per-turn token tracking.

Changed

  • Status bar polish: The status bar now renders context window usage alongside the model/auth indicators and hides noisy fields when data is unavailable.
  • Command handler refactor: CommandHandler is now powered by the unified catalog (core + plugin + markdown providers) and delegates custom command execution to the new CustomCommands mixin.

Fixed

  • Context window indicator for ChatGPT Plus/Pro users: CodexBridge now parses the response.completed SSE event and feeds input/output/reasoning/cached token usage into State, mirroring the API path. session_context_tokens_used reflects the last turn's live prompt size via the new State#last_turn_context_tokens helper, eliminating the double-counting that happened because both bridges re-send the full history on each request.