Repository navigation
Spec: record host Suspended time, and keep it out of stage health and Usual ranges - #2053
Merged
Merged
Conversation
Record host Suspended time in Command stages and show
Explain Suspended time in stage views and exclude it from Usual ranges
# Conflicts: # docs/guide.md # site/architecture/index.html # site/docs/index.html
…/actions/runs?head_sha=f27a6f5487c7a31736cbfd5b1d3dc1f3de3d547c&per_page=100 failed: gh: API rate limit exceeded for user ID 53905376. If you reach out to GitHub Support for help, please include the request ID D654:1B9792:B76271:24755DB:6AF4CAF1 and timestamp 2026-11-11 20:07:13 UTC. For more on scraping GitHub and how it may affect your rights, please review our Terms of Service (https://docs.github.com/en/site-policy/github-terms/github-terms-of-service) (HTTP 403)) 2026-11-11T20:07:14Z, host stephens. Uncommitted work at the time of failure is included in this commit.
Exclude Suspended time from Slow and Silent
Exclude suspended Trials from Experiment and Process eval timing
JacobStephens2
marked this pull request as ready for review
November 12, 2026 07:55
Preserve suspension accounting alongside quota waits, Slow escalation, and Experiment coordination. Regenerate the manual and align the combined health and recorder fixtures.
Preserve suspension accounting alongside quota waits and Slow escalation. Publish the combined Experiment result contract as format 12, regenerate the manual, and align recorder and health fixtures.
Preserve the remote merge and its quota-wait health coverage alongside the validated origin/main reconciliation and Experiment format 12.
JacobStephens2
marked this pull request as draft
November 12, 2026 09:59
This was referenced Nov 12, 2026
JacobStephens2
marked this pull request as ready for review
November 12, 2026 15:32
Preserve Suspended time architecture documentation alongside the expanded Run metrics description from main.
This was referenced Nov 12, 2026
Merged
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.
Summary
Every Command now records host Suspended time per live stage, comparing wall and monotonic clocks. A gap of at least one minute is saved within about a minute of wake and explained once in the Command log.
The four Tickets form one recording-to-reporting path: a scriptable clock seam and live sampler; shared health calculations; CLI and Console displays; and Trial timing eligibility. Legacy records default to zero. Suspensions create no Inbox note, Needs you row or Dismissal target. Experiment format 11, OpenAPI and documentation describe the additive fields and excluded timing counts.
The Spec review also fixes clipped Command details: expanded facts use the full row, and nested values wrap so the complete stage time and suspension explanation remain readable on desktop and phone.
Closes #2026
Evidence
Execution evidence
The same focused browser test exercised the pinned Base branch binary (
b35dc5e6a5075b0eaa9ca2f06ba2a3fecaaf2dbe) and the complete Spec implementation:THIRDSHIFT_BINARY=/home/jstephens/repos/thirdshift-issue-2026/.thirdshift-review-Wzu3Su/before-binary node --test --test-name-pattern='suspended Trials disclose timing exclusions' console/tests/experiments.test.cjsActual:
not ok 1 - suspended Trials disclose timing exclusions and keep their outcome in the Peek;locator.waitFor: Timeout 5000ms exceeded, waiting forCandidate: 1 Trial left out of timing (suspended).THIRDSHIFT_BINARY=/home/jstephens/repos/thirdshift-issue-2026/target/debug/thirdshift node --test --test-name-pattern='suspended Trials disclose timing exclusions' console/tests/experiments.test.cjsActual:
ok 1 - suspended Trials disclose timing exclusions and keep their outcome in the Peek; 1 passed, 0 failed, at desktop and phone widths.For the review fix, the exact same regression command was run before and after the CSS change:
THIRDSHIFT_CONSOLE_ASSETS=/home/jstephens/repos/thirdshift-issue-2026/src/console/assets node --test --test-name-pattern 'Command details visibly show suspended stage time on desktop and phone' console/tests/time.test.cjsBefore:
not ok 1 - Command details visibly show suspended stage time on desktop and phone; the 1440 px value column was 136 px for 141 px of text. The independent reproducer also measured a zero-width value column at 390 px.After:
ok 1 - Command details visibly show suspended stage time on desktop and phone; 1 passed, 0 failed, with complete visible text at both widths and no page overflow. The test is retained in80793839.Final validation:
PATH=/home/jstephens/repos/thirdshift-issue-2026/.thirdshift-review-Wzu3Su/nextest:$PATH NEXTEST_TEST_THREADS=6 scripts/affected-tests refs/remotes/origin/mainpassed at8079383941aaed2b1838ba0e7b2a95aeef671607: 68 site tests, 204 Console browser tests, and 4,361 Rust tests passed; 101 Rust fixture/gated tests were skipped. The selector measuredcargo nextest runat 1254.46 s, including a 0.21 s test-build check; Nextest execution took 1253.568 s. Four slow tests passed. Earlier incomplete runs were superseded by this complete run.The reviewer's exact original command,
node .thirdshift-review-Wzu3Su/spec-visible-suspension.cjs target/debug/thirdshift, was also rerun after rebuilding and passed with embedded assets: desktop value width/content width 368/368 px, phone 214/214 px.cargo fmt -- --checkandgit diff refs/remotes/origin/main...HEAD --checkpassed.Test seams: recorder effects → Command record and Command log; retained records → CLI show/status and Console details/Stages/Inbox; Trial results → Experiment and Process timing comparisons, reports, outcomes and cost. The retained review regression uses the existing Console seam and checks visible stage text at desktop and phone widths.
Visual evidence
Matched Before/After PNGs were captured from real Consoles using identical fixture state at 1440×900 and 390×844: Stages, expanded Command stage details and the Experiment Trial Peek. The Stages view adds
9 hr 40 min suspendedbeside the unchanged10 hr 6 min; the Trial Peek explains timing exclusion while preserving the outcome.Local Session artifacts:
.thirdshift-review-Wzu3Su/{before,after}-{stages,command,experiment}-{desktop,mobile}.png, created withnode .thirdshift-review-Wzu3Su/capture.cjs <binary> <before|after>. The Command-details fix also hasbefore-fix-command-{desktop,mobile}.pngpaired with the final After captures. Captures were inspected. Media remains local because publishing the PR skill's binary Gist requires a Git push, prohibited for this session.Review coverage
Independent Standards and Spec reviewers each read all 49 changed paths against the initial
refs/remotes/origin/main...HEADcomparison, pinned at Baseb35dc5e6a5075b0eaa9ca2f06ba2a3fecaaf2dbe, including the original 47 paths, both review-fix files and the generated manual's changed HTML directly. No generated-output exclusions. Changed files left unread: none on either axis.Reports with each axis's final files-read list are
.thirdshift-review-Wzu3Su/standards.mdand.thirdshift-review-Wzu3Su/spec.md. The accompanyingsummary.jsonrecords the raised counts:{"standards":0,"spec":1}. The one P2 Spec finding was reproduced and fixed in80793839; both reviewers checked the final fix. No findings were declined. The commit remains local for thirdshift to publish.Unaddressed findings
Standards
None. The reviewer raised no findings.
Spec
None. The one P2 finding, unreadable Suspended time in expanded Command details, was reproduced and fixed in
80793839with the retained browser regression above.Security
None. No unaddressed introduced findings.
Merge Danger
Door: two-way
Record and Trial fields are additive, absent values mean zero, and retained history is preserved. Rollback stops new measurement without rewriting older files.
Blast Radius: observability
All Command recording, live health, stage displays and Experiment timing eligibility are affected. Measurement follows the Spec's fixed wall/monotonic gap rule, including its treatment of large forward wall-clock steps.
Security review outcome
No unaddressed introduced findings.
Tickets
Built with codex codex-cli 0.167.2 · gpt-6.1-sol · xhigh