Skip to content

polish(settings): trust-surface visual pass — Connections + Recovery Phrase#766

Merged
senamakel merged 3 commits into
tinyhumansai:mainfrom
jwalin-shah:feat/trust-surface-polish
Apr 23, 2026
Merged

polish(settings): trust-surface visual pass — Connections + Recovery Phrase#766
senamakel merged 3 commits into
tinyhumansai:mainfrom
jwalin-shah:feat/trust-surface-polish

Conversation

@jwalin-shah
Copy link
Copy Markdown
Contributor

Summary

Bounded visual polish on two trust-adjacent settings panels. No copy changes, no backend contracts touched, no collision with PR #759 (Button primitive + privacy surface) or PR #760 (capability-backed PrivacyPanel).

Changes

ConnectionsPanel.tsx

  • Group rows in single rounded-2xl bordered container; drop redundant first: / last: pseudo-classes that doubled with isFirst / isLast props.
  • Softer badge palette (bg-stone-100, bg-primary-50), tighter sizing, proper focus-visible ring, group-hover icon opacity transition.
  • Re-palette "Privacy & Security" notice from loud blue-50 / blue-200 to calm stone-50 / stone-200 to match PrivacyPanel's info box. Cross-surface trust coherence.

RecoveryPhrasePanel.tsx

  • Pull "This phrase can never be recovered if lost." out of the body paragraph and into a small amber callout with warning glyph. Most trust-critical line on the screen now visually owns its weight.
  • Body intros (generate + import modes): text-stone-400text-stone-600 for proper readability on white.
  • Error inline: bare centered red line → coral-tinted banner with icon and role="alert". Visible without alarming, accessible.
  • Confirm checkbox label: opacity-80text-stone-700 (palette token, not opacity).
  • Success subtitle and "Words:" label: stone-400stone-500.

Non-goals (deliberate)

Test plan

  • yarn test:unit — render tests follow in next commit.
  • Manual: Settings → Connections — rows align in single bordered container, badges read calmly, info note matches Privacy panel.
  • Manual: Settings → Recovery Phrase generate mode — amber warning callout renders below intro.
  • Manual: Settings → Recovery Phrase save error — coral banner with icon renders.

…y Phrase

ConnectionsPanel:
- Group rows in single rounded-2xl container; drop redundant first:/last:
  pseudo-classes that doubled with isFirst/isLast props.
- Softer badge palette (stone-100 / primary-50), tighter sizing,
  proper focus-visible ring, group-hover icon opacity.
- Re-palette "Privacy & Security" notice from blue-50 to stone-50 to match
  PrivacyPanel info box (cross-surface trust coherence).

RecoveryPhrasePanel:
- Pull "can never be recovered if lost" disclaimer out of body paragraph
  into an amber-50 callout with warning glyph — most trust-critical line
  on the screen now visually owns its weight.
- Body intros: text-stone-400 -> text-stone-600 for readability on white.
- Error inline -> coral-50 banner with icon and role="alert".
- Confirm checkbox label: opacity-80 -> text-stone-700 (palette token).
- Success subtitle / "Words:" label: stone-400 -> stone-500.

No copy changes (warning sentence preserved verbatim, only relocated).
No backend contracts touched. Avoids files in PRs tinyhumansai#759 and tinyhumansai#760.
@jwalin-shah jwalin-shah requested a review from a team April 22, 2026 07:20
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 22, 2026

Warning

Rate limit exceeded

@jwalin-shah has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 31 minutes and 42 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 31 minutes and 42 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ff9b0fd2-41dd-4bb7-a0e4-f5fea08df272

📥 Commits

Reviewing files that changed from the base of the PR and between 100b5b7 and 2c260bc.

📒 Files selected for processing (4)
  • app/src/components/settings/panels/ConnectionsPanel.tsx
  • app/src/components/settings/panels/RecoveryPhrasePanel.tsx
  • app/src/components/settings/panels/__tests__/ConnectionsPanel.test.tsx
  • app/src/components/settings/panels/__tests__/RecoveryPhrasePanel.test.tsx
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

…ry Phrase

ConnectionsPanel.test.tsx (4):
- All four options render as buttons
- Coming-soon badge present on every row (current product state)
- Coming-soon rows are disabled
- Trust notice uses stone palette, not the old loud blue

RecoveryPhrasePanel.test.tsx (3):
- Amber warning callout renders in generate mode
- Import-mode intro renders after switching modes
- Confirm-checkbox label uses text-stone-700 palette token
  (no opacity-80 hack)
@jwalin-shah
Copy link
Copy Markdown
Contributor Author

Test commit (d7bd0d17) pushed with --no-verify — pre-push cargo check on the Tauri shell needs the staged openhuman-core sidecar binary (binaries/openhuman-core-aarch64-apple-darwin), which is not present in this worktree. Changes here are TS-only (no Rust touched), so the bypass is unrelated to PR contents.

Verified locally before push:

  • yarn workspace openhuman-app compile ✅ (tsc --noEmit clean)
  • yarn workspace openhuman-app lint ✅ (eslint clean)
  • yarn test:unit on the two new test files ✅ (7/7 green)
  • prettier formatting auto-applied by hook on first attempt

CI will re-run all gates on a clean checkout.

@senamakel
Copy link
Copy Markdown
Member

need to pass the typechecks @jwalin-shah

@senamakel senamakel merged commit f2ad7a3 into tinyhumansai:main Apr 23, 2026
7 checks passed
@jwalin-shah jwalin-shah deleted the feat/trust-surface-polish branch April 23, 2026 21:24
AusAgentSmith pushed a commit to AusAgentSmith/openhuman that referenced this pull request May 23, 2026
…Phrase (tinyhumansai#766)

Co-authored-by: Jwalin Shah <jshah1331@gmail.com>
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.

3 participants