Skip to content

Track Rust toolchain input alignment decisions #698

Description

@luccahuguet

Goal

Track the three Rust toolchain input alignment proposals identified after #697, following discussion #693.

The investigation and Popup implementation are complete. Helix sharing was rejected by Lucca on September 10, 2026; its independent overlay pin is retained. Popup is verified on Edge; zjstatus remains open as an independent proposal. This issue tracks the disposition of all three proposals; a resolved item does not necessarily mean implementation.

Work items

  • Retain Helix's independent rust-overlay pin — sharing rejectedyazelix-5vl-share-helix-rust-overlay-kymn. Lucca accepted keeping the separate pin on September 10, 2026. The evaluated sharing proposal removed one lock node and preserved all 80 compared packaged identities, but changed Helix's rust-analyzer/development shell and Darwin MSRV tooling. Coupling those updates to Rio would require coordinated review and native validation without a demonstrated packaged-runtime benefit. No Helix sharing change was implemented. Revisit only if a shared update policy is explicitly accepted or child source changes remove this tradeoff.
  • Share Popup's Fenix with Nova Bar — implemented on Edgeyazelix-5vl-share-popup-fenix-ogfs, c69280d4. One follows removes three nodes (45 to 42), including a separate nixpkgs graph. Rust/Cargo remains 1.95.0 and the child recipe/source is unchanged. Exact four-system comparison confirms only Popup changes among the inspected children; all public Nova variants embed it. Popup joins the existing Nova Bar/Anima/pane-orchestrator Fenix group, whose consumers must be reviewed together on future Fenix/root-nixpkgs updates. No additional builder or compiler policy was introduced.
  • Align zjstatus with Rio's Rust 1.96.1 toolchain (P3)yazelix-5vl-align-zjstatus-rust-zte3. Removes one node and upgrades the composed Nix build from Rust 1.95.0 to 1.96.1. zjstatus, Nova Bar and all public Nova variants change build identities. Validate status-bar rendering, native-tab behavior, modes, themes and activity integration. The child's standalone rust-toolchain.toml remains a separate 1.95.0 selection unless a child policy change is explicitly chosen.

Evidence and limits

At Nova baseline 7269a5fc, isolated probe flakes evaluated each candidate separately and all three together on x86_64-linux, aarch64-linux, x86_64-darwin and aarch64-darwin. The probes compared 11 public package outputs and nine child outputs per system. Their baseline matches the previously verified 80 identities.

The historical Helix-plus-Popup probe reduced the graph from 45 to 41 nodes; the all-three probe reduced it to 40. Those combinations include the rejected Helix proposal and are not the accepted implementation plan. Against that baseline, Popup alone would remove three nodes (45 to 42); adding the independently evaluated zjstatus proposal would remove one more (41), subject to a fresh combined evaluation. Node reduction alone does not establish a maintenance win. Popup's exact candidate has now passed the delivery checks below; the unimplemented zjstatus proposal still has evaluation evidence only. No build-time, disk-use or cache-hit improvement has been measured.

Correction to the earlier discussion update: Helix's packaged compiler is not selected from the overlay's stable.latest catalog. Its package recipe consumes nixpkgs rustPlatform. Sharing the overlay preserves the packaged editor in the investigated candidate while changing development/MSRV tooling.

Popup delivery evidence

At c69280d, local Linux flake checks, all-system flake evaluation, full/no-Rio/Edge builds, isolated profile identity and CLI checks passed. Hosted Linux CI, native Darwin Package Smoke, and both native cache publication jobs passed on that exact revision. Both platforms' no-Rio wrapper and Popup contents/trusted signatures were verified directly against the remote cache. The installed Edge profile is refreshed.

A fresh installed Linux session on private Xvfb/software Vulkan passed Popup creation/focus, 12 Yazi hide/reopen cycles preserving pane identity, sidebar collapse/restoration, Ratconfig reuse, Git/menu invocation and clean shutdown. Screenshots were inspected. This is scripted GUI integration, not human manual dogfood. Linux Popup WASM is byte-identical to baseline; Darwin WASM differs and native Darwin GUI interaction remains untested. The baseline GUI probe passed repeated toggles but timed out on sidebar restoration; the candidate passed that sequence. This does not establish a regression from the change or rule out intermittent sidebar behavior. aarch64-linux and x86_64-darwin have evaluation evidence only.

The changelog, LOC scorecards and shared-consumer update policy are current. Complete commands, artifacts and negative evidence are recorded in the owning Bead and local proof directory nova-popup-fenix-20260910. Main and Stable were not promoted.

Delivery requirements

For each remaining implementation Bead, preserve direct application pins and root nixpkgs, use native follows with a Nix-generated lockfile, and recheck exact before/after build identities. Child projects retain their build recipes and compiler requirements.

Completion requires the relevant child and Nova checks, exact-revision Linux CI and native Darwin Package Smoke, isolated installed-candidate proof, and matching cache publication/verification for changed artifacts. Exercise Popup and status-bar behavior in fresh isolated sessions; their child recipes have doCheck = false, so compilation alone is insufficient. Update documentation, changelog and LOC scorecards where required. Channel promotion remains separate.

Helix is resolved as an explicitly accepted rejection, not a delivered optimization. Popup is implemented with the evidence and limits above. Keep this tracker open until zjstatus has implementation evidence or an explicitly accepted rejection/deferral. Completed investigation Bead: yazelix-5vl-ms5y.


AI disclosure: This issue was written and updated by Codex (AI) at Lucca's request, using repository source inspection, recorded evaluation/build/runtime/cache checks, and Lucca's explicit decision to retain Helix's independent pin.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions