feat(settings): search across all settings (#453 phase 3) #467
Merged
jared
merged 2 commits from 2026-10-25 19:38:23 -04:00
feat/settings-search into lotus
No Reviewers
Labels
Clear labels
a11y
area: appearance
area: auth-session
area: build-ci
area: calls
area: desktop
area: media
area: messaging
area: mobile
area: moderation
area: navigation
area: notifications
area: settings
area: threads
bug
dependencies
docs
duplicate
enhancement
help wanted
invalid
needs-human-review
performance
planning
priority: critical
priority: high
priority: low
priority: medium
qa
question
research
security
tech-debt
ux
wontfix
Accessibility: keyboard, screen reader, contrast, motion
Client area: appearance
Client area: auth-session
Client area: build-ci
Client area: calls
Client area: desktop
Client area: media
Client area: messaging
Client area: mobile
Client area: moderation
Client area: navigation
Client area: notifications
Client area: settings
Client area: threads
Something is not working
Third-party package versions and advisories
README / LOTUS_* docs wrong or missing
This issue or pull request already exists
New feature
Need some help
Something is wrong
Re-render storms, leaks, heavy work on hot paths
Data loss, security hole, or crash on a main path
Broken feature or serious usability problem
Minor issue or polish
Wrong behaviour in an edge case or notable degradation
Manual QA: shipped, needs a human in a real environment
More information is needed
XSS, unsafe URLs, data leaks, auth/session
Code health, dead code, fragile patterns
Usability or visual inconsistency
This won't be fixed
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: LotusGuild/cinny#467
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Phase 3 of the settings audit #453. Fixes #463.
Stacked on #466 (phase 2), which is still in CI. Until #466 merges, this PR's diff also shows its commits. The new commit is
22d5aea5.What it does
How the index works (no hand-kept list)
.tsxsource as raw text (import.meta.glob(..., { query: '?raw' })). It isn't in the main bundle.parseSettingsSourcepulls each<SettingTile title=… description=…>and each section header out of it.General.tsx, it comes from which section function the setting is in.General.tsxneeds a line inGENERAL_SECTIONS.${}, variables) are skipped.Tested
settings-search.spec.tscovers:🤖 Generated with Claude Code
https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
CI failure on the first run, now fixed in
02bd356a.The failing test was the "#219 gallery lightbox" e2e test, which is unrelated to search. The test image showed its "Retry" overlay because the media download had failed.
Cause: on a first visit, or just after an update, the service worker only takes control of the page once it activates. An image requested before then goes out without the access token and fails. Every Playwright test starts in a fresh browser, and real users can see the same "Retry" on first load.
Fix: a failed image now waits for the worker to take control (or a moment) and retries once by itself. "Retry" only shows if that fails too. Encrypted media is unchanged.
Result: locally the test failed 1 run in 4 before, and passes 10/10 after. Unit tests: 1,443 pass.
🤖 Generated with Claude Code