Skip to content

id-core: lib tests do not compile — world_presentation tests use vt100, which is not an id-core dependency #3923

Closed

Description

@dezren39

Found 2026-11-01 by queue lane F while verifying task 5845 (PR #3891) on the laptop; pre-existing on main, unrelated to that PR (which touches only pkgs/id/src/abuse.rs).

Evidence

  • cargo test --lib in pkgs/id (workspace default members) fails:
    error[E0433]: cannot find module or crate vt100 in this scope ×4, could not compile id-core (lib test).
  • First site: crates/id-core/src/world_presentation.rs:689 — test code calls vt100::Parser::new(24, 80, 0).
  • crates/id-core/Cargo.toml declares no vt100 dependency at all.
  • vt100 = "=0.16.2" exists only in the ROOT package manifest (pkgs/id/Cargo.toml line ~149, dev-dependencies) — a leftover of the pkgs/id: split the monolith crate into sub-crates along module seams (prioritized by Drew 2026-11-01) #3447 crate split: world_presentation moved into id-core, its test-only dependency did not.

Impact

Any workspace-level cargo test in pkgs/id fails before running a single test, including for unrelated packages; workers have been working around it with cargo test -p id --lib, which silently skips id-core's own test suite.

Acceptance

  • vt100 = "=0.16.2" added to crates/id-core [dev-dependencies] (matching the root pin), or the test moved/rewritten to not need vt100.
  • cargo test --lib in pkgs/id compiles and runs id-core tests green (or any remaining failures are pre-existing and filed separately).
  • CI command for pkgs/id exercises the workspace default members so this cannot silently regress again.

Acceptance criteria

Activity

  1. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Additional evidence from queue task 5842 (lane B, 2026-11-01):

    • Same split fallout in crates/id-core/src/connectivity.rs:292,296: tests use iroh::test_utils and CaTlsConfig::insecure_skip_verify, which need iroh's test-utils feature — also only in the parent crate's dev-dependencies.
    • Fix applied in the task 5842 PR (branch queue/5842-805-screenpatch-phase-1): added vt100 = "=0.16.2" and iroh = { version = "1", features = ["test-utils"] } to id-core [dev-dependencies] (same pins as the parent). Result on the laptop: cargo test -p id-core --lib — 238 passed, 0 failed.
    • Still broken on current main, NOT fixed by that PR (parent-crate side): cargo test --all-features -p id --lib fails to compile src/world_ssh.rs — render_ansi_diff is pub(crate) in id-core (world_presentation.rs:457) but called from the parent crate (world_ssh.rs:921), and auth_publickey signature mismatch against the resolved russh (VerifiedPublicKey); plus src/web/assets.rs RustEmbed requires a built pkgs/id/web/dist in a bare worktree. The parent crate's session/shell-contract tests therefore could not be run locally for task 5842; they remain a CI/verification gap.
  2. added
    kind/bugSomething isn't working (prefixed form of the classic bug label)
    source/queue-workerFiled or worked by the queue/worker pilot
    priority/normalOrdinary priority (the default)
    effort/xsTrivial: expected under 30 minutes of work
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 1, 2026
  3. 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 #3951 is the SAME root cause filed from the nixos-rebuild side; one fix serves both. Issue #3962 references this issue for the same world_presentation.rs neighbourhood (distinct ssh breakage).

    Risks / notes: Impact is understated by the workaround culture: cargo test -p id --lib silently skips id-core's suite, so regressions in world_presentation currently have no running tests on main.

    Suggested approach: Add the dev-dependency to id-core (matching the root pin =0.16.2), refresh Cargo.lock, and verify a full workspace cargo test --lib compile in pkgs/id.

    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).

  4. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  5. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · triaged (compile defect fixed; CI gap remains)

    Part 1 — compile defect: FIXED (evidence).

    Part 2 — CI coverage: STILL OPEN (the reason this issue stays open).

    • .github/workflows/id-check.yml:197 still runs nix develop ./pkgs/id --command cargo test -p id — that excludes id-core's own test target, which is exactly the silent skip that let this break land unnoticed. The issue's third acceptance bullet asks for the workspace default members; that change has not been made.

    Ordering: no blockers. The follow-up is a one-step CI edit; it does not touch Rust sources. No branch or competing PR opened from this triage.

    Labels synced: claim labels cleared; the queue task is complete and task 8493 carries the remaining work.

  6. removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  7. 10 remaining items

  8. added and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 4, 2026
  9. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: fleet monitor
    • Session / ID: repo-fleet-monitor run 2026-11-03 22:12 CST (safety-net reconciliation)
    • Found via: monitor reconciliation
    • Task: This issue carried queue/queued AND queue/claimed + work/assigned, but the live-queue check found no live task for it — the claim labels were stale. Enqueued a fresh triage packet to repo-health-code-pilot and reset labels to the truth (queue/queued + status/needs-triage).
    • Expectation: a queue lane claims the triage task and routes the fix.
  10. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 4, 2026
  11. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    Picked up by lane code-k as task 9195 (triage). Verifying issue #3923 against current main on the laptop clone.

  12. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done (triage verdict: ALREADY FIXED at current main — closing)

    • Agent: queue worker (repo-worker-code), lane code-k
    • Session / ID: task 9195 (triage)
    • Evidence, verified fresh on the laptop clone at origin/main 0dab47d: pkgs/id/crates/id-core/Cargo.toml now carries vt100 = "=0.16.2" under [dev-dependencies], with an in-file comment naming this exact failure: "Crate-split fallout (pkgs/id: split the monolith crate into sub-crates along module seams (prioritized by Drew 2026-11-01) #3447): the presentation ANSI-diff tests and the connectivity startup-wait tests moved into this crate with the modules, but their test-only dependencies stayed behind in the parent crate's dev-dependencies, so this crate's test targets did not compile on their own. Same pins as the parent crate. Dev only; no runtime effect." The vt100::Parser uses in pkgs/id/crates/id-core/src/world_presentation.rs (lines 995-1027) are all inside #[test] functions, so the dev-dependency is the correct and complete fix.
    • Verdict: the compile failure issue id-core: lib tests do not compile — world_presentation tests use vt100, which is not an id-core dependency #3923 reports no longer exists at current main. Closing as already fixed; no follow-up task needed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)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/normalOrdinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilottask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions