Repository navigation
Publish the Console API's generated OpenAPI description - #1779
Merged
Merged
Conversation
JacobStephens2
marked this pull request as ready for review
November 5, 2026 16:17
This was referenced Nov 5, 2026
Merged
Closed
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
Publish the served Console API's OpenAPI description through HTTP and the CLI.
Closes #1759.
Test seams
Evidence
Execution evidence
Before:
cargo test --test console api::openapi_equals_cli_and_describes_operations_without_local_secrets -- --exactfailed:left: 404,right: 200; 0 passed, 1 failed.After: the same command passed: 1 passed, 0 failed. The final
cargo test --test console api::passed all 5 API regressions.Before:
cargo test --bin thirdshift console::tests::parity_rejects_api_routes_mounted_under_wrong_prefix -- --exactfailed:test did not panic as expected; 0 passed, 1 failed.After: the same command passed: 1 passed, 0 failed. The final
cargo test --bin thirdshift console::testspassed all 9 checks, including wrong-prefix and wrong-method regressions.target/debug/thirdshift console openapi > /tmp/thirdshift-1759-openapi-final.json && /tmp/thirdshift-1759-openapi-validator/bin/python -m openapi_spec_validator /tmp/thirdshift-1759-openapi-final.json:/tmp/thirdshift-1759-openapi-final.json: OK.cargo fmt --checkandcargo clippy --all-targets -- -D warnings: passed.scripts/affected-tests origin/issue-1753: site tests passed (252.82s) andcargo build --lockedpassed (181.89s). The Console browser step had 125 passes and one phone sign-in navigation timeout at its five-second load wait, after reaching the expected URL.Exact retry:
node --test --test-name-pattern='sign-in and sign-out work on a phone without JavaScript using secure cookies' console/tests/accounts.test.cjs: 1 passed, 0 failed.Full browser retry:
/usr/bin/time -p node --test --test-concurrency=3 console/tests/*.test.cjs: all 126 passed, 0 failed (204.03s). No code changed for this timeout.Initial full Rust run:
/usr/bin/time -p cargo nextest run --test-threads 3stopped after 83 tests (82 passed) when the host rejected an already-loaded transient systemd scope for an Architect fixture. It took 366.97s including 3m18s compilation.Exact retry:
cargo test --test architect_run an_interrupted_review_sends_one_notification_that_it_was_interrupted -- --exact: 1 passed, 0 failed (1.92s); no code changed for the scope collision.The no-fail-fast local run on the pre-help-fix build was stopped after 1,246/3,754 cases: 1,241 passed, the compact-help limit failed, one Continuation fixture hit the same host transient-scope collision, and three running cases were interrupted during cancellation. 2,508 cases remained unrun. The final head is running the full suite in CI.
Help regression: the broad run failed
help_is_a_compact_reference_with_a_link_to_the_details:help should fit in a short reference, got 69 lines. Commit985d9a9fcombines existing Theme import/export help entries while retaining OpenAPI. On the final head,cargo test --test command_surfacepassed 20 tests (1 fixture entry point ignored), including the unchanged 68-line check;cargo test --test console api::passed all 5 tests again.CI on final head
985d9a9f: formatting, all-target Clippy, Python checks, site and Console browser tests passed. Linux artifact builds and release smoke tests also passed. Full Rust CI remains in progress.Visual evidence
Matched Before/After states; Before is the Base branch at
d4b52b93.User manual, Console API section — 1440×900
Homepage, Console section — 1440×900
How it works, Console API paragraph — 1440×900
Architecture, Console API paragraph — 1440×900
User manual, Console API section — 390×844
Homepage, Console section — 390×844
How it works, Console API paragraph — 390×844
Architecture, Console API paragraph — 390×844
Review coverage
Reviewed against the fetched
issue-1753, pinned atd4b52b93187cc4c15e6eb0e74527832df26ef999.Both reviewers inspected all 12 changed files, including the generated manual's changed hunks, before the final compact-help fix. Changed file with a remaining partial review gap:
src/main.rs— only the final Theme import/export help consolidation in985d9a9fwas not independently reread. Its original CLI feature hunks were reviewed. This gap is also recorded in both review reports. No generated-output exclusions.Unaddressed findings
Standards
None. The raised finding is addressed.
Spec
None. The raised finding is addressed.
Security
None.
Security review outcome
No unaddressed introduced findings.
Merge Danger
Door: two-way
Blast Radius: Console
Discovery uses the shared Console route table and authentication. Schemas describe CLI envelopes; nested Command and Experiment records are extensible objects.
Built with codex codex-cli 0.164.0 · gpt-6.1-sol · xhigh