Repository navigation
Description
Bug
pkgs/id does not compile with --no-default-features on current main — two runtime modules depend on items that are gated behind the world feature:
pkgs/id/src/chat.rs:43:use crate::world::sanitize_chat;(used at :155 and :180) —crate::worldis#[cfg(feature = "world")](src/lib.rs:233-234), so the import is unresolved without the feature:error[E0432]: unresolved import crate::world.pkgs/id/src/invite.rs:43:crate::petname::is_format_charinInvite::new— thepetnamere-export is#[cfg(feature = "world")](src/lib.rs:207-208):error[E0433]: cannot find petname in crate.
Verification (2026-11-02, queue worker lane D, task 5043)
On clean main bc0afe2 (laptop worktree, no modifications):
cargo check --no-default-features --lib (in pkgs/id)
error[E0432]: unresolved import `crate::world`
error[E0433]: cannot find `petname` in `crate`
The same two errors block cargo test --no-default-features --lib <any test> — this is what prevents the #1708 acceptance variant 1 (world_names_are_bounded_and_are_a_single_path_segment without default features) from even compiling, independent of the test gating fixed by PR #4028 (merged 21dd7cc). With --features world the focused test passes.
Why it matters
The no-default-features build is a supported configuration (the #1708 test matrix names it). Right now it is silently broken at the lib level: any contributor running the reduced-feature build hits compile errors in modules unrelated to their change, and feature-gated test coverage (like the world-name test) cannot run in that configuration at all.
Acceptance criteria
cargo check --no-default-features --libsucceeds in pkgs/id on main.cargo test --no-default-features --lib world_names_are_bounded_and_are_a_single_path_segmentcompiles and passes (the test itself is feature-gated by PR test(id): gate world-name validation test by feature #4028; it must not assert world-only behaviour when the feature is absent).- The fix preserves behaviour with default/world features: chat sanitisation and invite name validation semantics unchanged (e.g. move
sanitize_chat/is_format_charto an ungated home, or gate the dependent code — pick the smaller, semantics-preserving option and pin it in the PR). - Existing test suites in the default configuration still pass.
Dedup
Found during task 5043 (the #1708 fix) on 2026-11-02. Searched open + closed for no-default-features / sanitize_chat / petname coverage — none found. Distinct from #1708 (the serve.rs test gating, fixed by PR #4028).
Activity
dezren39 commentedon Nov 2, 2026
Intake review
🤖 Fleet monitor (repo-fleet-monitor) intake pass, 2026-11-02.
bc0afe2f5c642501a01823adb237ee6fc9298d32; the gated items live inpkgs/id/src/lib.rs(world feature gates at :207-208 and :233-234).cargo check --no-default-features --libfails with E0432/E0433); no merged PR references this issue. The body already carries an acceptance-criteria section, so none was appended.--no-default-featuresconsumers are broken outright until fixed.sanitize_chat/is_format_char(or thin ungated wrappers) out from behind theworldgate if they are pure helpers; verify withcargo check --no-default-features --libplus the default-features build in CI.dezren39 commentedon Nov 3, 2026
agent-note:v1
state: reviewed (coverage loop-back)
Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 7426 (triage, queued, priority 50) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
Found via: coverage loop-back 2026-11-03
28 remaining items
dezren39 commentedon Nov 5, 2026
🤖 Agent note · parked
--no-default-featureslib build) — parked, not started: the same fix is already in flight under another task.cargo check --no-default-features --libon main first); if it closes unmerged, the fix is unowned again.Why parked (verified 2026-11-05, task 9771)
Issue #4159 names two sites, both verified still present at current main this run (
gh apireads):pkgs/id/src/chat.rsline 43use crate::world::sanitize_chat;andpkgs/id/src/invite.rsline 43crate::petname::is_format_char, with both targets world-gated inpkgs/id/src/lib.rs(lines 214–215, 245–246).PR #5662 — "fix(id): compile without world features (#3850)", branch
queue/8794-3850-id-no-default-features, OPEN and updated 2026-11-04T23:00:35Z — already implements exactly this: it moves chat text sanitation to an ungated shared module and uses the ungated format-character predicate for invite validation, touchingpkgs/id/src/chat.rs,pkgs/id/src/invite.rs, andpkgs/id/src/lib.rs, and reportscargo check -p id --no-default-featurespassing. Issue #3850 is the same defect (its title names the invite.rs half).Building a second PR for issue #4159 would duplicate task 8794's work, so task 9771 parks for 30 minutes naming PR #5662 as the conflicting artifact, per the worker runbook.
dezren39 commentedon Nov 5, 2026
🤖 Agent note · parked
dezren39 commentedon Nov 5, 2026
🤖 Agent note · done
cargo check -p id --no-default-features— passed. Closing issue id: --no-default-features lib build broken on main — chat.rs imports world-gated sanitize_chat, invite.rs uses world-gated petname #4159 as already fixed; no competing PR created.