Skip to content

Fix inherited CI failures on the Quota wait branch - #2013

Merged
JacobStephens2 merged 2 commits into
issue-1994from
issue-2012
Nov 11, 2026
Merged

JacobStephens2 merged 2 commits into
issue-1994from
issue-2012

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

Fix two inherited CI failures on the Quota wait branch: an incompatible Activity log caller in the merge with main, and a quota-reset test that raced the Console's background read.

ordinary Activity log caller → Kind → History::Kind
named Process quota skip   → History::ProcessSkip
                           → shared append and warning handling

quota-reset regression → wait for merged PR to reach Resolved
                      → assert warning cleared and GraphQL read resumed

Restore the ordinary writer's Option<Kind> interface and keep named Process quota history in its private implementation. In the quota-reset regression, retain every original assertion and wait for an observed GitHub state change; warning expiry alone does not establish that the background read finished.

Closes #2012

Evidence

Execution evidence

The failure is in the synthetic merge with main, rather than issue-1994 alone. Reproduced by merging origin/main at 09f0c6c49e2c056230c38053b8d86a42d9a214f5 into a detached checkout of 14bda782c96fe20697f03a79c598891089af65d8, then applying this patch for the After run.

  • Before: CARGO_TARGET_DIR=/home/jstephens/repos/thirdshift-issue-2012/target cargo build --locked --manifest-path /tmp/issue-2012-merge-check/Cargo.toml
    error[E0308]: mismatched types
       --> src/logs/recording.rs:404:62
    404 | self.activity_write(&self.root(repo), &message, Some(kind));
        |                                                   ^^^^ expected `History<'_>`, found `Kind`
    error: could not compile `thirdshift` (bin "thirdshift") due to 1 previous error
    
    After: the same command passes:
    Compiling thirdshift v0.28.1 (/tmp/issue-2012-merge-check)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 04s
    
    At e240cd55, the compiled patched merge tree equals git merge-tree --write-tree HEAD refs/remotes/origin/main: 57166808dec7ad47fb9e844c5cc17e80eb43432f. The later commit changes only the quota-reset test.
  • cargo build --locked and cargo fmt --check: passed on this branch.
  • cargo test --bin thirdshift logs::recording::tests: 30 passed.
  • cargo test --test pass_quota: 6 passed; 1 pre-existing ignored test unchanged.
  • npm test --prefix console: 190 passed, 0 failed, 0 skipped. The test environment sets THIRDSHIFT_BINARY to an isolated copy of the patched binary and PLAYWRIGHT_BROWSERS_PATH=/tmp/issue-2012-browsers. The copy prevents rebuilds from replacing the executable used by live fixtures. An earlier run against the shared build path lost its Inbox server while the executable was rebuilt; this complete rerun passed.
  • Quota-reset Before: cargo test --test console github::console_and_status_share_both_quota_reserves_and_resume_at_reset -- --exact --nocapture reproduced the Rust CI failure:
    panicked at tests/console/github.rs:621:9:
    assertion failed: scenario.gh_calls_of("api", "graphql").len() >= 2
    test result: FAILED. 0 passed; 1 failed
    
    After: the same command passes for both quota resources:
    test github::console_and_status_share_both_quota_reserves_and_resume_at_reset ... ok
    test result: ok. 1 passed; 0 failed; finished in 8.44s
    
    The warning filters expired waits by the clock, independently of background poll completion. Waiting for the merged PR's row to reach Resolved proves the read actually resumed, while preserving the existing pre-reset no-read comparison and GraphQL-count assertion.
  • RUST_TEST_THREADS=3 cargo test --test console github::: all 13 GitHub/Console integration tests passed.
  • CARGO_BUILD_JOBS=3 RUST_TEST_THREADS=3 scripts/affected-tests refs/remotes/origin/issue-1994: selected the full Rust suite via its documented cargo test fallback. On the final head, 1,770 unit tests and all 287 active Console HTTP integration tests passed locally. Stopped the duplicate local run after successful full CI for the exact same head, following docs/testing.md's instruction to reuse successful CI. The earlier run was stopped after reproducing the CI failure, before the test repair.
  • Full CI on e953947b passed, including console-test, site-test, formatting, Python tooling and clippy. Its full Rust command, cargo nextest run, passed all 4,202 active tests across 101 binaries in 1,450.784 seconds, with 98 pre-existing skips unchanged; compilation took 1m 30s separately. Both release artifact builds also passed.

Seams verified: recording through Record and its Outside adapter; Pass CLI admission and persisted Activity log; the binary build including main's Base CI caller; Console browser flows.

Review coverage

Independent Standards and Spec reviews against refs/remotes/origin/issue-1994: 0 findings on each axis, including the follow-up review. Both reviewers read both changed files, src/logs/recording.rs and tests/console/github.rs. Unread changed files: none. Generated-output exclusions: none.

Unaddressed findings

Standards

None.

Spec

None.

Security

None.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

The private compatibility adapter can be reverted without a data migration.

Blast Radius: logging

Both caller forms retain the existing Activity log append, duplicate suppression and warning behavior.

Built with codex codex-cli 0.167.1 · gpt-6.1-sol · xhigh

The issue-1994 merge into main added base_ci_skipped alongside the quota History selector. Preserve the Kind-based activity_write interface so that clean textual merge compiles, while named Process quota waits still select their own history. Fixes #2012.
Quota warnings expire with the clock before the background read necessarily completes. The CI regression raced that expiry against the GraphQL call-count assertion. Change the fake pull request to merged and wait for its Console row to reach Resolved, keeping the pre-reset no-read check and resumed-read assertion intact.
@JacobStephens2 JacobStephens2 changed the title Fix console-test build when Quota wait merges with main Fix inherited CI failures on the Quota wait branch Nov 11, 2026
@JacobStephens2
JacobStephens2 merged commit 63a64ad into issue-1994 Nov 11, 2026
16 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-2012 branch November 11, 2026 09:50
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.

1 participant