Skip to content

Prototype Console/core split and measure rebuild times - #1920

Merged
JacobStephens2 merged 5 commits into
mainfrom
issue-1889
Nov 10, 2026
Merged

JacobStephens2 merged 5 commits into
mainfrom
issue-1889

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

prototypes/console-split/
├── prepare.py       # pinned Base → core library + Console/CLI binary
├── benchmark.py     # validation and three sequential samples per layout
├── test_prepare.py  # export contract checks
├── test_report.py   # reported test totals match the recorded suites
└── results.json     # host, commands and individual measurements
docs/research/console-core-split.md

On the recorded four-vCPU host, Console edits rebuild 62.37% faster and
check 71.55% faster. Core rebuild and cold medians are essentially unchanged;
core checks cost another 1.19–4.67%. The report includes every sample,
method, host details, limitations and adoption costs. Production sources,
Cargo configuration, CI and ADR-0001 stay unchanged.

Closes #1889

Evidence

Execution evidence

  • Before: python3 -m unittest discover -s prototypes/console-split -p 'test_*.py'
    failed with AssertionError: None != 'https://github.com/JacobStephens2/thirdshift'.
    After: the same command passes all three tests. The split now preserves
    CARGO_PKG_REPOSITORY, which the Eval replay importer uses to construct URLs.
  • cargo build --locked and cargo clippy --all-targets -- -D warnings pass
    on the generated split.
  • cargo test --test evals replay_import_completes_trial_inputs_and_preserves_local_edits -- --exact
    and cargo test --test packaging non_linux_compilation_reports_only_the_platform_error -- --exact
    both pass. The export preserves package metadata and Linux guards.
  • cargo test --no-fail-fast on the split passes: 3927 passed, 0 failed,
    91 ignored
    , 2352.408 s, including remaining compilation.
  • python3 prototypes/console-split/benchmark.py --samples 3 --jobs 4 --output /tmp/console-split-results-1889-v3
    passed: 48 measured samples, all 95 commands exited 0. Raw data is in
    prototypes/console-split/results.json.
  • Spec review reproduction failed with report says 3930; top-level suites report 3927; the same command now passes and is retained in test_report.py.
    Prototype discovery passes 3 tests; existing Python tooling passes 41 tests.
  • The Standards refactor preserves all 1396 generated files/links byte for byte.
  • /usr/bin/time -p scripts/affected-tests main passed the full Rust suite via
    cargo nextest run: 3927 passed, 91 skipped, 2203.52 s, including compilation.

Test seams

  • The prepare.py CLI's exported Cargo workspace: dependency direction, parser
    ownership, package metadata and byte-for-byte integration-test preservation.
  • The prepare.py CLI's refusal to overwrite a nonempty destination.
  • Unsupported-platform diagnostics from the exported binary and library roots.
  • The research report's suite count against the recorded top-level Cargo results.
  • Existing CLI and core/Console tests, including Eval replay import URLs.

Unaddressed findings

Standards

None. The one finding (duplicated archive export) was addressed.

Spec

None. The one finding (nested fixture results inflated the suite total) was addressed.

Security

None.

Security review outcome

No unaddressed introduced findings.

Review coverage

Both axes read all seven changed files, including every measurement record
and the new regression test. Generated-output exclusions: none. Unread changed
files: none. Review totals: Standards 1, Spec 1, both addressed.

Merge Danger

Door: two-way

The prototype and report can be removed without changing the production layout.

Blast Radius: prototype

The split runs only in exported temporary trees.

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

The branch added a report test that reads docs/research/console-core-split.md without registering that input, causing the repository documentation dependency guard to fail in CI. Select the prototype Python tests for report edits and retain the full Rust suite for prototype source edits.

Add CLI regression coverage and document the selection. Validation: 55 Python tooling tests, 3 prototype tests, the release generator check, and scripts/affected-tests origin/main (3927 Rust tests passed).
@JacobStephens2
JacobStephens2 merged commit 1d1eae3 into main Nov 10, 2026
16 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-1889 branch November 10, 2026 01:43
@JacobStephens2 JacobStephens2 mentioned this pull request Nov 10, 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.

Prototype: split the crate into a core library and a Console/CLI binary, and measure edit-rebuild times

1 participant