client-core: gate the host-process modules behind native #205
No reviewers
Labels
No labels
priority/P0
priority/P1
priority/P2
release/v0.1.0
status/blocked
status/planned
type/bug
type/design
type/test-gap
type/tracker
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
natsukium/felis!205
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/portable-core-build-195"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #195.
env_base,shader_clock, andpipewere declared unconditionally whilereaching for
native-only items (connector::Carrier,config::ShaderAnimation)and
cfg(unix|windows)helpers, sofelis-client-corewithdefault-features = false— the documented reuse path for a browser client —failed to compile on wasm32 and on the host alike. All three are host-process
concerns and their only consumers build with default features, so they are now
gated behind
native.The regression survived three weeks because no gate ever built that
configuration: every CI job runs
--all-features.pr.ymland the newjust check-portablerecipe (wired intojust check) now lint-p felis-client-core --no-default-features --target wasm32-unknown-unknown.Clippy rather than
check, so-D warningsalso catches the deadcfgleftovers a feature split strands.
Doc cascade:
docs/reference/testing.mdrecords the new gate in the checktables, and
CONTRIBUTING.mdfollows the same list.Verified: just check green (fmt, clippy, nextest, deny, proto-compat); reviewed
by pi luna + pi sol; docs proofread by Gemini gemini-3.8-flash-high
Deferred
portable core pulls in — they compile clean for wasm32 today as a transitive
consequence of the felis-client-core guard, so a separate step would add CI
time without adding coverage.
docs/reference/workspace.md's reuse table— the table names the crates reused per client kind, not their modules; the
module-level invariant now lives in the crate doc comment, which is where a
contributor editing
lib.rswill see it.