feat(cli): expose replay timing data + times command - #44
Merged
Conversation
The CLI previously surfaced no wall-clock data beyond the raw recorded_utc_timestamp int64, and the footer per-frame time table was unreachable from the command surface entirely. - new 'times [start] [end]' command: per-frame time table summary (counts, first/last wall clock, durations, median frame step), discontinuity scan (negative or >2x-median created_utc deltas, capped at 100 with anomaly_count/anomalies_truncated), raw gaps/segments, and an optional per-frame slice with deltas - frame: adds game_time_ticks/_seconds + created_utc_ticks/_iso - header: adds recorded_utc_iso; info: adds recorded_utc_ticks/_iso - footer: adds game_time/created_utc/gap/segment counts - chunks: adds checksum (xxHash64, 0 = not set) - events: adds derived utc_ticks/_iso (recording start + game_time) - TimeUtils::FormatUtcTicksIso8601: ISO-8601 sibling of FormatUtcTicks - TimeUtils::NormalizeUtcToUeTicks: maps unix seconds / unix ms / unix-relative ticks / UE ticks onto one timeline. The writer stamps the header in unix seconds while per-frame created_utc is ticks; every *_iso is derived through normalization, every stored *_ticks passes through raw so deltas stay diagnosable. Docs in tools/cli/readme.md + CHANGELOG; cli_test_suite.py asserts the new keys, the times slice shape, and times error responses. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
virtexalejandro
pushed a commit
that referenced
this pull request
Jul 27, 2026
* feat(cli): expose replay timing data + times command The CLI previously surfaced no wall-clock data beyond the raw recorded_utc_timestamp int64, and the footer per-frame time table was unreachable from the command surface entirely. - new 'times [start] [end]' command: per-frame time table summary (counts, first/last wall clock, durations, median frame step), discontinuity scan (negative or >2x-median created_utc deltas, capped at 100 with anomaly_count/anomalies_truncated), raw gaps/segments, and an optional per-frame slice with deltas - frame: adds game_time_ticks/_seconds + created_utc_ticks/_iso - header: adds recorded_utc_iso; info: adds recorded_utc_ticks/_iso - footer: adds game_time/created_utc/gap/segment counts - chunks: adds checksum (xxHash64, 0 = not set) - events: adds derived utc_ticks/_iso (recording start + game_time) - TimeUtils::FormatUtcTicksIso8601: ISO-8601 sibling of FormatUtcTicks - TimeUtils::NormalizeUtcToUeTicks: maps unix seconds / unix ms / unix-relative ticks / UE ticks onto one timeline. The writer stamps the header in unix seconds while per-frame created_utc is ticks; every *_iso is derived through normalization, every stored *_ticks passes through raw so deltas stay diagnosable. Docs in tools/cli/readme.md + CHANGELOG; cli_test_suite.py asserts the new keys, the times slice shape, and times error responses. * style: clang-format changed lines (CI format gate) ---------
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The CLI previously surfaced no wall-clock data beyond the raw recorded_utc_timestamp int64, and the footer per-frame time table was unreachable from the command surface entirely.
Docs in tools/cli/readme.md + CHANGELOG; cli_test_suite.py asserts the new keys, the times slice shape, and times error responses.