Skip to content

build(id): two test failures at main — stale shell-contract v1.3 expectation + sqlx-sqlite back in the lock (blocks code#3720 fold) #4015

Closed

Description

@dezren39

Third distinct id breakage today, found by the #3720 fold switch at main e860d3a9f (2026-11-01, switch log on the laptop ~/switch-20261101-145031.log). The package now compiles and the suite runs: 1957 passed, 2 failed (-p id --lib):

1. Stale contract-version expectation

commands::world::tests::the_contract_check_reports_conformance_or_every_violation (src/commands/world.rs:2103):

assertion `left == right` failed
  left: "3 frames conform to shell contract v1.4"
 right: "3 frames conform to shell contract v1.3"

The report string is formatted from the live contract version (now v1.4); the test's expected string at world.rs:2105 still says v1.3. Looks like a one-line expectation update — but the contract owner should confirm v1.4 is the intended current version rather than an accidental bump.

2. Dependency guard tripped: sqlx-sqlite is back in the lock

store_traits::tests::test_the_lock_has_no_sqlite_with_logsync_wired (src/store_traits.rs:701):

sqlx-sqlite depends on libsqlite3-sys: SQLite is back in the shipped build (see vendor/README.md)

grep -c sqlx-sqlite pkgs/id/Cargo.lock = 3 at main bdc66c7c8. This guard exists to force a decision: either the new dependency that pulled sqlx-sqlite in is unintended (remove / feature-gate it) or the wiring changed deliberately (update the guard with the reasoning recorded). Not fixing this one from the fold side — it needs the dependency owner's call.

Context

Today's sequence for the record: #3787 (voiding_scenarios runtime; fixed by #3871) → #3951 (vt100 dev-dep; fixed on main by d488f321c) → this issue. Each fix revealed the next failure behind it because the suite could not run to completion until now. The fold itself (#3720) is fully merged and staged; a green id suite is the only remaining gate for nixos-rebuild switch on the laptop.

Activity

  1. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    Fixed in PR #4027 (branch fix/id-4015):

    1. Contract expectation — stale test confirmed: d488f321 deliberately bumped the contract revision 3 → 4 with new ScreenPatch frame fields and updated the contract's own tests; only the world.rs expectation was missed. Test now expects v1.4 (the code was right).
    2. sqlx-sqlite — accidental creep, removed at the owning configuration; NOT an intentional adoption, so the guard stands unamended. Root cause: the vendored p2panda crates were automatic workspace members, and member p2panda-sync's test_utils feature chain (→ p2panda-store/test_utils → sqlite) swept sqlx into the lock at the pkgs/id: split the monolith crate into sub-crates along module seams (prioritized by Drew 2026-11-01) #3447 workspace conversion. Fix = [workspace] exclude for both vendored crates + cargo update -w (removals only, zero version changes).

    Verification so far (laptop): cargo test -p id --lib 1514 passed / 0 failed at the fix tip; id-core lib 238/0; both named tests ok; nix build .#id-web in progress on the final tip — its predecessor run showed the in-sandbox suite at 1987 passed / 0 failed with only the then-unfixed doc tests failing (see #4073).

  2. added a commit that references this issue on Nov 2, 2026
  3. dezren39 commented on Nov 2, 2026

    @dezren39
    MemberAuthor

    Merged: PR #4027 → merge commit ee75087f, verified per the day's protocol (object exists, branch tip is an ancestor of origin/main, content greps in the tree: v1.4 expectation, workspace exclude line, Cargo.lock sqlx-sqlite count = 0).

    Final verification: nix build .#id-web on the PR tip EXIT=0 (in-sandbox suite + doc tests green). The id gate for the #3720 fold switch is clear; the switch run follows.

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

    priority/lowNice to have; do when convenient

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions