Skip to content

Preserve informational flags in dashboard usage windows (VibeTV #306) - #19

Open
marcus7989 wants to merge 1 commit into
vibetvfrom
codex/306-informational-window
Open

marcus7989 wants to merge 1 commit into
vibetvfrom
codex/306-informational-window

Conversation

@marcus7989

Copy link
Copy Markdown
Owner

Dashboard account snapshots must distinguish an informational placeholder from a measured 0% window without a reset. Preserve RateWindow.is_informational as the additive schema-v1 key isInformational; omit the key when false. This lets the VibeTV account adapter retain real zero measurements while excluding explicit informational windows (VibeTV-shop/vibetv#306).

Based on current vibetv / v0.60.3-vibetv.15 (935b98b118f1599c191ccf2754a6f352d806ffac), including #15–#17. The existing unavailable and idle payload fields are preserved. Two source tests cover an informational session and measured session/weekly zeroes without resets.

Validation on macOS (native aarch64 only):

  • cargo fmt --all -- --check and git diff --check: pass.
  • cargo test -p codexbar --lib --locked --target aarch64-apple-darwin cli::serve::dashboard: 50 passed.
  • Full native library suite: 1997 passed, 4 failed, 1 ignored. The unchanged .15 baseline reproduces the same four failures (1995 passed, 4 failed, 1 ignored): config_dir_must_stay_within_home, windows_shims_and_paths_are_normalized_for_dialect, normalizes_codex_root_to_sessions_dir, and config_matching_respects_enabled_flag.
  • Isolated contract compiling the actual serializer and actual RateWindow: 14 passed, including both new tests. Its serialized informational-session/measured-weekly-zero output passes the local VibeTV adapter integration test.

Native Windows validation and packaging remain required on Paul's runner. Build the exact PR head with static CRT, then prepare CodexBarCLI-v0.60.3-vibetv.16-windows-x64.zip containing codexbar-cli.exe plus its .zip.sha256 sidecar, matching .13 packaging. Merge, tag and prerelease publication are reserved for the orchestrator after Windows validation; this PR does not change the VibeTV package pin.

@marcus7989 marcus7989 self-assigned this Oct 29, 2026
@marcus7989

Copy link
Copy Markdown
Owner Author

[K-Marcus] W239 self-review of b1174a1010cc2f1af572429a486ef42a4929be65 against vibetv / .15 (935b98b118f1599c191ccf2754a6f352d806ffac): no P1/P2 findings.

The complete diff changes only rust/src/cli/serve/dashboard/window.rs. All dashboard provider/account windows use the shared constructor, which copies the engine flag directly; camelCase serialization emits isInformational: true and omits false. Existing unavailable/idle, percentages and reset timestamps remain intact. Both source tests pass, including measured session and weekly zeroes without resets. All 50 native dashboard tests and the actual-source-to-adapter contract pass. The four full-library macOS failures reproduce identically on the unchanged .15 baseline.

Windows execution and static-CRT ZIP packaging remain pending on Paul's runner. No merge/tag/release or nesszer#306 push is authorized in this worker task.

@codex review

@DreamyTalesPAN DreamyTalesPAN left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Counter-review from the VibeTV team ("Paul" here = our team) at head b1174a1 (read-only, no approval).

Code check of rust/src/cli/serve/dashboard/window.rs:

  • isInformational is serialized only when true (skip_serializing_if = "is_false", struct is rename_all = camelCase). make_window_with_idle copies window.is_informational, so the flag comes from the engine's RateWindow and is not guessed from "0 % and no reset".
  • Real zero measurements are kept: RateWindow::new(0.0) has is_informational: false (core/rate_window.rs:98-106), so session and weekly stay without the key but keep usedPercent: 0 and resetAt: null. Your second test pins exactly this for both kinds.
  • Informational placeholder: no_active_session() is informational(..), i.e. is_informational: true (rate_window.rs:123-128, test at 262), so the first test gets isInformational: true, usedPercent: 0, resetAt: null.
  • unavailable: window.is_informational and idle are unchanged, so existing clients see the same payload except for the additive key. The WindowPayload literal is built in one place only, so the new field is not missing elsewhere.

Nothing blocking. One style remark: the new mod tests sits between the is_false helper and make_window_with_idle; it is conventional to put it at the end of the file. Native Windows validation and the .16 packaging are still open, as you wrote; I did not run anything.

@marcus7989

Copy link
Copy Markdown
Owner Author

[K-Marcus] W291 built an artifact-only CI candidate from exact Win-CodexBar #19 b1174a1010cc2f1af572429a486ef42a4929be65; no merge, release/tag publication or device action. The existing published .16 and nesszer#306 pin were already present (W264) and remain unchanged. Draft #341 is stacked on nesszer#306/nesszer#254 and records the package/Windows handoff.

CI 40891208141: native static-CRT CLI build, PE/CUI/version audit and upload succeeded. Artifact wincb-v0.60.3-vibetv.16-b1174a10-40891208141, downloaded and independently verified. Candidate ZIP SHA256 18d6b932c8719b693e6839f2050925dd195e6c30f61c9617adc2f934770b1ea7; EXE 5d19b138554a4d87d58b5fb0ecd8bb7da707909cbd0f3913228783cbd49ea27d. These are rebuild hashes, not replacements for the published fbec… ZIP pin.

Dashboard 50/50. Full native library suite (serial) 2037 passed / 1 failed / 1 ignored; run correctly stays red. Both old PTY/login tests passed. New failure: codex_accounts::codex_desktop::tests::restart_uses_manifest_gui_and_leaves_standalone_cli_alone, child PowerShell exits unsuccessfully, stderr empty. codex_desktop.rs is byte-identical on .15/#19, but baseline failure/root cause is unproven: isolate on both heads and capture fixture log before merge approval. No speculative source fix and no green-full-suite claim.

W235 native customer-flow checklist and exact nesszer#306 installer (9999.0.494, Platform CI 40868740907) are in the local handoff .local/reports/306/W291.md / W291-W235-WINDOWS.md. Remaining gates: new test failure triage, W235 native flow and Marcus click test; nesszer#254 before nesszer#306; current exact-head checks and explicit MERGE OK.

@marcus7989

Copy link
Copy Markdown
Owner Author

[K-Marcus] W307 verified unchanged #19 head b1174a1010cc2f1af572429a486ef42a4929be65, Paul's no-blocker counter-review and 0 review threads. The style-only suggestion remains optional. Native full cumulative source #21 → #20 → #19 → #18 ef4aace55a59ed61fc66ab9b7d341129b82afa69 is GREEN: 2,049 library + 1 CLI passed, 0 failed, 1 pre-existing ignored, 0 filtered. Run/job. Dashboard file is byte-identical to this PR; .15 Kimi/Doubao fixes are retained. This is cumulative-source evidence, not a new CI check on standalone #19. Published .16/nesszer#306 pin unchanged; W235/Marcus customer-flow gates and merge approval remain with the orchestrator.

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