Commit Graph

7929 Commits

Author SHA1 Message Date
Max Leiter
69f0ec00a6 Merge remote-tracking branch 'origin/master' into max/04-10-web-push-neo 2026-04-12 13:13:24 -07:00
Max Leiter
2a92ec0e03 fix: hide Account settings tab on public instance, sometimes hide General (#5063)
on public TL instances like the demo, this is what the account and
general tabs look like in Firefox:
 
| General | Account |
|--------|--------|
| <img width="600" height="auto" alt="image"
src="https://github.com/user-attachments/assets/6cb1b9a2-da93-4412-893a-e70004376705"
/> | <img width="600" height="auto" alt="image"
src="https://github.com/user-attachments/assets/429f8c1a-4b38-49b4-bb14-b3a935860aa7"
/> |

1. we should just always hide account if mode is public, its useless
2. if file uploads are off, there's nothing to show in General except
the native app install, which i figure is fine/not really necessary for
public instances (and isn't supported by Firefox, hence the blankness)
2026-04-12 09:25:28 -07:00
Max Leiter
d33e1d4184 Remove sqlite3 dependency; use built-in node:sqlite (#5055)
https://www.npmjs.com/package/sqlite3 is deprecated and Node 22 (#5041)
lets us use the builtin `node:sqlite` package (although it is
experimental)

most changes are a result of the native module being synchronous

relies on #5041 (now merged)

Closes https://github.com/thelounge/thelounge/issues/5033
2026-04-12 13:30:56 +00:00
Max Leiter
101240e6db Merge remote-tracking branch 'origin/master' into max/04-10-web-push-neo 2026-04-12 06:29:21 -07:00
Reto Brunner
7d5834807b Merge fix/5032-pwa-cloudflare-access 2026-04-12 12:07:39 +02:00
Max Leiter
769c9614b3 chore: bump some dev deps (mainly webpack) (#5042)
Closes some renovate PRs like
https://github.com/thelounge/thelounge/pull/5024 and should improve dev
perf.

It might be better to merge this instead:
https://github.com/thelounge/thelounge/pull/5001

---------

Co-authored-by: Tiago de Paula <tiagodepalves@gmail.com>
2026-04-11 14:28:18 -07:00
Nycki
c148344c65 client: opt out of browser completion in the chat input (#5068)
Closes https://github.com/thelounge/thelounge/issues/5067.
2026-04-11 14:25:38 -07:00
Max Leiter
eb75c4b77c chore: refactor Mentions, add isIgnoredUser util (#5051)
- Mentions were doing a bunch of mutations; not just uses derived state
- no need for a separate `ClientMention` 
- added `extractInputHistory` for shared logic
- tests made by claude
2026-04-11 07:59:14 -07:00
Reto Brunner
18ca57d116 Merge 'origin/fix/4840-strip-color-codes-title' 2026-04-11 10:46:25 +02:00
Reto Brunner
5d35ffc35d Merge branch 'fix/4993-ds-store-storage' 2026-04-11 10:11:24 +02:00
Max Leiter
f79c6a90b7 fix 2026-04-10 22:39:14 -07:00
Max Leiter
65644f2450 lint? 2026-04-10 18:27:56 -07:00
Max Leiter
a59ce5bdf0 fix 2026-04-10 18:19:22 -07:00
Max Leiter
8d79cf21c1 node 25 test 2026-04-10 18:00:11 -07:00
Max Leiter
1d50fe0d5e replace web-push with web-push-neo 2026-04-10 17:55:03 -07:00
Max Leiter
a5070fa4a6 actions and package.json: remove Node 18 (EOL), bump sqlite3 (#5041)
Node 18 is EOL (https://nodejs.org/en/about/previous-releases). We can
use 22+ instead.
2026-04-10 15:10:19 -07:00
Max Leiter
c88f647f1a fix: use fs.rmSync in storage cleanup, fixing .DS_Store crash (fixes #4993)
Replace the manual deleteFolder() recursive implementation with
fs.rmSync({recursive: true, force: true}), which handles both files
and directories. This also resolves the ENOTDIR error caused by
.DS_Store and other non-directory entries in the storage folder.
2026-04-10 15:04:55 -07:00
Max Leiter
8e66e0ca50 Fix PWA installation behind Cloudflare Access (#5032)
Add crossorigin="use-credentials" to the manifest link tag so the
browser includes authentication cookies when fetching the web manifest.
Without this, Cloudflare Access (and similar auth proxies) redirect the
credentialless manifest request to a login page, which blocks PWA
installation.
2026-04-10 13:04:43 -07:00
Max Leiter
c94c68ebee fix: strip IRC color codes from topic hover text (fixes #4840) 2026-04-10 13:04:19 -07:00
Taavi Väänänen
da23453133 Show STATUSMSG indication for actions as well (#5004)
It is possible to send actions (/me et al.) to a STATUSMSG target
(+#channel etc), even though thelounge does not currently support
sending that. Show the statusmsg indicator on such messages.
2026-04-10 08:47:31 -07:00
Max Leiter
60b265efce deps: pin irc-fw to latest git commit (#5049)
been a while since the last release; while we wait we may as well pin a git commit

unblocks #5047

kiwiirc/irc-framework@9578e59
2026-04-10 09:42:42 -05:00
Max Leiter
4cb24d8e58 deps: pin irc-fw to latest git commit 2026-04-10 07:15:26 -07:00
Max Leiter
13602a49f5 ircv3: parse msgid from tags manually (#5046) 2026-04-10 01:19:30 -05:00
Max Leiter
a309313d0f ircv3: parse msgid from tags manually 2026-04-09 23:15:21 -07:00
Max Leiter
09f4179570 ircv3: start storing/tracking msgid (#5044)
Many newer ircv3 specs rely on https://ircv3.net/specs/extensions/message-ids

This simply extracts msgid from incoming messages so we capture and store it for when we do support those newer features.
2026-04-10 00:14:03 -05:00
Max Leiter
9f9b98bf0e ircv3: start storing/tracking msgid 2026-04-09 21:48:18 -07:00
Max Leiter
119eff9ab9 Fix mobile viewport (#5029)
Fixes #4752 (Chromium) and also Firefox's different behaviour of not moving the content at all, making the keyboard overlay the bottom half of the app.
2026-04-09 22:36:24 -05:00
Max Leiter
3deeb80f62 fix: call stack size exceeded (#5023) 2026-04-09 22:35:09 -05:00
Max Leiter
44b6f87f16 Unset topic (#5028) 2026-04-09 22:33:30 -05:00
Max Leiter
11c6ef84cc Merge pull request #5030 from thelounge/sqliteFix
sqlite: change to single quotes
2026-04-09 22:31:07 -05:00
Reto Brunner
75490f5b5b sqlite: change to single quotes
Apparently sqlite started validating this in certain versions.
Crashes on BSDs with:

SQLite version 3.50.4 2025-07-30 19:33:53
sqlite> SELECT msg, type, time, network, channel FROM messages WHERE type = "message";
Parse error: no such column: "message" - should this be a string literal in single-quotes?
  time, network, channel FROM messages WHERE type = "message";
                                      error here ---^
2026-02-10 20:28:04 +01:00
Jay2k1
ca4a6a4af1 Fix mobile viewport
Make content resize again when the keyboard is slid out
2026-02-09 12:08:54 +01:00
Reto Brunner
91fb1ee343 add cleartopic command
Fixes: https://github.com/thelounge/thelounge/issues/4687
2026-02-09 08:16:27 +01:00
Reto Brunner
3d8e96491b topic: display topic when no arguments are given
That's what the help says that we do, so do it.

Fixes: https://github.com/thelounge/thelounge/issues/5026
2026-02-09 08:08:15 +01:00
Tiago de Paula
03d01bb1d6 fix: call stack size exceeded
The spread operator will place the arguments, which can reach the call
stack limit if too many messages are being sent. This fix uses
`.concat()` to avoid the spread operator.

Fixes #5022
2026-01-31 20:54:52 -03:00
Max Leiter
b2e3112806 Merge pull request #5016 from SyntaxColoring/master
Fix spurious "insecure connection" warning by treating ::1 as localhost
2026-01-03 00:53:11 -08:00
Max Leiter
c247ae31ae Merge "server: Fix quoting in error message" from supertassu/fix-quotes
server: Fix quoting in error message
2026-01-02 19:58:51 -08:00
Max Marrone
9533ee46b2 Treat ipv6 ::1 as localhost. 2025-12-20 17:34:57 -05:00
Taavi Väänänen
be603c6bdc server: Fix quoting in error message
In the error message about an invalid plugin command, only quote the
command name and not the rest of the error message after the command
name.
2025-11-08 12:36:50 +02:00
Reto Brunner
32f0181433 Merge branch 'lockedSettings' 2025-09-21 20:28:47 +02:00
Reto Brunner
793d01c0f5 merge trim username field in sign in form 2025-09-19 06:08:57 +02:00
Reto Brunner
d7316a0691 Merge precise user config reloading
This has the problem that failing to get a modification trigger might
lead to corrupted state. The author tested it on their large instance
however and it seems to work very well.
So let's try if anyone hits any problems in the wild
2025-09-19 06:03:51 +02:00
Reto Brunner
e919e1ce79 Merge branch 'saslFix' 2025-09-19 06:01:07 +02:00
Reto Brunner
857a2bbd6a Merge branch 'chghost' 2025-09-19 06:00:24 +02:00
Jay2k1
892562902f fix broken manual channel ordering
This fixes a small regression from #4861 (specifically, commit 0067c30) that resulted in manually reordering channels not being received by the server and hence not saved or synced.
2025-09-18 20:31:02 +02:00
Kevin Cox
c20e9d2ef0 Precise user configuration reloading.
Previously when any user config file was changed all users would be reloaded. This could be very expensive on installations with thousands of users. Since this triggered when any file was changed it would trigger when any user connected which can be quite frequent.

As a side-effect this removes the debouncing. This means that user changes take effect instantly rather than after 1s.

Since there is no longer a 1s delay it is extra important that files are written safely. To this end the `thelounge add <user>` command was updated to write the user file atomically. (The update path already did this.)
2025-09-06 09:08:28 -04:00
Reto Brunner
fc135023a4 style chghost messages
chghost messages weren't styled properly, given that they are
similar to a nick change, re-use the corresponding icon and style.
2025-09-06 11:36:49 +02:00
Reto Brunner
b270f51022 Disable sasl if sasl isn't configured
irc-framework has a funny fallback where it uses nick + server pw
in the sasl handshake, if account is undefined in the options.
This becomes a problem, as the nick might not actually be the account
(happened for znc users), so we need to set it to an empty object to really
turn it off.
2025-07-28 11:06:25 +02:00
sfan5
59a333d982 Trim username in sign-in form 2025-04-09 18:42:21 +02:00
Reto Brunner
3f2697cca6 reverse locknetwork config selection
LockNetwork is documented as:
> When set to `true`, users will not be able to modify host, port and TLS
> settings and will be limited to the configured network.

Looking at the view, that also includes the name field (for some reason).

When leaveMessage was added to the defaults, the white list for the LockedConfigNetDefaults
wasn't adjusted.

Rather than playing whack a mole, disallow the documented fields + name and export the rest.

Fixes: https://github.com/thelounge/thelounge/issues/4956
2025-02-07 14:00:14 +01:00