jared
46567555e1
fix: ESLint errors and Prettier formatting
...
CI / Build & Quality Checks (push) Successful in 10m27s
Trigger Desktop Build / trigger (push) Successful in 5s
ESLint errors:
- usePresenceUpdater: remove redundant `const userId` inside handlePageHide
that shadowed the outer declaration (no-shadow)
- RoomViewHeader: prefix unused encryptedRoom with _ (no-unused-vars)
Prettier: reformat 14 files to match project style
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-10 22:55:32 -04:00
jared
77a29ed3c6
fix: presence MaxListeners leak + self-host fonts to fix tracking prevention
...
CI / Build & Quality Checks (push) Successful in 10m29s
Trigger Desktop Build / trigger (push) Successful in 5s
Presence: subscribe on MatrixClient (mx) instead of individual User objects.
User EventEmitters have a 10-listener default; the same user appears in many
mounted components simultaneously (member list, avatars, presence rings) and
was accumulating 11+ listeners per event, causing MaxListenersExceededWarning
on User.presence, User.currentlyActive, and User.lastPresenceTs.
Fonts: download JetBrains Mono and Fira Code latin subsets to public/fonts/
and replace Google Fonts CDN links (two external origins) with a local CSS
file. Windows WebView2 tracking prevention was blocking googleapis.com and
gstatic.com, logging 18+ "blocked" warnings per session. VT323 remains on
Google Fonts as it's decorative and not a default option.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-10 18:39:03 -04:00
jared
5469740f4c
feat: P5-21 mention color, P5-22 font selector, P5-27 notification presets; update docs
...
CI / Build & Quality Checks (push) Successful in 10m27s
Trigger Desktop Build / trigger (push) Successful in 7s
- P5-21: Custom @mention highlight color picker in Settings → Appearance.
CSS vars with luminance-computed text color; resets cleanly to theme default.
- P5-22: Font selector (System, Inter, JetBrains Mono, Fira Code) in
Settings → Appearance. Fira Code added to Google Fonts preload.
- P5-27: Gaming/Work/Sleep preset buttons at top of Settings → Notifications.
Each atomically applies a group of notification settings.
- AppearanceEffects component in App.tsx applies CSS vars on settings change.
- LOTUS_BUGS.md: mark presence + manifest icon bugs as resolved.
- LOTUS_TODO.md: mark P3-6, P5-21, P5-22, P5-27 as [x].
- LOTUS_FEATURES.md: document all four completed features.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-10 15:39:35 -04:00
Lotus Bot
61a1f008d0
chore: upgrade i18next 26, prettier 3, fontsource-variable, domhandler 6, lint-staged 17
...
- i18next 23->26 + react-i18next 15->17
- prettier 2->3, reformat all files
- replace @fontsource/inter with @fontsource-variable/inter 5, update import path
- domhandler 5->6 (aligns with transitive deps)
- lint-staged 16->17
2026-05-21 23:30:50 -04:00
Lotus Bot
42b9cc2b64
chore: prettier format all files, brotli, Sentry release tagging, CI gates
...
Prettier: auto-formatted 103 files to fix baseline. Prettier check in CI
is now a hard gate (removed continue-on-error).
Brotli: installed libnginx-mod-http-brotli-filter/static. Enabled in nginx
with brotli_static on for pre-compressed assets and comp_level 6.
Sentry releases: deploy script now exports VITE_APP_VERSION=<git-short-sha>
before building so each Sentry release maps to an exact commit.
CI also passes github.sha as VITE_APP_VERSION.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 20:49:33 -04:00
Lotus Bot
8fa079c289
fix: add color-scheme meta, og:type, fix fonts.googleapis.com crossorigin\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 13:48:19 -04:00
Lotus Bot
8666daaf9d
Security, performance, bug fixes, and TDS improvements
...
Security:
- HIGH-1: Validate hex color format before CSS interpolation in sanitize.ts
- HIGH-5: Add sandbox attribute to OpenStreetMap iframe
- MED-1: Fix permissive URL scheme regex in LINKIFY_OPTS
- MED-3/HIGH-4: Add .js.map blocking + CSP header to nginx config
- LOW-2: Validate OIDC authUrl scheme before window.open
- Accessibility: Remove maximum-scale=1.0 from viewport meta (WCAG 1.4.4)
Performance:
- O(1) Map index in computePositions (was O(M×T) findIndex per member)
- Add RoomMemberEvent.Membership subscription so positions update on join/leave
- Fix uncleaned 2000ms setTimeout in RoomTimeline useLayoutEffect
Bug fixes:
- BUG-5: Add QUEUED/CANCELLED cases to DeliveryStatus component
- BUG-6: Guard DeliveryStatus against state events via isState() check
- BUG-10: Clamp PiP position on window resize
- BUG-14: Separate runLotusBootSequence into dedicated useEffect([lotusTerminal])
- Fix aria-live on typing indicator (WCAG 4.1.3)
- Add aria-label + aria-multiline to message editor
TDS (Lotus Terminal Design System):
- Add reaction chip styles (dark + light mode)
- Add GIF picker CSS via globalStyle instead of runtime injection
- Add URL preview styles (dark + light mode)
- Add complete GIF picker light-mode TDS block (was missing)
2026-05-19 16:26:25 -04:00
root
db57cc202e
Implement LotusGuild TDS v1.2 terminal mode
...
- Rewrite lotus-terminal.css.ts: TDS-exact dot-grid bg, scanlines, vignette,
glitch keyframes, orange caret, cyan scrollbars, all --lt-* CSS vars
- Fix lotusTerminalTheme in colors.css.ts: full TDS color palette
(Orange primary, Cyan secondary, Green success, Amber warning, Red critical)
- Add lotus-boot.ts: matrix boot sequence at 65ms intervals, green phosphor glow
- Update ThemeManager.tsx: call runLotusBootSequence on terminal mode activate,
UnAuthRouteThemeManager now supports lotusTerminal setting
- Update index.html: add JetBrains Mono + VT323 from Google Fonts
2026-05-13 22:36:48 -04:00
root
f3ec49fe88
Add Lotus Terminal Mode + fix all remaining Cinny branding
...
- New: Lotus Terminal Mode toggle in Appearance settings
- Red phosphor color scheme (bg #0a0000, primary #ff3300, accent #00dd66)
- Monospace font override (JetBrains Mono / Fira Code / Cascadia Code)
- Retro CRT scanline overlay via CSS pseudo-element
- Wired into ThemeManager with dedicated lotusTerminalBodyClass
- Branding: replace all user-visible Cinny references with Lotus Chat
- WelcomePage, AuthLayout, SplashScreen, index.html meta tags
- Device display names in login/register/token flows
- System notification brand field
- (Preserved internal Matrix protocol CinnySpaces event type)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-13 22:22:06 -04:00
root
5d984a4af4
Phase 1: Lotus Chat branding — title, favicon, logo, meta tags, SVG icons, all icon sizes
2026-05-13 17:56:39 -04:00
Ajay Bura
d90ce5b679
fix ctrl + k hotkey not working for browser with some extensions ( #2481 )
2025-09-12 21:52:51 +10:00
Ajay Bura
56bd5060d9
(chore) remove outdated code ( #1765 )
...
* optimize room typing members hook
* remove unused code - WIP
* remove old code from initMatrix
* remove twemojify function
* remove old sanitize util
* delete old markdown util
* delete Math atom component
* uninstall unused dependencies
* remove old notification system
* decrypt message in inbox notification center and fix refresh in background
* improve notification
---------
Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com >
2024-07-08 21:27:10 +10:00
Kimiblock Moe
7a57e0322f
Prevent Safari iOS from auto zooming ( #1756 )
...
Thanks @pixlxip:beeper.com
2024-06-05 18:13:19 +05:30
Ajay Bura
5a8b82a12e
feat: URL navigation in auth ( #1603 )
...
* bump to react 18 and install react-router-dom
* Upgrade to react 18 root
* update vite
* add cs api's
* convert state/auth to ts
* add client config context
* add auto discovery context
* add spec version context
* add auth flow context
* add background dot pattern css
* add promise utils
* init url based routing
* update auth route server path as effect
* add auth server hook
* always use server from discovery info in context
* login - WIP
* upgrade jotai to v2
* add atom with localStorage util
* add multi account sessions atom
* add default IGNORE res to auto discovery
* add error type in async callback hook
* handle password login error
* fix async callback hook
* allow password login
* Show custom server not allowed error in mxId login
* add sso login component
* add token login
* fix hardcoded m.login.password in login func
* update server input on url change
* Improve sso login labels
* update folds
* fix async callback batching state update in safari
* wrap async callback set state in queueMicrotask
* wip
* wip - register
* arrange auth file structure
* add error codes
* extract filed error component form password login
* add register util function
* handle register flow - WIP
* update unsupported auth flow method reasons
* improve password input styles
* Improve UIA flow next stage calculation
complete stages can have any order so we will look for first stage which is not in completed
* process register UIA flow stages
* Extract register UIA stages component
* improve register error messages
* add focus trap & step count in UIA stages
* add reset password path and path utils
* add path with origin hook
* fix sso redirect url
* rename register token query param to token
* restyle auth screen header
* add reset password component - WIP
* add reset password form
* add netlify rewrites
* fix netlify file indentation
* test netlify redirect
* fix vite to include netlify toml
* add more netlify redirects
* add splat to public and assets path
* fix vite base name
* add option to use hash router in config and remove appVersion
* add splash screen component
* add client config loading and error screen
* fix server picker bug
* fix reset password email input type
* make auth page small screen responsive
* fix typo in reset password screen
2024-01-21 18:20:56 +05:30
greentore
fe2e58c744
Prevent manifest.json from being inlined ( #1359 )
...
* Disable asset inlining
* Prevent `manifest.json` from being inlined
* Update backtick to single quote in vite.config.js
---------
Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com >
2023-08-03 09:53:28 +05:30
Ajay Bura
64f2f25702
Refactor state & Custom editor ( #1190 )
...
* Fix eslint
* Enable ts strict mode
* install folds, jotai & immer
* Enable immer map/set
* change cross-signing alert anim to 30 iteration
* Add function to access matrix client
* Add new types
* Add disposable util
* Add room utils
* Add mDirect list atom
* Add invite list atom
* add room list atom
* add utils for jotai atoms
* Add room id to parents atom
* Add mute list atom
* Add room to unread atom
* Use hook to bind atoms with sdk
* Add settings atom
* Add settings hook
* Extract set settings hook
* Add Sidebar components
* WIP
* Add bind atoms hook
* Fix init muted room list atom
* add navigation atoms
* Add custom editor
* Fix hotkeys
* Update folds
* Add editor output function
* Add matrix client context
* Add tooltip to editor toolbar items
* WIP - Add editor to room input
* Refocus editor on toolbar item click
* Add Mentions - WIP
* update folds
* update mention focus outline
* rename emoji element type
* Add auto complete menu
* add autocomplete query functions
* add index file for editor
* fix bug in getPrevWord function
* Show room mention autocomplete
* Add async search function
* add use async search hook
* use async search in room mention autocomplete
* remove folds prefer font for now
* allow number array in async search
* reset search with empty query
* Autocomplete unknown room mention
* Autocomplete first room mention on tab
* fix roomAliasFromQueryText
* change mention color to primary
* add isAlive hook
* add getMxIdLocalPart to mx utils
* fix getRoomAvatarUrl size
* fix types
* add room members hook
* fix bug in room mention
* add user mention autocomplete
* Fix async search giving prev result after no match
* update folds
* add twemoji font
* add use state provider hook
* add prevent scroll with arrow key util
* add ts to custom-emoji and emoji files
* add types
* add hook for emoji group labels
* add hook for emoji group icons
* add emoji board with basic emoji
* add emojiboard in room input
* select multiple emoji with shift press
* display custom emoji in emojiboard
* Add emoji preview
* focus element on hover
* update folds
* position emojiboard properly
* convert recent-emoji.js to ts
* add use recent emoji hook
* add io.element.recent_emoji to account data evt
* Render recent emoji in emoji board
* show custom emoji from parent spaces
* show room emoji
* improve emoji sidebar
* update folds
* fix pack avatar and name fallback in emoji board
* add stickers to emoji board
* fix bug in emoji preview
* Add sticker icon in room input
* add debounce hook
* add search in emoji board
* Optimize emoji board
* fix emoji board sidebar divider
* sync emojiboard sidebar with scroll & update ui
* Add use throttle hook
* support custom emoji in editor
* remove duplicate emoji selection function
* fix emoji and mention spacing
* add emoticon autocomplete in editor
* fix string
* makes emoji size relative to font size in editor
* add option to render link element
* add spoiler in editor
* fix sticker in emoji board search using wrong type
* render custom placeholder
* update hotkey for block quote and block code
* add terminate search function in async search
* add getImageInfo to matrix utils
* send stickers
* add resize observer hook
* move emoji board component hooks in hooks dir
* prevent editor expand hides room timeline
* send typing notifications
* improve emoji style and performance
* fix imports
* add on paste param to editor
* add selectFile utils
* add file picker hook
* add file paste handler hook
* add file drop handler
* update folds
* Add file upload card
* add bytes to size util
* add blurHash util
* add await to js lib
* add browser-encrypt-attachment types
* add list atom
* convert mimetype file to ts
* add matrix types
* add matrix file util
* add file related dom utils
* add common utils
* add upload atom
* add room input draft atom
* add upload card renderer component
* add upload board component
* add support for file upload in editor
* send files with message / enter
* fix circular deps
* store editor toolbar state in local store
* move msg content util to separate file
* store msg draft on room switch
* fix following member not updating on msg sent
* add theme for folds component
* fix system default theme
* Add reply support in editor
* prevent initMatrix to init multiple time
* add state event hooks
* add async callback hook
* Show tombstone info for tombstone room
* fix room tombstone component border
* add power level hook
* Add room input placeholder component
* Show input placeholder for muted member
2023-06-12 16:45:23 +05:30
Ajay Bura
c69f790bd3
Replace Webpack to Vite ( #1023 )
...
* Add vite, typescript and prettier
* Configure vite
* Fix tsconfig error
* Fix manifest json
* Move manifest json to root
* Bug fix
* Move back manifest json to public
2022-12-20 20:47:51 +05:30