Skip to content

Spec: record host Suspended time, and keep it out of stage health and Usual ranges - #2053

Merged
JacobStephens2 merged 25 commits into
mainfrom
issue-2026
Nov 12, 2026
Merged

JacobStephens2 merged 25 commits into
mainfrom
issue-2026

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

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.

running Command → stage suspension facts
  ├─ show / status / Console → wall-clock time · Suspended time
  ├─ Slow / Silent → exclude suspension from elapsed work and quiet time
  ├─ Usual range → leave out stages with suspension
  └─ Experiment / Process eval → mark affected Trials; exclude timing, retain results

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:

  • Before: 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.cjs
    Actual: not ok 1 - suspended Trials disclose timing exclusions and keep their outcome in the Peek; locator.waitFor: Timeout 5000ms exceeded, waiting for Candidate: 1 Trial left out of timing (suspended).
  • After: 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.cjs
    Actual: 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.cjs
  • Before: 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 in 80793839.

  • Final validation: PATH=/home/jstephens/repos/thirdshift-issue-2026/.thirdshift-review-Wzu3Su/nextest:$PATH NEXTEST_TEST_THREADS=6 scripts/affected-tests refs/remotes/origin/main passed at 8079383941aaed2b1838ba0e7b2a95aeef671607: 68 site tests, 204 Console browser tests, and 4,361 Rust tests passed; 101 Rust fixture/gated tests were skipped. The selector measured cargo nextest run at 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 -- --check and git diff refs/remotes/origin/main...HEAD --check passed.

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 suspended beside the unchanged 10 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 with node .thirdshift-review-Wzu3Su/capture.cjs <binary> <before|after>. The Command-details fix also has before-fix-command-{desktop,mobile}.png paired 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...HEAD comparison, pinned at Base b35dc5e6a5075b0eaa9ca2f06ba2a3fecaaf2dbe, 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.md and .thirdshift-review-Wzu3Su/spec.md. The accompanying summary.json records the raised counts: {"standards":0,"spec":1}. The one P2 Spec finding was reproduced and fixed in 80793839; 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 80793839 with 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

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
JacobStephens2 marked this pull request as ready for review November 12, 2026 07:55
@JacobStephens2 JacobStephens2 added the in-progress A Claim: thirdshift has taken this issue label Nov 12, 2026
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
JacobStephens2 marked this pull request as ready for review November 12, 2026 15:32
@JacobStephens2 JacobStephens2 added the in-progress A Claim: thirdshift has taken this issue label Nov 12, 2026
Preserve Suspended time architecture documentation alongside the expanded Run metrics description from main.
@JacobStephens2
JacobStephens2 merged commit f5fb00b into main Nov 12, 2026
24 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-2026 branch November 12, 2026 16:25
@JacobStephens2 JacobStephens2 removed the in-progress A Claim: thirdshift has taken this issue label Nov 12, 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.

Spec: record host Suspended time, and keep it out of stage health and Usual ranges

1 participant