Skip to content

CLI gaps for the Windows Companion (VibeTV #437) - #11

Merged
marcus7989 merged 4 commits into
vibetvfrom
codex/cli-gaps-issue-437
Oct 20, 2026
Merged

marcus7989 merged 4 commits into
vibetvfrom
codex/cli-gaps-issue-437

Conversation

@marcus7989

@marcus7989 marcus7989 commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Adds four CLI pieces the VibeTV Windows Companion needs (DreamyTalesPAN/CodexBar-Display#437). Each change is additive, so existing calls keep their output. Based on main, independent of #9.

  • CODEXBAR_CONFIG sets the settings file path, same contract as macOS.
  • usage --provider enabled runs every provider switched on in settings in one call. Bare usage stays Claude-only.
  • config claude-consent on|off sets claude_allow_reading_claude_code_credentials.
  • cost --refresh is accepted. cost already rescans on every run, so the flag changes nothing.

Not in this PR: serve --request-timeout and config providers --json. #9 covers both.

Validation: cargo test -p codexbar --lib passes except 4 Windows path tests (pi_family x2, codex_sessions, core::hooks). They already fail on main on macOS and count only on Windows CI. cargo fmt --check is clean.

DreamyTalesPAN and others added 2 commits October 8, 2026 20:48
`config providers` had only the text form (`codex: enabled default
(Codex)`); `--json` was rejected, although docs/CONFIGURATION.md already
names it. It now prints an array of `{provider, displayName, enabled,
defaultEnabled}`, the shape of CodexBar's own CLI (0.63.0). `--format
text|json` and `--pretty` are accepted as there. The text form is
unchanged and comes from the same rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CodexBar's `serve` takes `--request-timeout`; here the option was rejected
and the server exited, so a caller had to leave it out on Windows.

The option now means what it means upstream: a request still unanswered
after that many seconds gets `504 Gateway Timeout` with
`{"error":"request timed out"}`. Its work is not stopped: a slow dashboard
snapshot finishes and is cached, so the next request is answered from it.
`0` waits without a deadline. Fractions are allowed, the cap is one day, a
negative value is an error.

One deliberate difference: upstream's default is 30 seconds, the default
here is 0. Without the option the server keeps waiting for slow providers
as it did before, so callers that do not pass it see no change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@marcus7989
marcus7989 marked this pull request as draft October 16, 2026 13:27
@marcus7989

Copy link
Copy Markdown
Owner Author

Querverweis: Die Teile serve --request-timeout und config providers --json stehen nur in #9. Dieser PR bleibt unabhängig von #9 und ist auf main aufgesetzt.

@marcus7989

Copy link
Copy Markdown
Owner Author

Windows-Test (Beelink) als Ersatz für die CI

Die Fork-CI läuft für diesen Branch nicht (CircleCI meldet keine Check-Runs, auch #10 nicht). Stattdessen wurde der Test auf einem echten Windows-Rechner gefahren.

Build: Kein nativer Windows-Build. Die Binaries wurden auf dem Mac mit cargo xwin gebaut (Target x86_64-pc-windows-msvc, Head 578d5c8). Prüfsummen (SHA-256, Präfix):

  • codexbar-578d5c8f.exe: 3347e831…
  • codexbar-tests-578d5c8f.exe (Lib-Tests): adf7c7bc…

Lib-Tests (Windows): 1818 passed; 2 failed; 1 ignored, Exit 101.

  • Die zwei Fehler sind pi_family::fixture_parsers_cover_plain_pi_omp_title_and_legacy_header_dialects und pi_family::scanner_correlates_fixture_directories_for_both_dialects. Ursache: Der Fixture-Pfad /Users/… ist im Cross-Build fest eingebrannt und existiert auf dem Beelink nicht. Das ist ein Artefakt des Mac-Builds, kein Code-Befund. Ein nativer Windows-Build müsste die beiden bestätigen.
  • Die vier Tests, die am Mac fehlschlugen (pi_family ×2, codex_sessions::normalizes_codex_root_to_sessions_dir, core::hooks::config_matching_respects_enabled_flag), bestehen auf Windows.

CLI (Windows, mit eigener CODEXBAR_CONFIG-Datei, Exit-Codes):

  • config path: 0
  • config claude-consent on / off: 0 / 0. Gespeichert wird das Flag korrekt (true / false laut config dump).
  • config enable codex: 0. config providers (Text): 0.
  • usage --provider enabled --json: 0. Claude über Quelle web ohne Fehler. Codex mit Fehler, da auf dem Beelink nicht angemeldet.
  • cost --json: 0. cost --refresh --json: 0. cost --help zeigt --refresh.
  • serve --help ohne request-timeout: erwartet (liegt in cli: config providers --json and serve --request-timeout #9).
  • config providers --json: Exit 2, erwartet (liegt in cli: config providers --json and serve --request-timeout #9).

Die echten Settings des Beelink blieben unverändert (Länge und Zeitstempel). Keine Installation, keine Anmeldungen angefasst. Testordner danach gelöscht.

Offen: der native Windows-Lauf für die zwei Fixture-Tests.

@DreamyTalesPAN

Copy link
Copy Markdown
Collaborator

@marcus7989 Question from the VibeTV side (issue DreamyTalesPAN/CodexBar-Display#437): is this PR ready to merge? If yes, could you merge it together with #9 and tag a new release (e.g. v0.60.3-vibetv.12)? We would then raise the pin in scripts/fetch-win-codexbar.ps1 and remove the Companion detours (runUsageAllEnabled, the text parser, the CODEXBAR_CONFIG workaround, --request-timeout) in a PR from our side.

Net change of the former #11 branch (e83454b + 578d5c8), applied on vibetv. serve --request-timeout is left to #9.
# Conflicts:
#	rust/src/cli/config.rs
@marcus7989
marcus7989 force-pushed the codex/cli-gaps-issue-437 branch from 578d5c8 to eafc532 Compare October 20, 2026 12:30
@marcus7989
marcus7989 changed the base branch from main to vibetv October 20, 2026 12:30
@marcus7989

Copy link
Copy Markdown
Owner Author

Paul, heads-up for review: this branch is now based on vibetv, and it includes your #9 head 370647c as a merge. The only conflict was in rust/src/cli/config.rs, resolved as in our local test merge; the Rust tree is identical to what we tested on Windows. The previous head was 578d5c8 (the branch was rebased, so the force push was lease-protected).

@marcus7989
marcus7989 merged commit 7614e4d into vibetv Oct 20, 2026
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.

2 participants