Skip to content

fix(desktop): accept and order Core prerelease versions - #7

Merged
huangruiteng merged 1 commit into
Duang777:codex/remove-legacy-markdown-callers-20261012from
loopx-project:codex/native-core-prerelease-20261016
Oct 16, 2026
Merged

huangruiteng merged 1 commit into
Duang777:codex/remove-legacy-markdown-callers-20261012from
loopx-project:codex/native-core-prerelease-20261016

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

Fix the native startup blocker found on upstream #6396: the normal macOS App rejected the valid Core wheel version 2.0.0a1 as runtime_bundle_invalid before opening the workspace.

The existing native adapter now validates and orders Core package versions using PEP 440 through pep440_rs. It preserves the original identity string, keeps source ancestry and installation ownership decisions, and retains the historical Main-shell fallback. Stable releases rank above same-base prereleases; malformed versions still refuse. This also removes blanket prerelease/build stripping that could hide a downgrade.

Intended base: Duang777:codex/remove-legacy-markdown-callers-20261012 at 2ff6610a3eed91a9b3a6564af3648d937f7bc9c1. This is one signed commit touching four native/docs paths; it does not integrate additional main history.

Author Declaration

Written by: model_agent — OpenAI Codex, GPT-6 family.

Implemented against the reproduced failure above and the existing archived-wheel version/ancestry contract in apps/desktop/loopx-control-plane/README.md at the base revision, using the Python packaging version specification.

Criterion Disposition Owner / verification
Accept valid Core prereleases without rewriting identity implemented runtime_selection.rs; real normal wheel/App startup
Preserve real prerelease ordering and invalid-input refusal implemented independent baseline/head version regressions
Retain historical Main-shell fallback, source ancestry, ownership and developer pin boundaries implemented existing native suite plus actual pinned/unpinned launches

Scope And Continuation

Complete author proposal for this native version adapter repair. Core/CLI state owners, leases, receipts, backup formats and storage policy are unchanged. A single private parser serves the two existing consumers; no new control-plane owner, configuration or framework is introduced.

The parent retirement PR remains open. It must incorporate the fix and satisfy its own final-head review, validation and maintainer merge gates. This proposal is not a merge or release authorization, nor a D2/default-storage qualification.

Validation

Tested revision: bf8372b1eda6e53492b6cd256b48d6b64cf63c51. Run state: finished. Inputs: synthetic, public_fixture.

Check kind Result Evidence / limitation
regression_parity passed Both new semantic tests fail against the exact parent parser; final code passes valid/invalid versions, prerelease ordering, equal-version ancestry and downgrade refusals.
unit / static passed Native cargo test --release: 112 passed, three opt-in checks ignored (private installer and signed-release fixtures); cargo fmt --check and cargo clippy --release --all-targets -- -D warnings passed.
real_entrypoint / real_backend passed Normal noneditable wheel and non-dev macOS App from this commit; all 1,761 installed package entries match the wheel. Actual native startup reaches paired Chat/Status. Clearing the QA discovery cache through the shipped control also installs the App-owned bundled Core; both services attest this exact source revision and 2.0.0a1.
integration / recovery passed Through the real native window: inspect a nonempty full backup created by released 1.4.2, preserve every archived file byte, read its saved Todo and four SQLite commits, reject a damaged archive, restart all owned processes, and read the original report/identity/measurements. Historical/unknown components and inactive execution remain explicit.
static passed Diff advisory, full semantic vocabulary smoke, exact-path public-boundary scan and git diff --check. The advisory does not parse Rust; the version/owner boundary was reviewed directly. Exact-scope CQR cqr_8f3f3c2cefec3a0e0d04 is valid.
manual not_run Hosted CI was not queried, dispatched or waited for. QA used a separate App identifier/runtime and ad-hoc signing; it does not certify public signing/notarization, Windows or Linux native startup.

The validation set covers the changed native adapter, its existing callers and the real failure/recovery path. Native QA leaves the installed public App unchanged; it activates no Goal and makes no model call. Broader parent-program acceptance remains with loopx-project#6396.

Frontend / Visual Evidence

UI impact: none to layout, controls or assets. The existing workspace and recovery views are used unchanged. Native behavior moves from the terminal runtime_bundle_invalid state to the real workspace. Synthetic QA observed the existing inactive/unknown and bad-input states; no private screenshots or raw logs are published.

Type / Area

Bug fix; associated tests and native recovery documentation. Build/packaging and host/runtime integration. Shared-authority fixture impact: N/A — no state codec, provider or migration rule changes.

Boundary Checklist

  • Public diff/body contain no private state, credentials, raw logs or local paths.
  • Four paths share the single reproduced native version failure.
  • DCO sign-off is present on the contribution commit.
  • Independent review and maintainer merge authorization remain separate.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@huangruiteng
huangruiteng merged commit 286624b into Duang777:codex/remove-legacy-markdown-callers-20261012 Oct 16, 2026
@huangruiteng
huangruiteng deleted the codex/native-core-prerelease-20261016 branch October 16, 2026 03:35
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.

2 participants