Skip to content

pkgs/id: test_the_lock_has_no_sqlite_with_logsync_wired fails on main — Cargo.lock sqlx-sqlite edge not in the test's allow-list #3930

Closed

Description

@dezren39

Failing on main (verified 2026-11-01, lane D worker): store_traits::tests::test_the_lock_has_no_sqlite_with_logsync_wired in pkgs/id panics at src/store_traits.rs:701:

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

Evidence it is pre-existing, not a recent regression from the nearest merge:

  • The test reads only pkgs/id/Cargo.lock + pkgs/id/Cargo.toml (via CARGO_MANIFEST_DIR) and asserts no package outside the allow-list has a SQLite-family edge. The committed Cargo.lock at 33aefa7 (parent of the PR feat(id): region-seam handoff journal foundation (#3900) #3922 merge) already contains the sqlx-sqlite 0.9.0 package whose dependencies include libsqlite3-sys — the exact edge the test rejects (the sqlx facade's optional backend packages are recorded in the lock even when inactive).
  • The test FAILS identically at 33aefa7 and at post-merge main (876b402) in clean worktrees on the laptop; PR feat(id): region-seam handoff journal foundation (#3900) #3922 changed zero Cargo files.
  • Repro: cargo test -p id --lib test_the_lock_has_no_sqlite_with_logsync_wired in pkgs/id at either commit → 0 passed, 1 failed, panic at store_traits.rs:701.

What a fix looks like: either the test's allow-list learns the sqlx facade shape (a package whose sqlite edge is optional/inactive in the default-feature graph — the test's second half already asks cargo tree for the shipped graph, so the lock-edge half may need the same treatment for sqlx → sqlx-sqlite), or the lock is regenerated so the inactive backend packages are absent. The test's own doc comment says the lock records optional edges even when inactive, which is exactly the sqlx-sqlite case.

Related: #3160 (closed) previously tracked lib-test failures on main including a rusqlite guard.

Acceptance criteria

  • cargo test -p id --lib test_the_lock_has_no_sqlite_with_logsync_wired passes on current main.
  • The fix addresses the lockfile-vs-allow-list mismatch directly (allow-list learns the sqlx facade's inactive backend packages, or the lock no longer records them) without weakening the test's actual guarantee: no SQLite edge in the shipped build's active dependency graph.
  • The test still fails if a real SQLite dependency is introduced into the shipped graph (negative check).

Activity

  1. added
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    kind/testTest coverage, test infrastructure, or test-only fixes
    source/queue-workerFiled or worked by the queue/worker pilot
    priority/normalOrdinary priority (the default)
    effort/sSmall: expected under 2 hours 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: PR #3922 explicitly did NOT introduce this (zero Cargo files changed; the test fails identically at its parent 33aefa7). No merged PR resolves it. Neighbourhood: issue #3923 / issue #3951 are separate id build breakages on current main.

    Risks / notes: The trap is weakening the guard: the test exists to keep SQLite out of the shipped build. A fix that simply allow-lists sqlx-sqlite unconditionally would pass while defeating the guard if the backend ever activates.

    Suggested approach: Teach the allow-list to distinguish lockfile-recorded inactive optional backends from active graph edges (or prune the inactive packages from the lock), and keep a negative check that a real SQLite edge still fails the test.

    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. 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
  4. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: triaged (coverage pass)
    Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
    Found via: coverage pass 2026-11-03

  5. 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 3, 2026
  6. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

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/sSmall: expected under 2 hours of workkind/testTest coverage, test infrastructure, or test-only fixesmeta/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