Skip to content

build(id): id-core lib test cannot find crate vt100 — nixos-rebuild switch cannot complete (blocks code#3720 fold) #3951

Closed

Description

@dezren39

Symptom

nixos-rebuild switch on the laptop fails building id-0.1.0.drv:

error[E0433]: cannot find module or crate `vt100` in this scope
error: could not compile `id-core` (lib test) due to 4 previous errors

Hit 2026-11-01 13:36 CST evaluating main 1b1e3abd (log: laptop ~/switch-20261101-132033.log). This is a different id breakage from #3787 (voiding_scenarios runtime failures, fixed by #3871) — that fix is in the tree; this one surfaced behind it.

Root cause

pkgs/id/crates/id-core/src/world_presentation.rs uses vt100::Parser in its test module (ANSI replay assertions). The root package declares vt100 = "=0.16.2" in its own [dev-dependencies], but pkgs/id/crates/id-core/Cargo.toml [dev-dependencies] has only rqrr — when the world-presentation module and its tests were extracted into id-core (crate split #3447), the vt100 dev-dependency did not follow.

Fix

Add vt100 = "=0.16.2" to id-core's [dev-dependencies] (+ the one-line Cargo.lock update). Verification: nix-build pkgs/id/default.nix -A default (buildRustPackage, full check phase) in a worktree before merge.

Blocks the flake fold activation in #3720 — the fold's merges (#3847/#3871/#3848/#3868) are all landed and verified; this is the only remaining build blocker.

Acceptance criteria

Activity

  1. added
    priority/lowNice to have; do when convenient
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    source/humanFiled directly by a human
    effort/xsTrivial: expected under 30 minutes of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 1, 2026
  2. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Intake review

    Fleet monitor intake enrichment (protocol §5), 2026-11-01.

    Still live: checked merged PRs and recent work in this area — no merged PR explicitly resolves this issue, and the filing evidence is from current main today. Not closing.

    Related: Related: issue #3923 is the SAME root cause filed from the test-compile side (id-core lib tests cannot find vt100); the one-line dev-dependency fix closes the root cause for both — neither should close without an explicit fixes-reference to the fixing PR. Issue #3962 is a distinct ssh-feature breakage in the same neighbourhood. Blocks issue #3720's fold activation.

    Risks / notes: Risk: low — dev-dependency only, no shipped-code change. Watch that the Cargo.lock update stays one line and does not pull a second vt100 version.

    Suggested approach: Add vt100 = "=0.16.2" to id-core [dev-dependencies], refresh Cargo.lock, verify with the full nix build (check phase) before merge, per the issue's own verification plan.

    Labels normalized (kind/source/status/priority/effort/app as applicable) and meta/enriched applied; an ## Acceptance criteria section was appended to the issue body (original body preserved verbatim above it).

  3. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Fixed on main — but not by the PR prepared for it. d488f321c (feat(id): revisioned JSON ScreenPatch view frames — #805 Phase 1) added vt100 = "=0.16.2" and iroh (test-utils) to id-core's [dev-dependencies] with the same crate-split-fallout (#3447) diagnosis recorded here. Verified present in the laptop primary tree at e860d3a9f (grep: vt100 declared in pkgs/id/crates/id-core/Cargo.toml). The duplicate PR #3967 was closed as superseded. The fold switch (#3720) is proceeding on this tree; its build is the end-to-end confirmation.

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

    effort/xsTrivial: expected under 30 minutes of workkind/bugSomething isn't working (prefixed form of the classic bug label)meta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/lowNice to have; do when convenientsource/humanFiled directly by a humanstatus/needs-triageNot yet triaged; needs a first look

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions