Skip to content

feat(ui): gate WIP settings behind wip-settings cargo feature#111

Merged
iduartgomez merged 2 commits intomainfrom
feat/wip-settings-flag
May 5, 2026
Merged

feat(ui): gate WIP settings behind wip-settings cargo feature#111
iduartgomez merged 2 commits intomainfrom
feat/wip-settings-flag

Conversation

@iduartgomez
Copy link
Copy Markdown
Contributor

Summary

Settings UI shipped controls whose backends aren't wired yet. They write to local-state but nothing reads. Hide them in default builds.

Hidden behind new `wip-settings` cargo feature (off by default):

Wired controls keep showing: `verify_on_send`, `hide_unsigned`, `drafts_in_inbox`, `quarantine_unknown`, `auto_sign` + `signature`, theme, density, `serif_subjects`, `custom_relay`.

Test plan

  • `cargo check` default
  • `cargo check --features wip-settings`
  • `cargo check --no-default-features --features example-data,no-sync`
  • `cargo clippy` clean on all three
  • `cargo test` 26 pass

Follow-up

Once #85 / #69 land, drop the gate per affected control and surface them by default again.

Several Settings controls have a UI but no working backend:

- AFT screen (entire screen + nav entry) — recipient-side tier and
  max_age aren't configurable via InboxParams yet (#85). The picker,
  allow_known/allow_anon toggles, and bounce_message field all write
  to local-state but no contract/delegate code reads them.
- Privacy → Share read receipts — feature not implemented (#69).
- Privacy → Pad message length — no implementation; designed but
  un-built.
- Account → Display name — the `display_name` field is persisted but
  never read by any rendering code (Sent, Inbox, detail header all
  show `alias` only).

Off-by-default `wip-settings` feature surfaces them so dev/preview
builds keep the UI shape visible while the backends catch up. Default
released builds hide them so users don't toggle no-op switches.

Wired controls (verify_on_send, hide_unsigned, drafts_in_inbox,
quarantine_unknown, auto_sign + signature, theme, density,
serif_subjects, custom_relay) stay visible regardless of the flag.

CI parity: clippy + tests verified clean on three configs:
- default (`use-node`)
- offline (`example-data,no-sync`)
- wip (`use-node,wip-settings`)
- Skill gains a "WIP settings gating" section: when to gate, how to
  verify, and the three-config build check before pushing.
- Inventory's Settings section is rewritten to match the new wired
  vs. gated split: real consumers stay as `manual` rows, WIP rows
  flip to `blocked` with the issue link.
@iduartgomez iduartgomez force-pushed the feat/wip-settings-flag branch from 51f5590 to 9b87575 Compare May 4, 2026 15:35
@iduartgomez iduartgomez merged commit 8d408d5 into main May 5, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant