328 KiB
Change Log
All notable changes to this project will be documented in this file.
v3.3.0 - 2019-10-28
For more details, see the full changelog and milestone.
This is a minor release aimed at mostly fixing bugs and increasing stability.
This release bumps required Node.js version to at least 10.16.3 or higher. We suggest updating to Node.js v12, which is the latest LTS version.
Feature wise, there are a couple of things that have been added. If you reconnect to a network and the nick you want is in use, The Lounge will now attempt to regain your original nick if it sees that nick quit the network.
The /join
command will now prefix channel names if there is no prefix. For example,
you can execute /join thelounge
, and client will automatically turn that into #thelounge
(first prefix from CHANTYPES is taken).
We have been working heavily on porting the client code base to the Vue.js framework, and hope to have it ready for release soon™.
Added
- Implement keep nick when client gets "nick in use" on connection (#3404 by @xPaw)
- Add public files for plugins (#3432 by @McInkay)
- Set correct file owner for created user files and warn about it (#3416 by @xPaw)
- Prefix channel before join (#3438 by @FryDay)
Fixed
- Allow tab completion in middle of input (#3437 by @FryDay)
- Fix condensed messages closing when a new status message is added (#3435 by @FryDay)
- Synchronize user list correctly on reconnection (#3453 by @xPaw)
- Synchronize open channel on client on reconnection (#3461 by @xPaw)
- Fix history not loading in certain cases after reconnect (#3460 by @xPaw)
- Do not print "no packages" warning when opening help on client (#3458 by @xPaw)
- Fix uploader being initialized more than once (#3467 by @xPaw)
Changed
- Increase contrast of headers in windows (#3451 by @xPaw)
- Use default cursor for active channels (#3364 by @xPaw)
- Update context and auto complete menu styles (#3466 by @xPaw)
- Update production dependencies to their latest versions:
Internals
- Add
data-current-channel
to#chat-container
(#3366 by @gunnvaldr) - Some fixes in file uploading (#3382 by @xPaw)
- Add GitHub actions for CI (#3393 by @xPaw)
- Bump minimum node version to v10 (#3392 by @xPaw)
- Print error and stacktrace when package fails to load (#3406 by @xPaw)
- Let OS generate a port in link prefetch tests (#3436 by @xPaw)
- Bump ecmaVersion to 2018 (#3465 by @xPaw)
- Extract updated packages from pull request body (#3455 by @xPaw)
- Hide user loaded message in tests (#3473 by @xPaw)
- Update development dependencies to their latest versions:
husky
(#3368, #3386, #3425, #3447)eslint
(#3371, #3379, #3385, #3401, #3427)webpack
(#3365, #3383, #3400, #3417, #3445, #3452)webpack-cli
(#3369, #3394, #3405)mochapack
(#3377, #3411)eslint-config-prettier
(#3375, #3388, #3397, #3440)@fortawesome/fontawesome-free
(#3378, #3407, #3413)sinon
(#3387, #3412)@babel/core
(#3395, #3414, #3442)@babel/preset-env
(#3395, #3414, #3442)stylelint
(#3402, #3443)stylelint-config-standard
(#3403)socket.io-client
(#3408)vuedraggable
(#3410, #3431)mocha
(#3428, #3464)pretty-quick
(#3448)
v3.3.0-rc.2 - 2019-10-23 [Pre-release]
This is a release candidate (RC) for v3.3.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.3.0-rc.1 - 2019-10-21 [Pre-release]
This is a release candidate (RC) for v3.3.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.2.0 - 2019-08-19
For more details, see the full changelog and milestone.
This is a minor release that fixes some bugs. There are not many directly user facing changes in this release, but the biggest one is the ability to edit channel topic by double clicking it (or using the edit topic option in the context menu).
We have switched to using Prettier for code formatting, which hopefully makes it easier for other developers to contribute.
Added
- Add functionality to edit channel topic from the user interface (#3349 by @ollipa)
- Add check for outdated packages, and show on the help screen. (#2760 by @McInkay)
- Allow themes to change theme-color (#3326 by @xPaw)
- Add keybind for cycling to the next unread window (#3359 by @plett)
- Send service worker fetch errors to client (#3329 by @xPaw)
- Verify reverse DNS when looking up hostnames for webirc (#3294 by @xPaw)
Changed
Fixed
- Correctly parse numbers when passed in CLI (#3296 by @xPaw)
- Fix channel sorting to work across clients on Vue (#3299 by @xPaw)
- A better way of disabling sorting on touch devices (#3297 by @xPaw)
- Merge network/channel objects when reconnecting to keep object references (#3305 by @xPaw)
- Add custom focus outlines for inputs and green buttons (#1873 by @astorije)
- Fix channel list not working on some touch devices (#3320 by @xPaw)
- Parse target group for sent messages when echo-message is not enabled (#3339 by @xPaw)
- Fix formatting hotkeys on non english locales (#3343 by @xPaw)
- Handle upload token requesting in a better way (#3335 by @xPaw)
- Make
/raw
actually write to network as-is (#3352 by @xPaw) - Open list channel on data updates (#3347 by @xPaw)
- Display an error on unknown command (#3361 by @xPaw)
Internals
- Set up Prettier on HTML, JSON, Markdown, and YAML files (#3060 by @astorije)
- Set up prettier for JS/Vue files (#3312 by @McInkay)
- Store ip and language in a separate object in user file (#3307 by @xPaw)
- Disable io cookie (#3342 by @xPaw)
- Update development dependencies to their latest versions:
webpack-cli
(#3304)mini-css-extract-plugin
(#3308)mochapack
(#3306, #3340)vue-loader
(#3314)husky
(#3315, #3337, #3356)mocha
(#3316)webpack
(#3311, #3328)eslint-config-prettier
(#3319)eslint
(#3321)babel-plugin-istanbul
(#3323)@fortawesome/fontawesome-free
(#3336, #3341)copy-webpack-plugin
(#3333)sinon
(#3355)textcomplete
(#3353)
v3.2.0-rc.2 - 2019-08-13 [Pre-release]
This is a release candidate (RC) for v3.2.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.2.0-rc.1 - 2019-08-04 [Pre-release]
This is a release candidate (RC) for v3.2.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.1.1 - 2019-07-11
Minor release to fix an issue where v3.1.0 fails to install on Linux/macOS using npm cli.
v3.1.0 - 2019-07-11
For more details, see the full changelog and milestone.
This is the first release that includes a largely rewritten frontend, which is built on top of the Vue.js framework! We have started slowly transitioning the frontend to use Vue.js, which allows us to structure the code in a better fashion and to remove all the hacks related to keeping the state in the DOM using jQuery data attributes. This paves the road for future support of client customization and a plugin system.
While this release is mostly related to the rewrite, there are many user facing changes and improvements in this release!
Added
- Added scroll to bottom button
- Put channel errors and unhandled numerics to relevant channel if it exists (#3079 by @xPaw)
- Set scrollbar properties for Firefox 64+ (#2974 by @xPaw)
- Display a broken link icon and red text color when not joined on a channel (#3082 by @astorije)
- Print a warning for invalid keys in config file or cli arguments (#3100, #3286 by @xPaw)
- Add support for
/kill
(#3123 by @kramerc) - Display current channel mode on /mode command (#3109 by @xPaw)
- Send SETNAME command if user edits realname field (#3107 by @xPaw)
- Implement invite list (#3176 by @xPaw)
- Add server config api (#2761 by @McInkay)
- Add aria-label on link preview toggle button (#3116 by @xPaw)
- Add support for command plugins (#2757, #3281 by @McInkay)
Changed
- Only active channel is rendered in DOM instead of them all. (#1270)
- Input is no longer global (each channel gets its own input field). (#706)
- Input history is also per-channel now. (#2791)
- Collapsing a network stays in active channel (and the active channel is still visible in the list)
- Collapsed networks still show channels with highlights. (#2223)
- Client commands are refactored and
/join
can assume current channel. (#2004) (#2281) (#2266) - Channel
/list
persists on page reloads. (#2249) - Message parser now returns Vue elements (via createElement) instead of raw html content (no more manual escaping!)
- Message parser now actually accepts
CHANTYPES
andPREFIX
from network. (#443) - Hidden status messages are no longer rendered in DOM. (#813)
- Channel state is synchronised to the client (and is displayed). (#2245)
- Chat input is no longer disabled when disconnected (still can't submit though)
- All channels user lists are cleared when disconnected from the network
- New utility function to update window title, notified state, favicon consistently. Which fixes titles or favicon sometimes not updating, e.g. on channel part. (#2746). (#1311)
<>
and*
around nicks have been moved to DOM so copying is consistent. (#2801)- Added
***
before actions when copying (e.g. topic set, joins, etc), and dashes around nick for notices. - Removed
jquery-ui
in favor of Sortable.js. (#932) - Image too big error is now handled by
auto expand media
setting, while other errors are handled byauto expand websites
option. (#2800) - Custom highlights are now synced to the server and highlight code works on the server, this means that push notifications work for custom highlights, and they get synced across clients correctly.
- PageDown/PageUp now scroll natively without manually calculating and animating the offset.
- Sending long lines will now try splitting input into multiple lines on word boundaries.
- Images can now be pasted (Ctrl-v) and automatically uploaded (#3226 by @SwayUser)
- Bump minimum node version to 8 LTS (#3004 by @xPaw)
- Use github's emoji data (support unicode 12) (#3251 by @xPaw)
- Let the user know a CTCP request was sent (#3019 by @Zarthus)
- Extend custom highlight regex (#3073 by @Jay2k1)
- Change condensed summary hover to an underline (#3145 by @xPaw)
- Change styling when dragging channels. (#3114 by @xPaw)
- Update production dependencies to their latest versions:
package-json
(#3007, #3115, #3142, #3156, #3254)mime-types
(#3050, #3181)file-type
(#3069, #3103, #3159, #3169, #3198, #3232, #3255, #3285)read-chunk
(#3106, #3158)filenamify
(#3110, #3157, #3242)yarn
(#3149, #3210)semver
(#3148, #3231, #3240, #3270, #3274)busboy
(#3163)commander
(#3162)irc-framework
(#3201, #3272)sqlite3
(#3205, #3213, #3257)fs-extra
(#3215, #3222, #3273)web-push
(#3214, #3223)express
(#3225, #3238)ua-parser-js
(#3249)lodash
(#3289)
Fixed
- Fix copying text in Firefox around image previews (#3044 by @xPaw)
- Fix (dis)connect icons in context menu being reverse of what they should be (#3093 by @xPaw)
- Sanitize user and real names (#3108 by @xPaw)
- Force no-cache on service-worker and sourcemap files (#3137 by @xPaw)
- Handle redirected requests correctly in service worker (#3136 by @xPaw)
- Fix file uploading when lounge is proxied in a subfolder (#3258 by @xPaw)
- Only prepend text with 'Notice: ' if it's the nick it's from (#3259 by @emersonveenstra)
- Make sure unhandled command has params (#3276 by @xPaw)
- Updated ldapjs to support Node v10+ (node-ldapjs#497 by @acappella2017)
Documentation
In the main repository:
- help.tpl: Fix typo (ommitted -> omitted) (#3077 by @Zarthus)
- Spelling fix for manual disconnect message (#3125 by @MaxLeiter)
- Print a warning when running as root (#3235 by @xPaw)
- Remove incorrect lowest node version from readme (#3217) (
0967fa2
by @McInkay) - Add a message about experimental API (#3279 by @xPaw)
- Change unable to load sqlite3 message (#3280 by @xPaw)
On the website repository:
- Updated non-functioning CSS for "Thinner User List" (#204 by @theoneandonlyewok)
- Remove CSS snippet to hide messages from a specific user, now replaced with
/ignore
(#203 by @xnaas) - Display page title dynamically to avoid confusing bots that search for metadata (#205 by @astorije)
- Add page descriptions (#164 by @xPaw)
- Add a guide about ZNC (#206) (
ae48ead
by @brunnre8) - Add a link to our Twitter in the header (#210 by @astorije)
- add warning about using the correct user to usage.md (#211) (
3668a1c
by @brunnre8) - Add config API docs (#212) (
6e46b2c
by @McInkay) - Fix version command (
25f42d1
by @xPaw) - Add note about using sudo for the deb package (#208) (
965379e
by @Jay2k1) - Add docs about client_max_body_size (#213 by @xPaw)
Internals
- Change build priority order in Travis (#3045 by @xPaw)
- Move closing brackets on a new line in Vue files (#3083 by @astorije)
- Use Vue to show/hide insecure/disconnected icons instead of CSS (#3088 by @astorije)
- Use async/await in service worker, do not wait for cache for successful requests (#3111 by @xPaw)
- Move favicon.ico to the root folder (#3126 by @xPaw)
- Re-implement file uploading with old school multipart forms (#3037 by @xPaw)
- Hide unknown key warning in mergeConfig test (#3133 by @xPaw)
- Replace mocha-webpack with mochapack, and remove browser test setup that we never used (#3150 by @astorije)
- Replace
request
withgot
(#3179 by @xPaw) - Change upload abort error message (#3236 by @xPaw)
- Add extra socket/server error event handlers (#3250 by @xPaw)
- Move query to msg, fix #3049 (#3138 by @Dominent)
- Update development dependencies to their latest versions:
@fortawesome/fontawesome-free
(#3048, #3129, #3202, #3246)nyc
(#3051, #3178, #3196)webpack
(#3053, #3065, #3091, #3171, #3207, #3228, #3230, #3245, #3256, #3264, #3275)eslint
(#3054, #3068, #3095, #3101, #3119, #3127, #3155, #3266)eslint-plugin-vue
(#3057, #3066)@babel/core
(#3055, #3277)babel-plugin-istanbul
(#3061, #3177, #3186, #3195)sinon
(#3067, #3090, #3098, #3134, #3151, #3180)vue-loader
(#3071, #3074, #3092)copy-webpack-plugin
(#3075, #3112, #3141, #3187)vue
(#3078, #3094, #3118, #3131)mocha
(#3072, #3164, #3165, #3170, #3182)vuedraggable
(#3081, #3096, #3102, #3135, #3143, #3227, #3267)mousetrap
(#3099)emoji-regex
(#3104)webpack-cli
(#3120, #3183, #3199, #3247, #3252, #3268)handlebars
(#3124, #3175)mochapack
(#3153)html-minifier
(#3160)jquery
(#3167, #3194)mini-css-extract-plugin
(#3166, #3239)stylelint-config-standard
(#3174)stylelint
(#3173, #3248)intersection-observer
(#3188, #3212)babel-loader
(#3216)
v3.1.0-rc.1 - 2019-07-05 [Pre-release]
This is a release candidate (RC) for v3.1.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.1.0-pre.3 - 2019-06-28 [Pre-release]
This is a pre-release for v3.1.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.1.0-pre.2 - 2019-05-28 [Pre-release]
This is a pre-release for v3.1.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.1.0-pre.1 - 2019-05-11 [Pre-release]
This is a pre-release for v3.1.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.0.1 - 2019-02-11
This patch release fixes a few small things that made it to the previous release.
It includes fixes for issues related to: reconnecting when a nickname is already in use, unnecessary highlights on invites, the auto-expandable message input, channels starting with &
or +
, the /disconnect
command, and file uploads. Additionnally, part
messages for the current user are now logged.
A more comprehensive list of changes is available below.
Changed
- Update production dependencies to their latest versions:
Fixed
- Always emit
part
message (required for logging) (#2989 by @xPaw) - Fix
line-height
to match height in input (#2995 by @xPaw) - Fix incorrect 404 error for files with unknown file type (#3010 by @xPaw)
- Fix up link insertion after uploads to be saner (#3011 by @xPaw)
- Do not get highlight on invites (#3031 by @creesch)
- Allow forcing /disconnect to stop reconnection timer from running (#3034 by @xPaw)
- Fix up textarea growing to avoid rounding issues in Chrome (#3033 by @xPaw)
Documentation
In the main repository:
- Do not report the (renamed) Renovate bot as a contributor (#2997 by @astorije)
- Add
webirc
key and commas in configuration file examples to make them more understandable (#3008 by @xPaw)
On the website repository:
- Use new URL for
ansible-thelounge
(#196 by @astorije) - Add a link to a blog post in the Community page (#195 by @astorije)
- Simplify Caddy reverse proxy example by using
transparent
shorthand (#197 by @MarkOtzen) - Place config update comment in noteblock for visual clarity. (#198 by @EntityReborn)
- Regenerate config (
78ada86
by @xPaw) - Add title to iframe (
7c4d0d2
by @xPaw) - Apply
word-break
to<code>
only on small screens (#202 by @xPaw)
Internals
- Use
require.resolve
for yarn (#2993 by @xPaw) - Keep using npm to clean up dist-tags after a stable release (#2999 by @astorije)
- Bump Travis to use Node 10 LTS for Windows, OSX, and production builds (#3003 by @xPaw)
- Make sure the editorconfig indent size applies to all file formats (#3022 by @astorije)
- Update development dependencies to their latest versions:
@babel/preset-env
(#2942)moment
(#2991)primer-tooltips
(#2962, #3001)emoji-regex
(#2941)handlebars-loader
(#2938, #3001)@fortawesome/fontawesome-free
(#2944, #3006, #3016)sinon
(#2986)babel-loader
(#2954)webpack-cli
(#2951, #3030)eslint
(#2947, #3015)stylelint
(#3001)webpack
(#3001, #3028, #3036)nyc
(#3029)handlebars
(#3038)
v3.0.0 - 2019-01-27
For more details, see the full changelog and milestone.
Almost a year in the making, 1500+ commits, 650+ merged PRs, and 30+ contributors, The Lounge v3.0.0 really is the release of all the superlatives. It ships some of our most-upvoted and longest-awaited feature requests, with significant improvements all across the board, and a brand new documentation website.
TL;DR: If you are only looking for a simple list of breaking changes before we jump onto a shortlist of the top changes below, we now have an upgrade guide. You can also try our demo to see and test the new features.
We rewrote our entire documentation from scratch to better reflect the full capabilities of The Lounge. The website is now mobile-friendly, has a search feature, detailed pages about installation, usage, and configuration, and a list of guides to make The Lounge effortless to set up to your needs.
The first thing you might notice is how the overall UI has changed. We extracted Crypto and Zenburn into dedicated themes to only ship our default and updated theme, and Morning, the dark version of our default theme. Our logo made its way to the client and its notification-aware favicons. Speaking of notifications, the browser window title now contains the number of unread notifications you have received:
One of the most notable additions of this release is the ability to reload messages from history (previous conversations and channels) between restarts of The Lounge. This bridges a significant and long-standing gap with other traditional IRC clients, and creates an opportunity for more advanced features (such as a search capability). See the corresponding configuration option for more details.
The Lounge now lets you upload files! Once enabled in your configuration file, you can directly upload files and images from the UI:
To upload a file, use the icon in the message input, or simply drag-and-drop it on the UI.
A new set of commands gives you the ability to ignore users based on nickname or hostmask: /ignore
, /unignore
, and /ignorelist
.
List ignored users directly from the UI using the context menu on networks
📂 The channel list packs a lot of improvements:
- It is now possible to collapse channels/direct messages under a given network:
-
New keyboard shortcuts have been added to easily navigate between lobbies. A list of all available shortcuts can be found in the Help window of the client.
-
You can now edit existing networks from the UI. Most changes will take effect after the next reconnection, but editing the network name will go into effect immediately.
To edit a network, click the according action in the network context menu
-
You can also disconnect and re-connect directly from the network context menu. Disconnected networks will stay disconnected upon restarts of the server.
-
Networks now reflect their connection and security status. For a network to be considered secure, it has to use a valid and trusted TLS certificate (trusted by your Node.js installation) or to be connected to localhost.
-
When joining a new channel, it is now added to the list in alphabetical order. You can still sort channels yourself by dragging them around.
-
The channel list can now be hidden on desktop devices.
🌍 Links previews have also been improved:
- They gained an expand button if the title or description text is truncated:
-
Your browser language is now passed onto the server of the URL being fetched so that previews can be displayed in your language (depending on remote server support).
-
Any error occuring while pre-fetching a URL (e.g. request failure or max size exceeded) will be displayed on the interface. More details can be seen by expanding the preview.
💬 The message input also gets a few improvements:
- You can now easily wrap text with quotes, brackets, parentheses, etc. by selecting characters then hitting the corresponding key:
- The input bar no longer aggressively steals the keyboard focus. This change makes it possible to tab through focusable/clickable elements in the UI. Typing or pasting text (using Ctrl/⌘+V) anywhere when nothing is in focus will however automatically set the focus to the input bar.
⚙️ Here are a few new things you may notice in the client settings window:
- Some settings may now be hidden behind the new "Advanced settings" checkbox:
- You can now (optionally) synchronize client settings across all your devices:
- You can also instruct your device to open all URLs starting with
irc://
using The Lounge:
🖥 Administrators handling the server and using the CLI will notice a few changes:
-
Text log format has been modified to improve formatting and consistency with other IRC software. The
logs.format
andlogs.timezone
settings have been removed. The Lounge now logs timestamps using a format ofYYYY-MM-DD HH:mm:ss
(which used to be the default value) in UTC timezone. These are some of the breaking changes we have documented in our upgrade guide. -
The inline documentation of the configuration file that gets generated at
~/.thelounge/config.js
has been entirely rewritten. It can also be found in a rich-format on the configuration documentation. -
The
thelounge install
command now allows you to install a specific version, such asthelounge install thelounge-theme-solarized@1.0.0
. -
A new command,
thelounge update
, has been added to update all installed packages and themes at once. -
Message logging is now enabled for LDAP users.
💎 Other notable changes:
- Visibility of the password fields can now be toggled using the eye icon:
- If you are operator in a channel, the user context menu now lets you voice/devoice and op/deop users:
- MOTDs in network windows have been improved to correctly display ASCII art:
-
The
/whowas
command is now supported and its response is displayed in a direct message window. -
It is now possible to include randomly-generated numbers into the default nickname on page load, using percent signs (
%
). For example, this helps avoiding nick collisions in public mode. See the configuration option. -
URL detection in messages now supports links without protocol or
www.
prefixes (if the top-level domain is valid) and has been improved overall by switching to a better library. -
Accessibility of the interface has been improved throughout the interface. If you are an assistive technology user and encounter accessibility issues, we encourage you to open an issue on GitHub to help us identifying and resolving them.
-
Among other improvements to CTCP handling, the network window now reports when someone is making a CTCP request against your nickname:
This concludes the highlights of this release, but there is a lot more to it: new and improved features, security fixes, etc., of which you will find a more comprehensive list below.
So much work has happened in the last year, result of the hard work of so many contributors that we are incredibly thankful for. We hope you will love The Lounge v3. ❤️
One more thing: we started an Open Collective a few months back, where recurring and one-time donations are welcome, should you wish to help us financially. Among other things, it allows us to assemble and ship free sticker packs, so make sure to grab yours!
Added
- Enable logging for LDAP users (#2098 by @keegan)
- Let user know someone is making a CTCP request against their nick (#1930 by @astorije)
- Add log role to message container (#1907 by @xPaw)
- Add ability to collapse networks in the channel list (#1867, #2225, #2195 by @McInkay, #2298, #2399, #2530 by @xPaw, #2305 by @astorije, #2388 by @Raqbit)
- Add install command support for package version (#2161 by @realies)
- Add support for reloading messages using SQLite logging (#1839, #2188, #2190, #2222, #2391, #2546 by @xPaw, #2541 by @astorije)
- Optional syncing of client settings (#1851 by @creesch)
- Add advanced toggle and hide certain settings by default (#1860 by @McInkay)
- Allow hiding channel list on desktop (#2212, #2235, #2601, #2854 by @xPaw, #2246 by @astorije, #2785 by @williamboman)
- Add keybinds for cycling through networks/lobbies (#2206 by @ESWAT)
- Autocomplete bracket and quote characters like in a modern IDE (#2275 by @xPaw)
- Add auto-prepend behavior for unprefixed channel names (#2289 by @lol768)
- Add
?channels=x,y,z
alias for?join=x,y,z
(#2290 by @lol768) - Allow editing networks via UI (#2229 by @xPaw)
- Add
op
andvoice
to the user context menu (#2355 by @Jay2k1) - Add
upgrade
CLI command for themes and packages (#2380 by @jake-walker) - Add support for
/ignore
,/unignore
and/ignorelist
commands (#2197 by @RockyTV) - Add password visibility toggle feature (#2429 by @c-ciobanu)
- Allow connecting/disconnecting from networks in UI (#2114 by @MaxLeiter)
- Add alert count to title (#2496 by @Jay2k1, #2558 by @xPaw)
- Display visual feedback on self away/back (#2523 by @Jay2k1)
- WHOWAS support (#2554 by @Jay2k1)
- Add "User information" (
whois
) support to the sidebar context menu (#2587 by @aspotton) - Implement
irc://
andircs://
protocol handlers (#2571 by @xPaw) - Add file uploading support (#2552 by @MaxLeiter, #2743, #2744, #2748, #2749, #2851, #2985 by @xPaw, #2983 by @astorije)
Changed
- Turn channel list into an accessible tablist (#1915, #2079, #2828, #2830, #2840 by @xPaw)
- Render MOTD with a single message (#2059 by @xPaw)
- Show error if image is greater than max prefetch size (#1919 by @McInkay)
- Improve monospace formatting in messages (#2031 by @astorije)
- Switch default home location to
~/.thelounge
(#1734 by @astorije) - Report server errors when preview fetch fails (#2036 by @xPaw)
- Relay client's preferred language in link preview requests (#1918 by @williamboman)
- Allow generating random numbers in nick on page load (#2090 by @xPaw)
- Word prefetch errors differently (#2101 by @xPaw)
- Log socket close error if any (#2108 by @xPaw)
- Add autocompleted names to private chats (#1669 by @edbrannin)
- Change ctrl/command up/down to alt/option up/down to align with other apps (#2133 by @McInkay)
- Move the user list client code to its own file and make it possible to navigate with keyboard (#1842 by @astorije)
- Make code blocks more readable in darker themes (#2135 by @williamboman)
- Center loading screen and add logo (#1668 by @xPaw)
- Try to find
og:video
andog:audio
on html pages (#1838 by @xPaw) - Scroll to joined/activated channel (#2166 by @dgw)
- Upgrade to Font Awesome 5 (#2194, #2205 by @xPaw)
- Convert the entire viewport to use flexbox (#2185 by @xPaw)
- Insert channel/user in alphabetical position into channel list (#2152 by @McInkay)
- Use undate library to handle modifier keys (#2210 by @xPaw)
- Add logo to the sign in page (#2199 by @astorije)
- Do not aggressively focus input when clicking anywhere and handle typing out of focus (#2215, #2242, #2258, #2416, #2414, #2536 by @xPaw)
- Improve accessibility for emoji (#2186 by @MaxLeiter)
- Do not condense actions that are performed by or related to the user (#2268 by @xPaw)
- Reduce lightness of low contrast nick colors to reach AA level of WCAG 2.0 (#2282 by @astorije)
- Reduce top margins in Settings/Help/etc. (#2321 by @MaxLeiter)
- Improve UI of previews (#2272, #2349 by @astorije)
- Extract Crypto and Zenburn from the core codebase, rename "Example" theme, fallback to default theme when a theme is unavailable (#2328 by @astorije)
- Update placeholder rules for modern browsers (#2356 by @xPaw)
- Add project version in outputs that mention source SHA (#2361 by @astorije)
- Remove header border on non-chat windows and reduce top margin a bit more (#2368 by @astorije)
- Make "Show older messages" style consistent with other buttons (#2369 by @astorije)
- Count quits as parts in condensed messages to reduce information density (#2386, #2383, #2392 by @xPaw)
- Favicons, favicons everywhere (#2009, #2540 by @astorije, #2431 by @xPaw, #2755 by @McInkay)
- Show a ghost placeholder when dragging channels (#2405 by @xPaw)
- Use overscroll-behavior (#2413 by @xPaw)
- Switch to
linkify-it
for URL detection in messages (#2397 by @xPaw) - Add asterisk in front of nick in action lines (#2488 by @Jay2k1)
- Put list items in network context menu together (#2494 by @xPaw)
- Do not write topic on join to logs (#2508 by @xPaw)
- Make CTCP requests/responses increase unread counter (#2510 by @Jay2k1)
- De-duplicate link fetching to one request at once (#2538 by @xPaw)
- Improve formatting of text logs (#2501 by @Jay2k1)
- Target more modern browsers in babel (#2565 by @xPaw)
- Make context menus accessible with keyboard (#2377 by @xPaw)
- Revamp default theme a bit (#2315 by @astorije)
- Also send away notices to query windows (#2576 by @xPaw)
- Replace current red-text highlight with a full background-color highlight (#2526, #2585, #2622 by @astorije)
- Warn if config owner does not match process UID (#2570 by @xPaw)
- Improve MOTD styling (#2633 by @astorije, #2653 by @xPaw, #2657 by @MiniDigger)
- Make user list section titles sticky on scroll, improve contrasts for accessibility, use CSS variables (#2643 by @astorije)
- Network-first service worker caches (#2515 by @xPaw)
- Add
X-Purpose
header to link prefetcher (#2695 by @RockyTV) - Keep timestamps aligned when using a font with variable-width numbers (#2683 by @ivan)
- Improve confirmation box wording for network removal in client (#2715 by @fnutt)
- Remember disconnected networks between server restarts (#2718 by @xPaw)
- Update emoji data for Emoji v11 (#2735 by @xPaw)
- Enable underlines on links (#2618, #2790, #2817 by @xPaw)
- Use
Date.toISOString
for logging (#2787 by @xPaw) - Add logging to all code paths in LDAP auth (#2930 by @xPaw)
- Update production dependencies to their latest versions:
irc-framework
(#2097, #2575, #2648, #2826, #2981)web-push
(#2112, #2459, #2579, #2782)yarn
(#2123, #2126, #2358, #2465, #2679, #2688, #2808, #2885)chalk
(#2156, #2365)commander
(#2169, #2253, #2606, #2689, #2694, #2762, #2836)request
(#2202, #2454, #2698)sqlite3
(#2238, #2584, #2651, #2863, #2894, #2972)express
(#2241, #2844)socket.io
andsocketio-file-upload
(#2310, #2456, #2911), #2832, #2868)lodash
(#2384, #2772)fs-extra
(#2410, #2450, #2654, #2893)ua-parser-js
(#2422, #2873)package-json
(#2461)filenamify
(#2555)uuid
(#2596, #2605)mime-types
(#2659, #2722, #2857)semver
(#2703, #2843, #2871)file-type
(#2833, #2861, #2878, #2897, #2914)linkify-it
(#2908)
Deprecated
Removed
- Switch to Node v6 as the minimal supported version (#1727 by @astorije, #2907 by @xPaw)
- Remove autoload deprecation notice (#1728 by @astorije)
- Remove deprecated support for
debug
as a boolean in the configuration file (#1729 by @astorije) - Remove deprecated support for the
--home
option and$LOUNGE_HOME
environment variable (#1733 by @astorije) - Get rid of
Object.assign
polyfill (#1760 by @astorije) - Remove deprecated options for
thelounge start
(#1834 by @astorije) - Remove session token hash conversion (#1966 by @xPaw)
- Remove deprecated support for CSS filenames in theme configuration (#1730 by @astorije)
- Remove support for the
lounge
CLI (which was replaced withthelounge
) (#2077 by @astorije) - Remove
thelounge config
from the CLI (#2196 by @astorije) - Remove nick editor (#2337 by @xPaw)
- Remove ability to change date format and timezone (#2506 by @xPaw)
Fixed
- Fix CTCP commands always sent upper-case (#1927 by @astorije)
- Rewrite CTCP handling (#1928 by @xPaw)
- Send empty banlist error to lobby for channels user is not in (#2095 by @xPaw)
- Change
wsEngine
tows
(#2099 by @xPaw) - Fix
log.warn
in LDAP (#2106 by @xPaw) - Always correctly trigger sticky scroll on
.chat
container (#2107 by @xPaw) - Fix "rendering..." getting stuck on first connection (#2109 by @xPaw)
- Change "Leave" button tooltip to correspond with right click context menu (#2115 by @fnutt)
- Revert "Allow scaling the page" (#2122 by @astorije)
- Set channel state to joined when channel already exists (#2142 by @xPaw)
- Do not crash when user file can not be read or written (#2143 by @xPaw)
- Cleanup chat/userlist to use flexbox, fix a couple of bugs (#2150, #2160 by @xPaw)
- Fix default ECDH curve for better compatibility (#2159, #2163 by @xPaw)
- Do not listen to touch events until client is initialized (#2158 by @xPaw)
- Normalize unicode URLs in link prefetcher (#2171 by @xPaw)
- Fix background color when hovering users in user list (darker themes) (#2172 by @williamboman)
- Always hide horizontal overflow in chat (#2177 by @xPaw)
- Do not include colon in push message for actions (#2179 by @xPaw)
- Do not crash when
awayMessage
is set but IRC connection does not exist (#2181 by @xPaw) - Remove
contain
as it's causing rendering issues (#2182 by @xPaw) - Allow overriding arrays in config, warn about incorrect types (#2189 by @xPaw)
- Don't access
Notification
if the browser does not support it (#2192 by @creesch) - Do not repaint theme on page load (#2213 by @xPaw)
- Fix some URLs not being sent as-is to the client (#2217 by @xPaw)
- Send hexip in ident responses (#2237 by @xPaw)
- Rework how unread marker is moved when status messages are hidden (#2236 by @xPaw)
- Fix incorrect spelling (#2243 by @birkof)
- Support strikethrough and underline at same time (#2248 by @MaxLeiter)
- Render video and audio previews only after
canplay
event fires (#2251 by @xPaw) - Stop propagation, prevent input history call when
alt
is involved (#2262 by @realies) - Scroll channel list only when using keybinds (#2259 by @xPaw)
- Fix order in oidentd file (#2273 by @xPaw)
- Hide autocompletion menu when input is submitted (#2284 by @xPaw)
- Send
Accept
header when fetching links (#2287 by @xPaw) - Fix/Improve some nick fallbacks (#2297 by @astorije)
- Remove left padding from sidebar in example theme (#2309 by @xPaw)
- Fix line-height showing scrollbar on mobile (#2331 by @xPaw)
- Prevent
undefined
OS version in session list (#2340 by @dgw) - Enable sync on empty local storage, force sync, sync on both load and reconnect (#2317 by @creesch, #2544 by @xPaw)
- Fix nicks with special characters being colored incorrectly in messages (#2363 by @xPaw)
- Quick-fix tooltips not being loaded by Webpack (#2367 by @astorije)
- Fix user list scroll area expanding behind the message input on mobile (#2364 by @astorije)
- Fix your own nick in auto completion (#2381 by @xPaw)
- Make a separate function to execute yarn commands; fallback to global yarn (#2385 by @xPaw)
- Fix join channel UI moving when sorting channels (#2404 by @xPaw)
- Fix CSS issues in Microsoft Edge (#2409 by @xPaw)
- Add prefix to channels from connect window (#2378 by @xPaw)
- Specify
parseInt
base inrespondToIdent
(#2439 by @xPaw) - Pointer cursor hovering nicks in user list (#2445 by @MaxLeiter)
- Show connect window when last network is removed (#2480 by @xPaw)
- Fix being unable to click channel link in chan after being kicked (#2482 by @Jay2k1)
- Prevent long lobby names pushing badges out of sidebar (#2503 by @dgw)
- Do not mark your nick changes as self in each channel (#2505 by @xPaw)
- If a preview fails to load, remove the link from msg object (#2504 by @xPaw)
- Fix
/away
not setting you away (#2524 by @xPaw) - Use
http:
for protocol-less URLs (#2532 by @benharri) - Fix word boundary in the custom highlights regex not matching unicode (#2534 by @McInkay)
- Fix multiple
<title>
tags being concatenated (#2543 by @xPaw) - Synchronize number of highlighted messages to client (#2547 by @xPaw)
- Log notices as correct sender when it will be shown in active window (#2550 by @xPaw)
- Do not remove date marker when loading history if date changes (#2567 by @xPaw)
- Reset highlights on self messages; update title when other client opens a channel (#2580 by @xPaw)
- Fix text not having enough space in
<select>
with some fonts (#2548 by @xPaw) - Name close button text on channels "Leave" and keep "Close" for other types (#2593 by @MaxLeiter)
- Disable username auto-capitalization on login form input field (#2617 by @fnutt)
- Make user list state consistent on mobile and desktop (#2599 by @xPaw)
- Fix incorrect target in connect/disconnect context menu (#2626 by @xPaw)
- Stop handling CTCP messages if the sender/target is ignored (#2609 by @RockyTV)
- Fix disabling autocomplete and fix completing special channels (#2630 by @xPaw)
- Remove extra closing tag (#2639 by @xPaw)
- Do not write
/list
messages to logs (#2637 by @xPaw) - Fix ignore list resetting on server restart (#2640 by @xPaw)
- Change alert sound from OGG to WAV (#2655 by @realies)
- Fix IRC modifiers not working with caps lock (#2677 by @xPaw)
- Fix bugs with URL overrides in Connect window (#2702 by @astorije)
- Hide
Native App
settings section when no items are available (#2705 by @MaxLeiter) - Fix displaying away message multiple times in query windows (#2721 by @xPaw)
- Make sure data is an object (#2730 by @xPaw)
- Drop
spdy
module in favor of nativehttps
module (#2732 by @xPaw) - Enforce lobby to be the 0th channel when sorting (#2733 by @xPaw)
- Add
try
/catch
tolocalStorage
methods (#2701 by @adamus1red) - Fix passwords not being saved in Firefox (#2741 by @xPaw)
- Add 3 commands that were missing on client autocomplete (#2756 by @McInkay)
- Fix fullscreen mode for videos (#2775 by @richrd)
- Fix issues in regards to ignoring your own nickname (#2795 by @xPaw)
- Fix extra padding in condensed messages on mobile (#2798 by @xPaw)
- Fix stored image previews not being dereferenced (#2824 by @xPaw)
- Make sure registered command is actually a function (#2848 by @xPaw)
- Use
hasOwnProperty
when checking for webirc (#2849 by @xPaw) - Hard limit nicks to 100 characters, add maxlength on connect inputs (#2858 by @xPaw)
- Fix timing issue crashing on
undefined
when settingopenChannel
(#2859 by @xPaw) - Serve requests from cache when server responds with non 2xx response (#2973 by @xPaw)
- Add fallback IP address for unix sockets (#2967 by @xPaw)
- Don't fallback to
host
in identd server (#2958 by @xPaw) - Fix
.active
styles incorrectly applying to hovered users in userlist (#2975 by @xPaw) - Empty storage directory after destroying all channels (#2937 by @xPaw)
- Add an extra check for setting names (#2977 by @xPaw)
- Fix highlight styles not applying to notices and actions (#2980 by @xPaw)
- Set yarn cache folder in the packages folder (#2979 by @xPaw)
Security
- Sync network status and security to client UI (#2049 by @xPaw)
- Consider localhost connections secure (#2081 by @xPaw)
- Ignore events on the server if incorrect data is supplied (#2088 by @xPaw)
- Allow setting
rejectUnauthorized
per network (#2075, #2154 by @xPaw) - Print failed login attempts to console (#2247 by @xPaw)
- Empty local storage on sign out and move the sign out button to the settings (#2254 by @astorije)
- Use
attr()
on user-controlled data (#2398, #2406 by @xPaw)
Documentation
In the main repository:
- Replace reference to website with new URL (#1980 by @astorije)
- Improve the README (#2003, #2085, #2086, #2121, #2891 by @astorije, #2535, #2737, #2883, #2890, #2902 by @xPaw)
- Switch from npm to yarn (#1987 by @xPaw, #2664 by @fnutt, #2303 by @benharri)
- Back to
help wanted
label (#2102 by @xPaw) - Remove
mailto:
part of security email address (#2201 by @astorije) - Improve readability and styling of shortcut keys in the Help section (#2221 by @astorije)
- Fix typo in CTCP request (#2255 by @MaxLeiter)
- Create issue templates (#2274 by @xPaw, #2604 by @Zarthus)
- Document npm's
--unsafe-perm
option (#2379 by @xPaw) - Move GitHub-related files to
.github
folder (#2603, #2608 by @Zarthus, #2621 by @richrd) - Clarify
/topic
command in the Help page when sent without a new topic (#2595 by @joandrsn) - Improve inline documentation of config defaults and use it to generate website counterpart (#2645 by @astorije, #2882, #2901 by @xPaw, #2915 by @MaxLeiter)
- Only generate entries for commits/PRs that do not already exist in the CHANGELOG upon re-generation (#2961 by @astorije)
- List website contributors as well when generating changelog entries (#2970 by @astorije)
- Make sure the changelog page is selectable, e.g. for copy-pasting commands (#2984 by @astorije)
On the website repository:
- Create CNAME (
c8cfda5
by @xPaw) - Re-name "User support" header (#77 by @MaxLeiter)
- Set up Gemfile and fix GitHub star counter (#78 by @astorije)
- Add all assets related to the logos (#76 by @astorije, #79, (#80 by @Mandihamza)
- Upgrade jQuery from v2.1.1 to v3.3.1 (#88 by @astorije)
- Enable code formatting in titles and increase a bit code font size (#89 by @astorije)
- Set HTML
lang
attribute to help screen readers (#90 by @astorije) - Switch
redcarpet
engine tokramdown
(#91 by @astorije) - Add new logo as favicon, remove redundant link tags, add and rename favicon assets (#98 by @astorije)
- Update dependencies to suppress a GitHub security warning, and pin their version (#93 by @astorije)
- Improve markup, reduce height of navbar, use GitHub logo, add a link to themes (#95 by @astorije)
- Remove various unnecessary pieces of the website/documentation (#94 by @astorije)
- Add anchor links to
h2
andh3
headers (#99 by @astorije) - Upgrade Font Awesome from 4 to 5 (#100 by @astorije)
- Update Bootstrap to be able to use collapsible components (for navigation) and minify it (#102 by @astorije)
- Search feature (#101 by @astorije, #185 by @xPaw)
- Make
16px
favicon sharper (#105 by @xPaw) - Add security headers (#107 by @xPaw)
- Use Muli font for the site (#106 by @xPaw)
- Rewrite install docs (#104 by @astorije, #191 by @GewoonYorick)
- Update configuration doc with the config generated from the main repo (to master) (#109,
abc0aba
by @xPaw, #184 by @MaxLeiter) - Use apt to install on Debian/Ubuntu (#110 by @benharri)
- Structure doc navigation, use Netlify for redirects (#111, #127 by @astorije,
7d292de
, #181 by @xPaw) - Prevent font flashing (#112 by @astorije)
- Make demo link a bigger target (#114 by @xPaw)
- Create
robots.txt
(#115 by @xPaw) - Set up the stage for upcoming guides (#117 by @astorije)
- Re-write documentation about server usage (and replace
--home
withTHELOUNGE_HOME
) (#116 by @astorije,3435c87
,3ff6d09
, #141 by @xPaw) - Add syntax highlighting (#120 by @astorije)
- Document user management in The Lounge (#118 by @astorije)
- Add a guide about reverse proxies (#119 by @astorije, #182, #186, #189 by @xPaw)
- Add a guide about HTTPS using the built-in server (#121 by @astorije)
- Add a guide about URL overrides (#123 by @astorije)
- Add an introduction page for the doc (#126 by @astorije)
- Add a very high-level overview of CTCP in guides (#122 by @astorije, #194 by @Jay2k1)
- Update features on main page to be the same as main repo README (#113 by @xPaw)
- Move theme authoring information to new doc structure (#128 by @astorije)
- Add preload to HSTS (#129 by @xPaw)
- Fixes (#130 by @astorije)
- Add a guide for custom CSS (#125 by @astorije)
- API reference (#131 by @astorije)
- Add a table of contents where necessary (#132 by @astorije)
- Do not markdownify titles as it wraps them in paragraph (#133 by @astorije)
- Add an "Edit this page" button to docs pages (#134 by @astorije)
- Make internal links extension-less and fix a few links (#135 by @astorije)
- Add an upgrade guide and extract abbreviations into a shared file (#136 by @astorije,
52df65c
by @xPaw) - Update the index page to not contain npm only instructions, add screenshot, and update colors to match branding (#137 by @astorije)
- App screenshot (
8020290
,d10cf1f
by @xPaw) - Make footer more readable, change text, remove Twitter button (#142) (
2c6c137
by @xPaw) - Make navigation usable on mobile (#139 by @astorije)
- Fix
ldapFilter
overflowing on mobile (#151 by @xPaw) - Remove leftover images (#154 by @astorije)
- Set some
meta
tags (#152 by @xPaw) - Improve links on alerts (#157 by @astorije)
- Replace
~
with${THELOUNGE_HOME}
in upgrade guide (#155 by @astorije) - Load search data asynchronously (#159 by @xPaw)
- Use
page.description
if available (#161 by @xPaw) - Replace
bootstrap.js
with vanilla JS (#144 by @xPaw) - Use SVG icons (#162 by @xPaw)
- Add a Community page (#138 by @astorije)
- Mark guides/API links active when in sub pages (#163 by @xPaw)
- Use SVG logos for app stores (#166 by @xPaw)
- Align footer button with the text, remove deprecated
iframe
attributes (#160 by @xPaw) - Community: Add an IRC channel for Scandinavian countries (#171 by @astorije)
- Allow page to be scaled (#170 by @xPaw)
- Prevent redirect from
/docs
to/docs/
(#169 by @astorije) - Fix sitemap, docs redirect, extension hackery, active style in navbar, etc. (#173 by @astorije)
- Warn about API instability (#174 by @xPaw)
- Kill the Heroku docs (#143, #177 by @astorije)
- Fix
/docs
highlighted as active incorrectly (#178 by @xPaw) - Do not link to language-specific URL of Yarn to let them redirect to the correct language (#180 by @astorije)
- Disallow robots in non-production (#175 by @xPaw)
- Add very minimal Google Analytics script (#187, #188,
2f83b05
by @xPaw) - Don't add canonical tag for 404 pages (#190 by @xPaw)
- Add guide "Identify users with identd or oident" (#192 by @xPaw)
Internals
- Skip scripts folder from test coverage (#2076 by @xPaw)
- Enable
no-var
rule (#1962, #2078 by @xPaw) - Deal with npm's
dist-tag
at Travis deploy time (#2080 by @astorije) - Enforce
padding-line-between-statements
(#1920 by @xPaw) - Instrument client code before running tests (#1726 by @astorije)
- Do not publish Webpack config for test env (#2087 by @astorije)
- Change
isOpInChannel
to allow multiple different user roles (#1864 by @McInkay) - Update all links to thelounge repository (#2091 by @xPaw)
- Remove
isRegistered
(#2082 by @xPaw) - Use Yarn in the PR-test script (#2093 by @astorije)
- Use
document.body
when wrapping it in a jQuery object (#2110 by @xPaw) - Enable in-browser run of client testing (#2094 by @astorije)
- Refactor channel titles to use flexbox (#2113, #2140 by @xPaw)
- Remove unintentionally included
lodash
in client build (#2132 by @xPaw) - Increase test timeout on CI (#2134 by @xPaw)
- Replace
colors.js
withchalk
(#2145 by @xPaw) - Remove
setMaxListeners
(#2164 by @xPaw) - Cleanup sidebar to use flexbox (#2149 by @xPaw)
- Optimized notification dot state (#2170 by @xPaw)
- Ignore order of preview results in unicode link tests (#2175 by @astorije)
- Try to fix SQLite test failing on CI randomly (#2180 by @xPaw)
- Enforce object literal shorthand syntax with ESLint (#2073 by @astorije)
- Fix
yarn coverage
script on Windows (#2252 by @astorije) - Bind formatting hotkeys on input element (#2263 by @xPaw)
- Enforce consistent quotes around properties with ESLint (#2285 by @xPaw)
- Fix lint and test issues on master (#2292 by @xPaw)
- Remove Node.js v9, add v10 and v11 to the Travis CI matrix (#2296, #2792, #2387, #2877, #2312 by @astorije)
- Reimplement input history (#2286 by @xPaw, #2314 by @astorije)
- Pull context menu code out of
lounge.js
and make it more generic (#1878 by @McInkay) - Replace pseudo-element gradient fade with mask-image (#2270 by @xPaw)
- Upgrade to Webpack 4 (#2117 by @xPaw)
- Replace client IDs with GUIDs (#2344 by @xPaw)
- Remove network IDs and use UUIDs everywhere (#2390 by @xPaw)
- Use per-client channel and message IDs (#2396 by @xPaw)
- Minor optimization in style parser (#2408, #2428 by @xPaw)
- Use new Font Awesome package (#2420 by @xPaw)
- Configure Renovate (#2437 by @renovate)
- Update Travis and Renovate configs (#2466 by @xPaw)
- Refactor
userLog
to be the same as SQLite logger (#2366, #2670, #2764 by @xPaw) - Remove
URIjs
(#2471 by @xPaw) - Fix mouse cursor on user list (#2487 by @astorije)
- Minify handlebars templates (#2498 by @xPaw, #2502 by @dgw, #2539 by @astorije)
- Remove
log
fromglobal
(#2563, #2569 by @xPaw) - Move
.nyc_output
folder out of root (#2564 by @xPaw) - Update
no-confusing-error
ESLint rule to allow parenthesis (#2592 by @MaxLeiter) - Increase delay between links to remove random test failure (#2624 by @xPaw)
- Refactor
getHumanDate()
to accept a timestamp; avoids possible test failure; more accurate log times (#2669 by @MaxLeiter) - Use a new npmjs token and secure entries to publish through Travis (#2716, #2876 by @astorije)
- Fix stack traces in client tests (#2751 by @xPaw)
- Remove moment locales from build (#2788 by @xPaw)
- Upgrade
yarn.lock
before final release (#2799 by @xPaw) - Enable Windows and macOS builds on Travis, remove AppVeyor (#2850 by @xPaw)
- Fix config generator script comment (#2881 by @astorije)
- Rename
manifest.json
tothelounge.webmanifest
(#2895 by @xPaw) - Move
primer-tooltips
andmoment
todevDependencies
(#2906 by @xPaw) - Make links in generated config relative (#2913 by @xPaw)
- Update changelog generator script (#2786 by @xPaw)
- Relax identd checks to make it more compatible (#2959 by @xPaw)
- Catch LDAP bind error and search warning log messages in ldap tests (#2955 by )
- Update development dependencies to their latest versions:
stylelint
(#2069, #2089, #2092, #2220, #2228, #2323, #2458, #2561, #2676, #2707, #2810, #2880, #2909)eslint
(#2084, #2146, #2244, #2271, #2582, #2590, #2632, #2667, #2690, #2704, #2736, #2778, #2812, #2847, #2875, #2923)copy-webpack-plugin
(#2111, #2139, #2183, #2594, #2841, #2856, #2886)graphql-request
(#2105, #2136, #2394, #2423, #2674, #2685, #2693, #2697)textcomplete
(#2131, #2283, #2320)stylelint-config-standard
(#2137)moment
(#2147, #2319, #2357, #2493, #2931)mocha
(#2155, #2165, #2168, #2280, #2354, #2373, #2451)nyc
(#2208, #2374, #2430, #2433, #2452, #2492, #2509, #2725, #2852)primer-tooltips
(#2265, #2453, #2557, #2610, #2681, #2866, #2899)sinon
(#2269, #2335, #2401, #2407, #2412, #2427, #2455, #2464, #2517, #2542, #2588, #2612, #2623, #2628, #2668, #2696, #2752, #2773, #2776, #2780, #2825, #2853, #2870, #2887, #2925, #2927)istanbul-instrumenter-loader
(#2307)socket.io-client
(#2311, #2457)webpack-dev-server
(#2338, #2339, #2415, #2671, #2720, #2731, #2759, #2802, #2864, #2945)undate
(#2371)webpack
(#2370, #2421, #2460, #2467, #2475, #2476, #2483, #2484, #2514, #2518, #2528, #2586, #2598, #2615, #2619, #2641, #2652, #2672, #2678, #2686, #2692, #2709, #2713, #2745, #2766, #2774, #2777, #2781, #2803, #2805, #2807, #2855, #2860, #2867, #2869, #2888, #2898, #2905, #2917, #2919)webpack-cli
(#2376, #2402, #2425, #2463, #2495, #2497, #2512, #2520, #2551, #2553, #2559, #2662, #2796, #2815)npm-run-all
(#2426, #2904)@fortawesome/fontawesome-free
(#2481, #2577, #2658, #2673, #2724, #2729, #2835, #2845, #2874, #2889, #2922, #2929)mousetrap
(#2500)emoji-regex
(#2531, #2734)html-minifier
(#2589, #2611, #2646, #2708, #2872)mini-css-extract-plugin
(#2607, #2710, #2784, #2842, #2903, #2920)babel-loader
(#2620, #2727, #2740, #2742, #2811)mocha-loader
(#2723)handlebars
(#2750)@babel/core
(#2768, #2813, #2932)chai
(#2809)intersection-observer
(#2862)
v3.0.0-rc.6 - 2019-01-15 [Pre-release]
This is a release candidate (RC) for v3.0.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.0.0-rc.5 - 2018-11-21 [Pre-release]
This is a release candidate (RC) for v3.0.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.0.0-rc.4 - 2018-10-26 [Pre-release]
This is a release candidate (RC) for v3.0.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.0.0-rc.3 - 2018-10-10 [Pre-release]
This is a release candidate (RC) for v3.0.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.0.0-rc.2 - 2018-10-08 [Pre-release]
This is a release candidate (RC) for v3.0.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.0.0-rc.1 - 2018-09-20 [Pre-release]
This is a release candidate (RC) for v3.0.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.0.0-pre.8 - 2018-08-25 [Pre-release]
This is a pre-release for v3.0.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
yarn global add thelounge@next
v3.0.0-pre.7 - 2018-06-19 [Pre-release]
This is a pre-release for v3.0.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v3.0.0-pre.6 - 2018-05-26 [Pre-release]
This is a pre-release for v3.0.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v3.0.0-pre.5 - 2018-03-28 [Pre-release]
This is a pre-release for v3.0.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v3.0.0-pre.4 - 2018-03-27 [Pre-release]
This is a pre-release for v3.0.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v3.0.0-pre.3 - 2018-03-08 [Pre-release]
This is a pre-release for v3.0.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v3.0.0-pre.2 - 2018-03-03 [Pre-release]
This is a pre-release for v3.0.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v3.0.0-pre.1 - 2018-02-21 [Pre-release]
This is a pre-release for v3.0.0 to offer latest changes without having to wait for a stable release. At this stage, features may still be added or modified until the first release candidate for this version gets released.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.7.1 - 2018-02-18
For more details, see the full changelog and milestone.
This releases mainly fixes bugs that were introduced by previous versions, and comes with very minor improvements to the UI. Among other things, we fixed the unread markers showing multiple times, which in turn fixes memory leaks when keeping The Lounge open for long periods of time (e.g. overnight).
This simply ensures we did not leave any unattended bugs before going for The Lounge v3.
Changed
- Autocomplete channels on the current network (#1993 by @milindl)
- Set
decoding="async"
on image previews (#1924 by @xPaw) - Add tooltip to channel close button (#1856 by @MaxLeiter)
- Show channel name on channel-related errors (#1933 by @RockyTV)
- Display password field when
displayNetwork
is false (#2066 by @xPaw) - Update production dependencies to their latest versions, by Greenkeeper 🚀:
Fixed
- Prevent user context menu from opening while selecting text (#1955 by @xPaw)
- Fix timestamp tooltips not aligning correctly with timestamps (#1999 by @astorije)
- Set
start_url
inmanifest.json
so that The Lounge always opens the correct window (#2010 by @xPaw) - Do not statically serve the index template prior to rendering it (#1979 by @astorije)
- Persist query windows between server restarts (#2019 by @McInkay)
- Preload preview images before appending them to DOM (#1925 by @xPaw)
- Fix
textcomplete
reference inautocompletion.disable
(#2023 by @xPaw) - Send visible defaults when
displayNetwork
isfalse
(#2025 by @xPaw) - Wait for server response when parting channels (#2020 by @xPaw)
- Fix auto-open media option not working (#2027 by @xPaw)
- Do not block
/join
command from being sent (#2013 by @xPaw) - Define which message types should not be logged (#2022 by @xPaw)
- Fix messages not being condensed correctly (#2030 by @xPaw)
- Fix queries going to lobby if the network name matches user name (#2037 by @xPaw)
- Fix default theme not being correct (#2033 by @xPaw)
- Fix duplicate chat containers and unread markers when reconnecting (#2039 by @xPaw)
- Fix crash when hostname is changed in lockNetwork mode (#2042 by @xPaw)
- Still render link previews if image fails to load (#2043 by @xPaw)
- Make sure packages can be referenced in subfolders (#2045 by @xPaw)
- Ensure packages loaded are directories (#2035 by @astorije, #2060 by @xPaw)
- Fix border after nickname not taking full height (#2055 by @xPaw)
- Provide exact version into
npm install
command (#2063 by @xPaw) - Track channel state to allow removing channels user is not in (#2058 by @xPaw)
- Allow scaling the page (#1910 by @xPaw)
- Fix
bind
not being passed toirc-framework
(#2071 by @xPaw)
Security
Internals
- Build template list at Webpack time instead of manually keeping this in sync with the views folders (#1931 by @astorije)
- Remove deprecated jQuery calls (#2015 by @xPaw)
- Unbind image events after the image is loaded (#2047 by @xPaw)
- Use forked ldapjs to remove dtrace (#2021 by @xPaw)
- Update development dependencies to their latest versions, by Greenkeeper 🚀:
v2.7.0 - 2018-01-28
For more details, see the full changelog and milestone.
The Lounge v2.7.0 is out, and it's a big one! Here is a shortlist of the most notable additions and changes, but as usual, a comprehensive list is available below.
It is now possible to join a channel directly from the UI:
The + button next to any network opens a form to join a channel.
Nicks mentioned in messages are now clickable:
Context menu actions have been improved, and new actions have been added:
Available actions on nicks in the chat window, and on channels and networks in the channel list
A long-awaited feature, it is now possible to add customizable strings when auto-completing nicks at the beginning of a message:
To achieve this, set ,
in your client settings.
The user information available when sending the /whois
command (or clicking the corresponding action in a user context menu) has been enhanced:
Message styling now supports strikethrough text, monospace font, and additional colors:
Strikethrough is achieved with Ctrl/⌘ + S. Monospace is achieved with Ctrl/⌘ + M.
The Help window gains a version checker, to inform you if a new version was released:
By clicking on the "release notes" link that can be seen above, all the details about the current version appear directly in the client:
The link previewer now supports WebP images, as well as audio and video links:
Another noticeable change is the new message alignment in the main chat window, in order to improve visual experience and reduce flickering when loading a page:
There were other changes on the client: accessibility of the application has been improved, notices and errors are now displayed in the current channel (then sent to the corresponding network window when reloading), and many bug fixes.
The Lounge v2.7.0 finally comes with its first package API, letting packages register stylesheets in the client. It is in its very early stage at the moment and is subject to change in future releases, so use it at your own risk. There will not be an official documentation before the API stabilizes in v3, but for more information, refer to the corresponding PR.
The CLI has also been improved:
- When a password gets changed using the
reset
command, the new password takes effect immediately, it is not necessary to restart the server anymore. - A new
uninstall
command has been added to remove themes and packages. - A new
--config
/-c
option is available to override entries of the configuration file.
⚠️ This version also comes with a few deprecations. All deprecated features are still supported in The Lounge v2.7.0 but be removed from The Lounge v3 (the next version). We recommend upgrading to v2.7.0 before upgrading to the future v3, as v2.7.0 will warn you about deprecated configurations in the server output. Those deprecations are:
- Support for Node.js v4 is being removed, making Node.js v6 the oldest version we will support.
- The
LOUNGE_HOME
environment variable is getting replaced withTHELOUNGE_HOME
. Use this in lieu of the deprecated--home
option as well. - In the unlikely situation that you are relying on the
.lounge_home
file (mainly useful for package maintainers), it is being renamed to.thelounge_home
. - The CLI command is being changed from
lounge
tothelounge
. - All options for the
start
command are being removed, replaced with the--config
/-c
option mentioned above. For example,--public
becomes-c public=true
,--port 9001
becomes-c port=9001
, etc. - Referring to themes in the
theme
option of the configuration file is now done through their name, not their CSS file name.
And finally... The Lounge has its own logo! 🎉
A huge thank you to Francesca Segantini, the artist who designed it! We will start rolling out our new logo in all the relevant places as of The Lounge v3. In the meantime, you can find details about the logo (and stickers!) on the corresponding issue.
Added
- Link and color nicks mentioned in messages (#1709, #1758 by @MaxLeiter, #1779, #1901 by @xPaw)
- Detect
image/webp
as an image (#1753 by @xPaw) - Implement strikethrough and monospace formatting (#1792 by @grissly-man, #1814 by @xPaw)
- Add the user's actual IP in the result of
/whois
(#1788 by @PolarizedIons) - Handle
CHGHOST
cap (#1578 by @xPaw) - Handle JavaScript errors while loading (#1794 by @xPaw, #1845 by @astorije)
- Add actions to user context menu (#1722 by @creesch)
- Add styling for 16-98 colors (#1831 by @xPaw)
- Add "Channel list" to network context menu (#1802 by @MaxLeiter)
- Support audio file previews (#1806 by @MaxLeiter)
- Support video file previews (#1817 by @MaxLeiter, #1904 by @astorije)
- Insert user-configurable string when autocompleting nicks (#1799 by @xPaw)
- Add banlist action to channel context menus (#1858 by @YaManicKill)
- Join a channel from the UI (#1836 by @MaxLeiter, #1881, #1882 by @astorije, #1916, #1917 by @williamboman)
- Changelog viewer and updater checker in the client (#1327 by @xPaw, #1897 by @astorije)
- Add a
thelounge uninstall
command to remove themes and packages (#1938, #1974 by @astorije) - Add a package API for custom CSS (#1619 by @YaManicKill, #1970 by @astorije)
Changed
- Parse formatting in real name (#1689 by @xPaw)
- Use service worker to display notifications if available (#1580 by @xPaw)
- Include all available whois info (#1681 by @creesch, #1743 by @MaxLeiter)
- Focus a channel by joining it, refactor user commands #1189 (#1491 by @realies)
- Handle hex colors when cleaning string (#1731 by @xPaw)
- Trim channel messages in active channel and when switching channels (#1738 by @xPaw)
- Do not keep scroll to bottom in inactive channels (#1739 by @xPaw)
- Show notices and errors inline (#1380 by @xPaw)
- Ensure passwords are reloaded when updated via CLI (#1593 by @RJacksonm1)
- Warn if user configuration being loaded is empty (#1821 by @astorije)
- Align message container to the bottom (#1787 by @xPaw)
- Clear storage folder after successful start and graceful exit (#1853 by @xPaw)
- Format whois as a definition list (#1850 by @xPaw)
- Rename "Client Settings" into "Settings" in tooltip + cleanup (#1880 by @astorije)
- Open and focus correct channel when clicking on push notifications (#1895 by @xPaw)
- Add screen reader label for custom css textarea (#1908 by @xPaw)
- Set
aria-label
on main input (#1906 by @xPaw) - Mute disabled inputs (#1905 by @xPaw)
- Update production dependencies to their latest versions, by Greenkeeper 🚀:
Deprecated
- Deprecate support of Node.js v4 in preparation of The Lounge v3 (#1715 by @astorije)
- Deprecate
LOUNGE_HOME
environment variable in favor ofTHELOUNGE_HOME
,.lounge_home
file in favor of.thelounge_home
(#1717, #1785 by @astorije) - Switch CLI tool from
lounge
tothelounge
, deprecatelounge
(#1708 by @astorije) - Deprecate existing options of
thelounge start
and add a generic--config
override (#1820 by @astorije) - Rename thumbnail/image option to more general
media
(#1832 by @MaxLeiter)
Removed
Fixed
- Handle empty client queries (#1676 by @realies)
- Call callback on fetch error (#1742 by @xPaw)
- Trigger keep to bottom for previews correctly (#1746 by @xPaw)
- Fix duplicate text generated when sending channel and link together (#1747 by @astorije)
- Fix text highlighting when clicking on condensed message toggles (#1748 by @MaxLeiter)
- Do not keep sign-in and loader references in memory (#1757 by @xPaw)
- Fix nick changes wrongly reported (#1772 by @astorije)
- Clone instances of
User
inMsg
to avoid unintentional mutations (#1771 by @astorije, #1859, #1865 by @xPaw) - Ask for notification permission on page load if setting is enabled (#1789 by @xPaw)
- Merge condensed messages when loading more history (#1803 by @xPaw)
- Proper network icon in context menu (#1816 by @MaxLeiter)
- Implement reverse style (#1797 by @grissly-man)
- Do not load user commands or display them on
--help
if public mode or using LDAP (#1807 by @astorije) - Improve user and channel icons in channel list and context menu (#1824 by @astorije)
- Use better icons for channel/query list and context menu actions (#1829 by @astorije)
- Fix UI issues with special channels (#1849 by @astorije)
- Fix gap between
#sidebar
and#footer
(#1691 by @realies) - Add missing time (and icon) of status messages on mobile (#1843 by @astorije)
- Add visual feedback on focused buttons, for example when tabbing to it (#1871 by @astorije)
- Fix missing messages when reconnecting (#1884 by @xPaw)
- Fix slideout not closing on mobile when hitting a footer icon (#1892 by @astorije)
- Display the correct window on page reload (#1889 by @astorije)
- Fix error not showing up in failed push subscription (#1896 by @xPaw)
- Only emit "more" history to the client that requested it (#1949 by @xPaw)
- Provide correct timestamp to browser notifications (#1956 by @xPaw)
- Fix enabling push notifications on Firefox (#1975 by @xPaw)
- Add missing execution of callback in
ClientManager.updateUser
(#1978 by @merlinthp) - Make sure existing packages (and themes) are not deleted when installing a new one on Node.js v8 (#1986 by @astorije)
- Stop expanding condensed messages on
/expand
(#2006 by @YaManicKill)
Security
- Harden content security policy even further (#1810 by @xPaw)
- Stop LDAP authentication from succeeding without password (#1725 by @keegan)
- Store images with correct file extension (#1926 by @xPaw)
- Hash user tokens, increase token entropy (#1940 by @xPaw)
Documentation
In the main repository:
- Fix incorrect documentation URL in default config (#1875 by @MiniDigger)
- Allow keywords as changelog script version argument, e.g.
node scripts/changelog pre
(#1913 by @astorije) - Separate and improve wording for
pre
andrc
pre-release versions (#1914 by @astorije) - Add SECURITY guidelines about security vulnerability disclosures, and link them from the CONTRIBUTING guidelines (#1984 by @astorije)
Internals
- Enforce dangling commas with ESLint (#1711 by @astorije)
- Refactor how user object is sent to the client (#1698, #1716, #1720, #1764, #1941 by @xPaw, #1773 by @astorije)
- Convert users list to map (#1712 by @xPaw)
- Split
index.html
into components (#1683 by @xPaw) - Parallelize
npm test
(#1750 by @astorije) - Avoid using
npm-run-all
for build (#1752 by @xPaw) - Avoid escaping quotes whenever possible (#1749, #1759 by @astorije)
- Mark slow tests as such to reduce noise on test report (#1761 by @astorije)
- Increase timeout of server tests (#1769 by @astorije)
- Add a bunch of client tests (#1770 by @astorije)
- Heavily improve performance of "init" event (#1778 by @xPaw)
- Enable
no-use-before-define
rule (#1804 by @xPaw) - Update textcomplete library and rewrite tabcomplete (#1800 by @xPaw)
- Clean up path helpers, expand defaults location in
thelounge --help
, add tests forexpandHome
(#1811 by @astorije) - Remove dead code in tests, and fix a link test (#1818 by @astorije)
- Use cross-platform modifier shortcut for Mousetrap when possible (#1844 by @astorije)
- Update to primer on npm (#1855 by @MaxLeiter)
- Add a
notEqual
block helper for Handlebars and tests forequal
(#1874 by @astorije) - Use
notEqual
helper for close button (#1876 by @xPaw) - Improve a bit window loading on init (#1899 by @astorije)
- Fix stylelint (#1921 by @astorije)
- Set
sign-git-tag
to true in.npmrc
(#1964 by @xPaw) - Update development dependencies to their latest versions, by Greenkeeper 🚀:
v2.7.0-rc.3 - 2018-01-27 [Pre-release]
This is a release candidate (RC) for v2.7.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.7.0-rc.2 - 2018-01-19 [Pre-release]
This is a release candidate (RC) for v2.7.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.7.0-rc.1 - 2018-01-13 [Pre-release]
This is a release candidate (RC) for v2.7.0 to ensure maximum stability for public release. Bugs may be fixed, but no further features will be added until the next stable version.
Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.7.0-pre.4 - 2017-12-27 [Pre-release]
This is a pre-release for v2.7.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.7.0-pre.3 - 2017-12-15 [Pre-release]
This is a pre-release for v2.7.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.7.0-pre.2 - 2017-12-01 [Pre-release]
This is a pre-release for v2.7.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.7.0-pre.1 - 2017-11-30 [Pre-release]
This is a pre-release for v2.7.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.6.0 - 2017-11-18
For more details, see the full changelog and milestone.
This release is very small, as we focused it on bug fixes. You may notice slight improvements to the auto-completion menu (new commands, more accurate emoji list, documentation in the help window), as well as small UI improvements.
Additionally, this release is the first one with official support of Node.js v9.
Added
Changed
- Mark channels as read when receiving self-messages (#1615 by @dgw)
- Remove content borders on mobile to maximize use of space (#1599 by @RJacksonm1)
- Reduced padding around page titles (#1637 by @Swapnull)
- Generate emoji map from EmojiOne data (#1651, #1670 by @xPaw)
- Update production dependencies to their latest versions, by Greenkeeper 🚀:
Removed
Fixed
- Fix possible race condition when attaching clients (#1639 by @xPaw)
- Synchronize unread marker when client reconnects (#1600 by @xPaw)
- Synchronize unread marker when other client opens a channel (#1598 by @xPaw)
- Fix loading app with autocomplete disabled (#1650 by @dgw)
- Fix URL query parameters in public mode (#1661 by @MaxLeiter)
- Fix hyphenated names overflowing (#1667) (#1671 by @LFlare)
- Fix missing attributes on unhandled messages (#1695 by @xPaw)
- Correctly display kicks when kicker is server (#1693 by @xPaw)
- Go back to writing user files synchronously (#1701 by @xPaw)
- Fix local theme folder (#1706 by @xPaw)
Documentation
In the main repository:
- Fix "help wanted" link in CONTRIBUTING file (#1673 by @timmw)
- Document autocompletion in the help page (#1609 by @dgw)
- Add a script to pre-generate changelog entries (#1707 by @astorije)
Internals
- Remove channel containers from DOM after quitting network (#1607 by @PolarizedIons)
- Create public folder with Webpack (#1611, #1682, #1704 by @xPaw, #1705 by @astorije)
- Cleanup client manager functions (#1636 by @xPaw)
- Add Node.js v9 testing to Travis builds (#1678 by @astorije)
- Allow
run-pr
script to pass arguments tonpm start
(#1662 by @MaxLeiter) - Update development dependencies to their latest versions, by Greenkeeper 🚀:
v2.6.0-rc.4 - 2017-11-12 [Pre-release]
This is a release candidate for v2.6.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.6.0-rc.3 - 2017-11-12 [Pre-release]
This is a release candidate for v2.6.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.6.0-rc.2 - 2017-11-12 [Pre-release]
This is a release candidate for v2.6.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.6.0-rc.1 - 2017-11-11 [Pre-release - DEPRECATED]
This is a release candidate for v2.6.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.5.0 - 2017-10-17
For more details, see the full changelog and milestone.
If you thought the v2.3.0 release was big, well, v2.5.0 is even bigger! 🎉
If you are a client user, you will notice that The Lounge is now using your operating system's font, and that status messages (joins, parts, nick changes, etc.) are now condensed with each other.
Condensed status messages
After a while, you'll realize that the client now automatically reconnects when losing network connection (farewell, Client connection lost — Click here to reconnect
!), and that the channel backlog now automatically loads when you scroll up. Unfortunately, that last bit forced us to phase out the /clear
command for technical reasons.
If you go to the Settings page, you'll notice that The Lounge now supports push notifications (yes, even on mobile, except iOS), and that you can remotely log out open sessions.
Current and remote sessions
As a server administrator, you might be interested in a few new additions:
- Themes can now be retrieved from npm and installed using a new CLI command
lounge install <theme-name>
- Integration with LDAP has been completely refactored
- The Lounge can now be bound to Unix sockets
⚠️ Note that --home
is now deprecated in favor of the $LOUNGE_HOME
environment variable (or the .lounge_home
file in the installation directory). Also, if you are running The Lounge behind a proxy (like nginx or Apache), you will need to make sure that reverseProxy
is set to true
and the X-Forwarded-For
header correctly set for session listing to work correctly on the client.
Enjoy! 💬
Added
- Status message condensing (#759, #1421 by @YaManicKill, #1437, #1451, #1475, #1485 by @xPaw, #1417, #1442, #1509, #1524 by @astorije)
- Use
.lounge_home
to help distribution packages handle config paths right (#1416, #1587 by @xPaw, #1418 by @astorije) - Implement push notifications (#1124, #1445, #1572, #1468 by @xPaw, #1463 by @astorije)
- Set default
/quit
message (#1448 by @xPaw) - Gracefully quit on Ctrl+C (#1477 by @xPaw)
- Add
/rejoin
command (a.k.a./cycle
) (#1449 by @dgw) - Add support for binding to Unix sockets (#1479 by @xPaw)
- Automatically load history when scrolling upwards (#1318 by @xPaw)
- Use
away-notify
to show updates on users away state (#845 by @MaxLeiter) - Allow themes from npm (#1266 by @YaManicKill, #1542 by @xPaw)
- Add anchor tag to URL to signify open page for reloading (#1283 by @MaxLeiter)
- Automatic client reconnection (#1471, #1549 by @xPaw)
- Create
lounge install
command (#1539, #1579 by @xPaw, #1583 by @astorije)
Changed
- Change history button text while loading (#1403 by @xPaw)
- Resolve relative URIs in link previewer (#1410 by @xPaw)
- Remove 10-second interval to trim buffer (#1409 by @xPaw)
- Refactor authentication flow (#1411 by @xPaw)
- Only match emoji autocomplete after two characters (#1356 by @MaxLeiter)
- Improve CLI user management (#1443 by @astorije)
- Bigger font size (#1153 by @bews, #1553, #1561, #1610 by @astorije)
- Extend fuzzy search in autocomplete to all strategies (#1387 by @yashsriv)
- Only create config folder in
start
command (#1350 by @xPaw) - Parse emoji to make them bigger (#1446 by @xPaw, #1481 by @MaxLeiter)
- Process chat messages in
requestIdleCallback
if available (#1457 by @xPaw) - Completely refactor how date markers are inserted (#1452 by @xPaw)
- Bump default image prefetch limit (#1490 by @astorije)
- Take an optional argument in
/part
(#1476 by @eliemichel) - Checkered background for transparent images in image viewer (#1511 by @xPaw)
- Use native font stack (#1540 by @xPaw, #1597 by @astorije)
- Add
touch-action
to messages, sidebar, and user list (#1520 by @iamstratos) - Handle browser history when opening/closing image preview (#1503 by @astorije)
- Abort image prefetch if
Content-Length
exceeds limit (#1567 by @dgw) - Use monospace font in custom CSS textarea (#1552 by @astorije)
- Update production dependencies to their latest versions, by Greenkeeper 🚀:
Removed
- Remove
os.homedir()
polyfill (#1419 by @xPaw) - Get rid of
/clear
command and keybind (#1526 by @astorije)
Fixed
- Correctly append OS name (#1399 by @xPaw)
- Correctly dereference stored images when leaving channels (#1406 by @xPaw)
- Do not throw an exception when URI parsing fails (#1412 by @xPaw)
- Take into account word boundaries for custom highlighting (#1358 by @starquake)
- Do not unintentionally send incorrect messages from history (#1444 by @xPaw)
- Escape channel names in slugify helper correctly (#1472 by @xPaw)
- Format messages on copy (#1464 by @xPaw)
- Add
/list
to autocomplete (#1496 by @MaxLeiter) - Only change nick autocompletion when receiving a message (#1495 by @xPaw)
- Render link previews in browser idle event (#1508 by @xPaw)
- Fix image viewer turning black sometimes (#1512 by @xPaw)
- Fix requesting last messages when no message
id
is known (#1519, #1544 by @xPaw) - Display correct kick modes (#1527 by @dgw)
- Move unread marker when loading more history (#1517 by @xPaw)
- Fix wrongly positioned menu when opening it and switching to landscape (#1565 by @astorije)
- Fix flickering on link hovering, and inconsistencies between chat links and UI links (#1573 by @astorije)
- Fix nick change on Safari for Mac and iOS (#1568 by @Gilles123)
- Make sure channel list close button is really absent when channel is not selected (#1623 by @astorije)
Security
- Implement a proper LDAP authentication process (#1478 by @eliemichel)
- Implement multiple sessions for users (#1199 by @xPaw)
- Deleting a user should log them out (#1474 by @xPaw)
- Remove the "Stay signed in" checkbox at login (#1465 by @astorije)
- Implement session list and allow signing out other clients (#1536 by @xPaw)
Documentation
In the main repository:
- Add Stack Overflow link in CONTRIBUTING file (#1373 by @astorije)
- Add feature overview in README (#1427 by @xPaw)
- Add documentation for
LOUNGE_HOME
environment variable in the CLI helper (#1438 by @astorije) - Fix general spelling errors (#1458 by @PolarizedIons)
- Remove duplicate keybindings help (#1543 by @xPaw)
On the website repository:
- Remove wrong and inexistent home option from configuration documentation (#72 by @astorije)
- Deprecate
--home
in favor ofLOUNGE_HOME
environment variable (#73 by @astorije) - Add themes docs (#69 by @YaManicKill)
- Add missing
prefetchStorage
configuration option to docs (#74 by @MiniDigger)
Internals
- Get closer to stylelint's standard config (#1439 by @astorije)
- Move all auto completion code to a separate file (#1453 by @xPaw)
- Enforce semicolon spacing (#1488 by @xPaw)
- One line server startup errors (#1492 by @xPaw)
- Move even more code out of
lounge.js
(#1500 by @xPaw) - Remove unnecessary
end()
calls (#1518 by @xPaw) - Move user log function where it belongs (#1528, #1585 by @xPaw, #1535 by @astorije)
- Enable
no-console
andno-alert
ESLint rules (#1538 by @astorije) - Use
Mousetrap
for image viewer shortcuts (#1566 by @astorije) - Remove
event-stream
dependency in favor of plainBuffers
(#1554 by @astorije) - Skip cleanup on Travis (
da31317
by @xPaw) - Remove
--progress
from webpack (#1608 by @xPaw) - Add tests for invalid URLs (#1620 by @xPaw)
- Update development dependencies to their latest versions, by Greenkeeper 🚀:
nyc
(#1382, #1498, #1505)mocha
(#1388, #1513, #1514, #1515)chai
(#1394, #1482)eslint
(#1395, #1435, #1493, #1532, #1541, #1555, #1591)webpack
(#1397, #1407, #1424, #1507, #1531)babel-core
(#1425)babel-loader
(#1434)npm-run-all
(#1462, #1466)jquery-textcomplete
(#1473)handlebars-loader
(#1487)stylelint
(#1499)
v2.5.0-rc.5 - 2017-10-11 [Pre-release]
This is a release candidate for v2.5.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.5.0-rc.4 - 2017-10-06 [Pre-release]
This is a release candidate for v2.5.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.5.0-rc.3 - 2017-10-04 [Pre-release]
This is a release candidate for v2.5.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.5.0-rc.2 - 2017-10-01 [Pre-release]
This is a release candidate for v2.5.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.5.0-rc.1 - 2017-09-26 [Pre-release]
This is a release candidate for v2.5.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.4.0 - 2017-07-30
For more details, see the full changelog and milestone.
This release improves link and image previews a great deal! On the menu:
- Up to 5 previews are now displayed instead of 1
- All previews on the current channel can now be hidden or displayed using the
/collapse
and/expand
commands - Thumbnails can be opened in a fullscreen viewer without leaving the app by clicking on them, and cycled using the previous/next buttons or by hitting ← and →
- Say bye to mixed content warnings: The Lounge can now proxy all images (opt-in option in the server settings) for better privacy
- Title and description are improved overall
Also in this release, auto-complete feature now has an opt-out option in the client settings, and emoji can be searched using fuzzy-matching:
Added
- Add
title
attributes to previews (#1291 by @astorije) - Allow opting out of autocomplete (#1294 by @awalgarg)
- Add collapse/expand commands to toggle all previews (#1309 by @astorije)
- An image viewer popup for thumbnails and image previews, with buttons to previous/next images (#1325, #1365, #1368, #1367 by @astorije, #1370 by @xPaw)
- Store preview images on disk for privacy, security and caching (#1307 by @xPaw)
- Emoji fuzzy-matching (#1334 by @MaxLeiter)
Changed
- Check status code in link prefetcher (#1260 by @xPaw)
- Check
og:description
beforedescription
tag in previews (#1255 by @xPaw) - Check
og:title
beforetitle
tag in previews (#1256 by @xPaw) - Do not display preview if there is nothing to preview (#1273 by @xPaw)
- Increase max downloaded bytes for link preview (#1274 by @xPaw)
- Refactor link previews (#1276 by @xPaw, #1378 by @astorije)
- Support multiple previews per message (#1303, #1324, #1335, #1348, #1347, #1353 by @astorije)
- Add
mask-icon
for pinned safari tab (#1329 by @MaxLeiter) - Lazily load user list in channels on init, keep autocompletion sort on server (#1194 by @xPaw)
- Keep track of preview visibility on the server so it persists at page reload (#1366 by @astorije)
- Bump express and socket.io to their latest patch versions (#1312 by @astorije)
- Update production dependencies to their latest versions, by Greenkeeper 🚀:
Removed
Fixed
- Make sure thumbnail is a valid image in previews (#1254 by @xPaw)
- Parse
X-Forwarded-For
header correctly (#1202 by @xPaw) - Do not truncate link previews if viewport can fit more text (#1293 by @xPaw)
- Fix too big line height previews text on Crypto (#1296 by @astorije)
- Fix background color contrast on Zenburn previews (#1297 by @astorije)
- Fix jumps when toggling link preview (#1298 by @xPaw)
- Fix losing network settings (#1305 by @xPaw)
- Fix missing transitions (#1314, #1336, #1374 by @astorije, #1117 by @bews)
- Fix incorrect mode on kick target (#1352 by @xPaw)
- Correctly show whitespace and newlines in messages (#1242 by @starquake, #1359 by @xPaw)
- Hide overflow on entire message row (#1361 by @starquake)
- Fix link previews not truncating correctly (#1363 by @xPaw)
Documentation
In the main repository:
- Remove mention in CHANGELOG that The Lounge uses Semantic Versioning (#1269 by @astorije)
- Remove
devDependencies
badge on README (#1267 by @astorije) - Reword link preview settings to better match reality (#1310 by @astorije)
- Update screenshot in README (#1326 by @MaxLeiter)
- Update README badge to new demo URL (#1345 by @MaxLeiter)
- Update README for when to run
npm run build
(#1319 by @MaxLeiter)
On the website:
- Update demo URL to new demo (#70 by @MaxLeiter)
Internals
- Move nickname rendering to a single template (#1252 by @xPaw)
- Ignore all dotfiles in
.npmignore
(#1287 by @xPaw) - Add
.npmrc
file withsave-exact
set totrue
so packages are saved already pinned (#1284 by @MaxLeiter) - Do not hardcode vendor bundles in webpack configuration (#1280 by @xPaw)
- Prepare for
SOURCE
CTCP command, whenirc-framework
supports it (#1284 by @MaxLeiter) - Change "Show older messages" to use
id
rather than count (#1354 by @YaManicKill) - Update development dependencies to their latest versions, by Greenkeeper 🚀:
v2.4.0-rc.2 - 2017-07-27 [Pre-release]
This is a release candidate for v2.4.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.4.0-rc.1 - 2017-07-27 [Pre-release]
This is a release candidate for v2.4.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.3.2 - 2017-06-25
For more details, see the full changelog and milestone.
This patch releases brings a lot of fixes and small improvements here and there, as well as the ability to display seconds in timestamps, a long-awaited feature!
Added
- Add a client option to display seconds in timestamps (#1141 by @bews)
- Add "Reload page" button when the client fails to load (#1150 by @bews)
Changed
- Treat
click
as a read activity (#1214 by @xPaw) - Fade out for long nicks (#1158 by @bews, #1253 by @xPaw)
- Include trickery to reduce paints and improve performance (#1120 by @xPaw, #1083 by @bews)
- Make everything un-selectable by default (#1233 by @xPaw)
- Handle images with unknown size in prefetch (#1246 by @bews)
- Update production dependencies to their latest versions, by Greenkeeper 🚀:
spdy
(#1184)
Fixed
- Stop showing the unread messages marker when
joins
/parts
/quits
/etc. are hidden (#1016 by @swordbeta) - Correctly finish scroll animation when using page keys (#1244 by @xPaw)
- Hide link time element on small devices (#1261 by @xPaw)
- Fix MOTD underline in Safari (#1217 by @MaxLeiter)
Documentation
In the main repository:
Internals
- Update to ESLint 4 and enforce extra rules (#1231 by @xPaw)
- Improve the PR tester script a bit (#1240 by @astorije)
- Add modules for socket events (#1175 by @YaManicKill)
- Ignore
package-lock.json
(#1247 by @xPaw) - Use
stylelint-config-standard
(#1249 by @xPaw) - Update development dependencies to their latest versions, by Greenkeeper 🚀:
v2.3.1 - 2017-06-09
For more details, see the full changelog and milestone.
This release mostly fixes a few bugs, as listed below.
Changed
- Keep original
<title>
name when changing the title (#1205 by @xPaw) - Update production dependencies to their latest versions, by Greenkeeper 🚀:
handlebars
(#1179)
Fixed
- Do not store unnecessary information in user objects (#1195 by @xPaw)
- Correctly configure client socket transports (#1197 by @xPaw)
- Fix network name not being set when
displayNetwork
isfalse
(#1211 by @xPaw)
Security
Internals
- Fix
localtime
test to correctly use UTC (#1201 by @xPaw) - Update Node.js versions for Travis CI (#1191 by @YaManicKill)
- Update development dependencies to their latest versions, by Greenkeeper 🚀:
v2.3.0 - 2017-06-08
For more details, see the full changelog and milestone.
What a release! Our biggest one since the v2.0.0 release / milestone! Expect a lot of new cool stuff, tons of bug fixes and performance improvements. Thanks to all 16 contributors (!!) who pitched in for this release, open source at its finest!
On the server side, The Lounge now supports an auto-away mechanism, stores channel keys across restarts and key changes, and supports a new SSL CA bundle option in the configuration file.
Users of the client will notice some changes as well:
-
A bunch of new hotkeys to style messages (bold, italic, underline, foreground/background color), all listed in the Help window
-
A new autocomplete mechanism for emoji, users, channels, commands, and colors:
Note that due to the new nick autocomplete, we removed the now unnecessary nick cycle button that was temporarily added in the meantime. Lots of users have reported it had been broken by a previous release anyway.
-
Support of page up/down keys to browse the current chat
-
Friendliness-bump of time-related tooltips and date marker:
-
Support of browsers' Back/Forward actions:
-
Better and more discreet inline previews for links and images:
-
Improved channel list with
/list
-
Support for
/ban
,/unban
and/banlist
-
Fuzzy-matching of the user list search to find folks more easily:
That's all for this release, and onto the next one now!
Added
- Add
data-from
attribute to allow styling messages from specific users (#978 by @williamboman) - Auto away when no clients are connected (#775, #1104 by @xPaw)
- Implement color hotkeys (#810 by @xPaw)
- Store channel keys (#1003 by @xPaw, #715 by @spookhurb)
- Implement pgup/pgdown keys (#955 by @xPaw, #1078 by @YaManicKill)
- Add CSS tooltips on time elements to give ability to view time on mobile (#824 by @xPaw)
- Add SSL CA bundle option (#1024 by @metsjeesus)
- Implement History Web API (#575 by @williamboman, #1080 by @YaManicKill)
- Add slug with command to unhandled messages (#816 by @DanielOaks, #1044 by @YaManicKill)
- Add support for the
/banlist
command (#1009 by @YaManicKill) - Add support for
/ban
and/unban
commands (#1077 by @YaManicKill) - Add autocompletion for emoji, users, channels, and commands (#787 by @yashsriv, #1138, #1095 by @xPaw)
- Add autocomplete strategy for foreground and background colors (#1109 by @astorije)
- Add support for
0x04
hex colors (#1100 by @xPaw)
Changed
- Remove table layout for chat messages (and fix layout issues yet again) (#523 by @maxpoulin64)
- Improve inline previews for links and images (#524 by @maxpoulin64)
- Use local variables to check length (#1028 by @xPaw)
- Add
rel="noopener"
to URLs inindex.html
and replace mIRC colors URL to @DanielOaks's documentation (#1034 by @xPaw, #1051 by @astorije) - Preload scripts as soon as possible (#1033 by @xPaw)
- Improve channels list (#1018 by @swordbeta)
- Show MOTD by default (#1052 by @KlipperKyle, #1157 by @astorije)
- Switch to a new IRC message parser (#972 by @xPaw, #699 by @Bonuspunkt)
- Use moment on the client to display friendly dates (#1054 by @astorije)
- Implement fuzzy-matching for the user list (#856, #1093, #1167 by @astorije, #1091 by @PolarizedIons, #1107 by @xPaw)
- Use moment to render dates everywhere (#1114 by @xPaw)
- Update production dependencies to their latest versions, by Greenkeeper 🚀:
Removed
- Remove invalid CSS perspective properties (#1027 by @astorije)
- Remove cycle nicks button (#1062 by @xPaw)
Fixed
- Rewrite identd server, combine with oidentd (#804, #970 by @xPaw)
- Fix wrong font size in help center labels (#994 by @astorije)
- Fix filling in the nickname, overriding the username in the New Network window (#873 by @PolarizedIons)
- Correctly append date marker when receiving a message (#1002 by @xPaw)
- Count only message items for when loading more messages (#1013 by @awalgarg)
- Fix Zenburn and Morning channel list font color (#1017 by @swordbeta)
- Stick to bottom when opening user list (#1032 by @xPaw)
- Reset notification markers on document focus (#1040 by @xPaw)
- Disable show more button when loading messages (#1045 by @YaManicKill)
- Fix to
helper.expandhome
to correctly resolve""
andundefined
(#1050 by @metsjeesus) - Fix displayNetwork to work correctly (#1069 by @xPaw)
- Enable show more button correctly (#1068 by @xPaw)
- Rewrite server code of channel sorting (#1064 by @xPaw and (#1115 by @PolarizedIons))
- Fix showing prefetch options (#1087 by @YaManicKill)
- Add
/ctcp
command to constants and auto-completion (#1108 by @MaxLeiter) - Disable
tabindex
on user list search input (#1122 by @xPaw) - Fix date-marker not being removed on loading new messages (#1132, #1156 by @PolarizedIons)
Security
- Switch to
bcryptjs
and make password comparison asynchronous (#985 by @rockhouse,b46f92c
by @xPaw) - Use Referrer-Policy header instead of CSP referrer (#1015 by @astorije)
Internals
- Enforce more space and new line rules (#975 by @xPaw)
- Setup ESLint to make sure an EOF feed is always present (#991 by @astorije)
- Do not build json3 module with Webpack (#977 by @xPaw)
- Remove extra newline to please ESLint (#997 by @astorije)
- Use
require()
instead of import in client code (#973 by @xPaw) - Do not build feature branch with open pull requests on AppVeyor (
934400f
by @xPaw) - Exclude Webpack config from coverage report (#1053 by @astorije)
- Create socket module (#1060 by @YaManicKill)
- Change index.html to be rendered using handlebars (#1057 by @YaManicKill)
- Move commands into constants module (#1067 by @YaManicKill)
- Use
babel-preset-env
(#1072 by @xPaw) - Use
irc-framework
'ssetTopic()
for topic command (#1082 by @MaxLeiter) - Create options module (#1066 by @YaManicKill)
- Update development dependencies to their latest versions, by Greenkeeper 🚀:
v2.3.0-rc.2 - 2017-05-16 [Pre-release]
This is a release candidate for v2.3.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.3.0-rc.1 - 2017-05-07 [Pre-release]
This is a release candidate for v2.3.0 to ensure maximum stability for public release. Please refer to the commit list given above for a complete list of changes, or wait for the stable release to get a thoroughly prepared change log entry.
As with all pre-releases, this version requires explicit use of the next
tag to be installed:
npm install -g thelounge@next
v2.2.2 - 2017-03-13
For more details, see the full changelog and milestone.
This patch release brings a lot of dependency upgrades and a few fixes. Passing options to the lounge
CLI (lounge start --port 8080
, etc.) now works as expected without requiring --
. We have also disabled ping timeouts for now to hopefully fix automatic reconnection. Finally, upgrading irc-framework
allows us to fix an extra couple of bugs.
You will now notice a new (?)
icon at the bottom of the sidebar. It is home of a help center that currently details supported shortcuts and commands. It will be improved over time, but we encourage contributors to help us improve it.
Note that as of this release, lounge
without any arguments wil display the help information (mirroring lounge --help
). Prior to this release, it used to start a server, which must now be done explicitly using lounge start
.
Changed
- Update to
jQuery
3 (#931 by @xPaw) - Update
express
andnyc
to latest versions (#954 by @xPaw) - Update production dependencies to their latest versions, by Greenkeeper 🚀:
Fixed
- Disable (temporarily) client ping timeouts (#939 by @xPaw)
- Update arg parsing and default
lounge
tolounge --help
(#929 by @msaun008) - Prevent message sending in lobbies (#957 by @xPaw)
Documentation
In the main repository:
On the website:
- Add notes about moving client docs to the app itself (#63 by @astorije)
- Deprecate (and attempt one last fixing) documentations of Heroku and Passenger (#61 by @astorije)
Internals
- Fix
run_pr.sh
script (#919 by @astorije) - Make sure multiline chains of calls are correctly indented (#930 by @astorije)
- Update development dependencies to their latest versions, by Greenkeeper 🚀:
v2.2.1 - 2017-02-12
For more details, see the full changelog and milestone.
This patch release packs up a change of the default value of maxHistory
, an interactive prompt when creating a user to enable/disable user logging, a UI bug fix, and a few dependency upgrades.
Changed
- Change default
maxHistory
to 10000 (#899 by @xPaw) - Prompt admin for user log at user creation (#903 by @astorije)
- Update
irc-framework
to the latest version 🚀 (#902 by Greenkeeper) - Update
urijs
to the latest version 🚀 (#904 by Greenkeeper) - Update
express
to the latest version 🚀 (#898 by Greenkeeper)
Fixed
- Fix body height, regression from v2.2.0 (#913 by @YaManicKill)
Documentation
In the main repository:
On the website:
Internals
- Sort depedencies in
package.json
(#896 by @xPaw) - Update
nyc
to the latest version 🚀 (#882 by Greenkeeper) - Update
npm-run-all
to the latest version 🚀 (#880 by Greenkeeper) - Add nyc and Webpack config files to the files ignored when releasing (#906 by @astorije)
- Update
stylelint
to the latest version 🚀 (#907 by Greenkeeper) - Update
eslint
to the latest version 🚀 (#910 by Greenkeeper)
v2.2.0 - 2017-01-31
For more details, see the full changelog and milestone.
Another long-overdue release for The Lounge!
On the client, it is now possible to generate URLs that pre-fill connection inputs in public mode, a date separator makes it into the chats, /away
and /back
commands are now supported, idle time gets displayed on /whois
.
Also, the client does not abruptly refresh when connection is lost anymore, and user search has been slightly improved. Note however that these last 2 items are still not optimal, but improvements are underway!
On the server, more logging! The debug
option is now an object instead of a boolean, so make sure to update your configuration file accordingly. More details here.
There are changes revolving around user configuration autoloading: it has been greatly improved and therefore it is now enabled by default. Make sure to remove the autoload
option from your configuration files.
And of course, tons of fixes and less noticeable feature additions and changes, so make sure to check the full list below!
Added
- Override network connection inputs with URL parameters (#674 by @MaxLeiter)
- Add
id
to submit button (#717 by @xPaw) - Add a UI element to cycle through nick completions on mobile (#708 by @astorije)
- Report configuration file path, Node.js version and OS platform on server start-up (#736 by @williamboman and #743 by @xPaw)
- Add
lounge
keyword to npm registry (#747 by @xPaw) - Add a date separator to channels/PMs (#671 and #765 by @PolarizedIons)
- Add support for hexip ilines and fix storing client IP address in configuration file (#749 and #822 by @xPaw)
- Implement
/away
and/back
commands (#745 by @xPaw) - Remind channel name or nick in input placeholder (#832 and #889 by @astorije)
- Add human-readable idle time in whois info (#721 by @astorije)
- Option to log raw IRC traffic (#783 by @astorije)
Changed
- Improve support for opening multiple clients at once (#636 by @xPaw)
- Match window title border line to text color (#716 by @xPaw)
- Focus input after chat form submit (#483 by @williamboman)
- Refactor user autoload to use
fs.watch
and make it more transparent in the app (#751 by @xPaw and #779 by @astorije) - Sync reordering of channels/networks to other clients in real-time (#757 by @PolarizedIons)
- Do not accept empty password when adding new user (#795 by @MaxLeiter)
- Stop refreshing the page on every socket.io error (#784 by @xPaw)
- Only append "says" to notifications if it is a message (#805 by @xPaw)
- Allow user search to find a pattern anywhere in the nicks (#855 by @MaxLeiter)
Removed
- Remove browser notification polyfill and inform user when unsupported (#709 by @astorije)
- Remove erroneous classname from password field (#748 by @xPaw)
- Do not dismiss native web notifications programmatically after 5s (#739 by @williamboman)
Fixed
- Fix
/mode
command to correctly assume target (#679 by @xPaw) - Fix crash when LDAP server is unreachable (#697 by @gramakri)
- Fix channels behaving strangely while dragging (#697 by @PolarizedIons)
- Fix unread counters resetting when they should not (#720 by @PolarizedIons)
- Silence failures to trigger notifications when not available (#732 by @astorije)
- Avoid unnecessary disk writes when saving user (#750 by @xPaw)
- Use correct channel when pushing link prefetch messages (#782 by @xPaw)
- Correctly remove closed sockets from oident file, remove unused functions (#753 by @xPaw)
- Do not automatically focus on touch devices (#801 by @xPaw)
- Strip control characters from notifications (#818 by @xPaw)
- Improve CLI a bit (output formatting and subcommand/option bug fix) (#799 and #868 by @astorije)
- Make HTML container take the entire screen estate (#821 by @xPaw)
- Fix unread marker being removed from DOM (#820 by @xPaw)
- Remove margin on date marker on smallest screen size (#830 by @xPaw)
- Do not ignore window opens when considering active channels (#834 by @xPaw)
- Calculate menu width on touch start (#836 by @xPaw)
- Increase IRC colors contrast (#829 by @xPaw)
- Do not prefetch URLs unless they are messages or
/me
actions (#812 by @birkof) - Bump
irc-framework
to bring a couple of fixes (#790 by @astorije, #802 by @xPaw and #852 by Greenkeeper)
Security
Documentation
In the main repository:
- Warn against running from source as root in README (#725 by @astorije)
- Add screenshot to README (#694 by @MaxLeiter)
- Simplify introduction on README (#789 by @astorije)
On the website:
- Remove distribution-specific install instructions of Node.js (#49 by @astorije)
- Remove wrong information about setting up password along with creating a user (#50 by @astorije)
- Update documentation of the configuration file (#43 by @daftaupe)
- Document the
/away
and/back
commands (#59 by @drkitty)
Internals
- Fix AppVeyor cache never being successfully built and unblock AppVeyor (#700 by @astorije and #755 by @IlyaFinkelshteyn)
- Add a simple (first) test for
localetime
Handlebars helper (#703 by @astorije) - Get rid of OSX CI builds until they get much faster (#707 by @astorije)
- Update badges in README (#713 by @xPaw and #780 by @astorije)
- Add Node.js v7, current stable, to Travis CI (#800 by @astorije)
- Use Webpack to build our client code and dependencies (#640 by @nornagon and #817 by @xPaw)
- Switch
istanbul
code coverage CLI to more recentnyc
one (#850 by @astorije) - Add web server tests (#838 by @xPaw)
- Fix stuff that breaks in jQuery 3 (#854 by @xPaw)
- Do not uglify builds when running start-dev (#858 by @xPaw)
- Update dependencies to latest stable versions (#746 by @xPaw)
- Update dependencies to enable Greenkeeper 🌴 (#826 by Greenkeeper)
- Update
lodash
to the latest version 🚀 (#840 and #862 by Greenkeeper) - Update
stylelint
to the latest version 🚀 (#861 by Greenkeeper) - Update
npm-run-all
to the latest version 🚀 (#860 by Greenkeeper) - Update
eslint
to the latest version 🚀 (#875 by Greenkeeper) - Update
babel-core
to the latest version 🚀 (#883 by Greenkeeper)
v2.1.0 - 2016-10-17
Here comes another release with some nice additions!
While the administrators will notice some bug fixes, most of the changes are client-side: support for /list
, a slideout menu on mobile, editing one's nick from the UI, wallops message handling.
Enjoy!
Added
- Implement
/list
(#258 by @maxpoulin64) - Add touch slideout menu for mobile (#400 by @maxpoulin64)
- Display extra steps when loading the app (#637 by @xPaw)
- Display localized timestamp in title of message times (#660 by @astorije)
- Changing nick in the UI (#551 by @astorije)
- Add hostmasks in logs when possible (#670 by @astorije)
- Display wallops in server window (#658 by @xPaw)
Changed
- Make use of multi-prefix cap and remove NAMES spam on mode changes (#632 by @xPaw)
- Strict mode for all JS files (#684 by @astorije)
- Enforce more ESLint rules (#681 by @xPaw)
- Use CI caches for downloaded files instead of installed ones (#687 by @astorije)
- Consolidate version numbers throughout all interfaces (#592 by @williamboman)
- Replace lodash's each/map with ES5 native forEach/map (#689 by @astorije)
Removed
Fixed
- Themes: Fixed CSS rule selectors for highlight messages (#652 by @DamonGant)
- Fix unhandled message color in default and Crypto themes (#653 by @MaxLeiter)
- Check if SSL key and certificate files exist (#673 by @toXel)
- Fix loading fonts in Microsoft Edge (#683 by @xPaw)
- Fill in prefixLookup on network initialization (#647 by @nornagon)
- Fix nick changes not being properly reported in the logs (#685 by @astorije)
- Fix memory and reference shuffling when creating models (#664 by @xPaw)
v2.0.1 - 2016-09-28
This is a minor house-keeping release with mostly two sets of changes.
First, a few bugs were fixed, including one simply preventing The Lounge to run in Safari's private browsing.
Additionally, the developer experience has been made a tiny bit better, with better documentation, lighter dependencies and simpler theme creation.
Changed
- Add info on README about how to run from source, how to upgrade (#621 by @astorije)
- Move uglify invocation into npm scripts and remove grunt (#628 by @nornagon)
- Move Shout theme borders to example theme (#359 by @xPaw)
- Update developer dependencies (#639 by @xPaw)
Fixed
- Remove -ms-transform and add missed -webkit-transform (#629 by @xPaw)
- Ensure localStorage cannot fail because of quota or Safari private browsing (#625 by @astorije)
- Disable pull-to-refresh on mobile that conflicts with scrolling the message list (#618 by @astorije)
- Handle stderr when using edit or config command (#622 by @MaxLeiter)
v2.0.0 - 2016-09-24
After more than 5 months in the works, v2.0.0 is finally happening, and it's shipping with lots of new and enhanced features! 🎉
First of all, the backend IRC library is completely different, which was the first step to deciding on a major release. This change brings many improvements and fixes, including support for auto-reconnection! This also allows us to easily improve our IRCv3 compliance.
Main changes on the server include support for WEBIRC, oidentd and LDAP. On the client, users will notice a lot of improvements about reporting unseen activity (notifications, markers, etc.), support for custom highlights, a new loading page, an auto-expanding message input, a theme selector, and more.
Administrators should note that the channel list format in user configuration files has changed. The old format is deprecated, but it will be automatically converted when the server starts (support may or may not be removed later). Additionally, The Lounge now only runs on Node v4 and up.
The above is only a small subset of changes. A more detailed list can be found below. The following list features the most noticeable changes only, and more details can be found on all v2.0.0 pre-releases.
Added
- Add tooltips on every clickable icons (#540 by @astorije)
- Add debug config option for
irc-framework
debug log (#547 by @maxpoulin64) - Client-side theme selector (#568 by @astorije)
- LDAP support (#477 by @thisisdarshan and @lindskogen)
- Add custom highlights (#425 by @YaManicKill)
- Add auto-grow textarea support (#379 by @maxpoulin64)
- Display unhandled numerics on the client (#286 by @xPaw)
- A proper unread marker (#332 by @xPaw)
- Add information on the About section of the client (#497 by @astorije)
- Add a red dot to the mobile menu icon when being notified (#486 by @astorije)
- Add "The Lounge" label to the landing pages (#487 by @astorije)
- Display network name on Connect page when network is locked and info is hidden (#488 by @astorije)
- Display a loading message instead of blank page (#386 by @xPaw)
- Fall back to LOUNGE_HOME env variable when using the CLI (#402 by @williamboman)
- Enable auto reconnection (#254 by @xPaw)
- Add "!" modechar for admin (#354 by @omnicons)
- Add support for oidentd spoofing (#256 by @maxpoulin64)
- Log enabled capabilities (#272 by @xPaw)
- Add support for
~
home folder expansion (#284 by @maxpoulin64) - Document supported node version (#280 by @xPaw)
- Implement WEBIRC (#240 by @maxpoulin64)
- Add
manifest.json
for nicer mobile experience (#310 by @xPaw)
Changed
- Cache loaded config and merge it with defaults (#387 by @xPaw)
- Ignore unnecessary files at release time (#499 by @astorije)
- Improve font icon management, sizing and sharpness (#493 by @astorije)
- Maintain scroll position after loading previous messages (#496 by @davibe)
- Perform node version check as soon as possible (#409 by @xPaw)
- Prepend http protocol to www. links in chat (#410 by @xPaw)
- Change default configuration for
host
to allow OS to decide and use both IPv4 and IPv6 (#432 by @maxpoulin64) - Do not hide timestamps on small viewports (#376 by @xPaw)
- Drop
slate-irc
, switch toirc-framework
(#167 by @xPaw) - Improve sticky scroll (#262 by @xPaw)
- Minor wording changes for better clarity (#305 by @astorije)
- Improve nick highlights (#327 by @xPaw)
- CSS classes in themes for nick colors (#325 by @astorije)
- Replace all concatenated paths with Node's path.join (#307 by @astorije)
Deprecated
- Store channels in array format in user configuration files, deprecating previous format (#417 by @xPaw)
Removed
- Disable tooltips on mobile to prevent them to stay after clicking (#612 by @astorije)
- Remove Docker-related files now that we have a dedicated repository (#288 by @astorije)
- Remove JavaScript scrollbar library (#429 by @xPaw)
- Remove navigator.standalone detection (#427 by @xPaw)
- Do not increase font size on highlight in morning theme (#321 by @xPaw)
Fixed
- Remove font family redundancy, fix missed fonts, remove Open Sans (#562 by @astorije)
- Stop propagation when hiding the chat through click/tapping the chat (#455 by @williamboman)
- Improve click handling on users and inline channels (#366 by @xPaw)
- Only load config if it exists (#461 by @xPaw)
- Send user to lobby of deleted chan when parting from active chan (#489 by @astorije)
- Set title attribute on topic on initial page load (#515 by @williamboman)
- Save user's channels when they sort the channel list (#401 by @xPaw)
- Turn favicon red on page load if there are highlights (#344 by @xPaw)
- Keep chat stickied to the bottom on resize (#346 by @maxpoulin64)
- Only increase unread counter for whitelisted actions (#273 by @xPaw)
- Parse CTCP replies (#278 by @xPaw)
- Do not count your own messages as unread (#279 by @xPaw)
- Do not display incorrect nick when switching to a non connected network (#252 by @xPaw)
- Keep autocompletion sort whenever user list updates (#217 by @xPaw)
- Save user when parting channels (#297 by @xPaw)
- Add labels in connect window (#300 by @xPaw)
- Add missing
aria-label
on icon buttons (#303 by @astorije) - Fix missing colors in action messages (#317 by @astorije)
- Don't falsely report failed write if it didn't fail (
e6990e0
by @xPaw) - Fix sending messages starting with a space (#320 by @maxpoulin64)
- Fix notifications in query windows (#334 by @xPaw)
Security
- Implement user token persistency (#370 by @xPaw)
- Restrict access to the home directory by default (#205 by @maxpoulin64)
- Add security headers to minimize XSS damage (#292 by @xPaw)
- Do not write user configs outside of the app's users directory (#238 by @williamboman)
- Don't check for existing password emptiness (#315 by @maxpoulin64)
v2.0.0-rc.2 - 2016-09-21 [Pre-release]
This release candidate only fixes a UI bug affecting iOS 8 users, introduced in v2.0.0-pre.5.
Fixed
- Fix flexboxes to work on iOS 8 (#626 by @Gilles123)
v2.0.0-rc.1 - 2016-09-17 [Pre-release]
Prior to this release, users of Safari 10 were not able to access The Lounge anymore, because of a conscious change the WebKit made to their support of CSP, as explained here. This release addresses this issue.
Another notable change is the removal of tooltips on mobiles, as hovering states on mobile devices breaks in different kind of ways. Hopefully there will be a better solution in the future, or better support across mobiles.
This is also the first release candidate for v2.0.0. This means only critical bug fixes will be merged before releasing v2.0.0.
Changed
Removed
Fixed
- Fix small input text on Morning and Zenburn (#601 by @astorije)
- Fix a left margin appearing on all non-default themes (#615 by @astorije)
v2.0.0-pre.7 - 2016-09-08 [Pre-release]
This prerelease fixes a lot of bugs on both the server and the client. It also adds a theme selector on the client and connection debug log level on the server. Additionally, custom highlights are now case-insensitive.
Added
- Add tooltips on every clickable icons (#540 by @astorije)
- Add debug config option for
irc-framework
debug log (#547 by @maxpoulin64) - Client-side theme selector (#568 by @astorije)
Changed
- Use our logger instead of
console.log
andconsole.error
for LDAP logs (#552 by @astorije) - Make custom highlights case-insensitive (#565 by @astorije)
- Bump
request
dependency to 2.74.0 (#563 by @astorije) - Mention wiki in README (#548 by @MaxLeiter)
- Support ES6 features in JS linting outside of client code (#593 by @williamboman)
Fixed
- Fix token persistency across server refreshes (#553 by @astorije)
- Make sure input height is reset when submitting with icon (#555 by @astorije)
- Fix webirc and 4-in-6 addresses (#535 by @maxpoulin64)
- Allow long URLs to break onto next line on Chrome (#576 by @astorije)
- Make sure users with wrong tokens are locked out instead of crashing the app (#570 by @astorije)
- Remove font family redundancy, fix missed fonts, remove Open Sans (#562 by @astorije)
- Do not set app orientation in manifest to use user setting at OS level (#587 by @astorije)
- Move border-radius from
#main
to.window elements
to fix radius once and for all (#572 by @astorije)
v2.0.0-pre.6 - 2016-08-10 [Pre-release]
LDAP! That's all there is to be found in this pre-release, but it should please some administrators out there. Big thanks to @thisisdarshan and @lindskogen for sticking with us on this one.
This feature will remain in beta version until the official v2.0.0 release.
Added
- LDAP support (#477 by @thisisdarshan and @lindskogen)
v2.0.0-pre.5 - 2016-08-07 [Pre-release]
What an exciting release! It's been in the works for more than a month, but the perks are worth the wait.
On the user side, some long-awaited new features can now be found: The Lounge can now track custom highlights, it comes with an auto-expanding text field, and an unread message marker helps keeping track of what happened when you were not watching. A lot of improvements and various bug fixes have been made to the UI. Note that scrollbar look-and-feel is now delegated to the browser and OS. Use the custom CSS editor and your OS settings to customize them.
Administrators will notice a different format for channels in the user configuration files, and the Docker-related files have been moved to a dedicated repository. Many bugs have been solved on the server as well.
Added
- Add custom highlights (#425 by @YaManicKill)
- Add auto-grow textarea support (#379 by @maxpoulin64)
- Display unhandled numerics on the client (#286 by @xPaw)
- A proper unread marker (#332 by @xPaw)
- Add information on the About section of the client (#497 by @astorije)
- Add a red dot to the mobile menu icon when being notified (#486 by @astorije)
- Add "The Lounge" label to the landing pages (#487 by @astorije)
- Display network name on Connect page when network is locked and info is hidden (#488 by @astorije)
Changed
- Store channels in array format in user configuration files (#417 by @xPaw)
- Cache loaded config and merge it with defaults (#387 by @xPaw)
- Ignore unnecessary files at release time (#499 by @astorije)
- Improve font icon management, sizing and sharpness (#493 by @astorije)
- Maintain scroll position after loading previous messages (#496 by @davibe)
Removed
Fixed
- Fix storing the updated authentication token (#437 by @williamboman)
- Update
irc-framework
to 2.3.0 to fix a bug occurring when posting messages starting with a colon (#449 by @xPaw) - Update
irc-framework
to 2.4.0 to fix a buffering issue (#451 by @maxpoulin64) - Only auto join actual channels (#453 by @xPaw)
- Only trigger custom highlights for non-self messages and notices (#454 by @xPaw)
- Stop propagation when hiding the chat through click/tapping the chat (#455 by @williamboman)
- Improve click handling on users and inline channels (#366 by @xPaw)
- Update
irc-framework
to 2.5.0 to fix reconnection counter not being reset (#451 by @xPaw) - Register irc-framework events before connecting (#458 by @xPaw)
- Only load config if it exists (#461 by @xPaw)
- Fix window layout a bit (#465 by @maxpoulin64)
- Fix slight bugs introduced by #379 and #465 (#467 by @maxpoulin64)
- Prevent the app from crashing when no theme is specified (#474 by @astorije)
- Fix unread marker disappearing when opacity set to 1 (#471 by @astorije)
- Fix breaking layout when switching portrait/landscape modes (#478 by @astorije)
- Fix chat not being "stickied" to the bottom when joining channel (#484 by @williamboman)
- Add self info to TOGGLE messages to prevent unread marker to render for oneself (#473 by @astorije)
- Send user to lobby of deleted chan when parting from active chan (#489 by @astorije)
- Use
min-height
of textarea when computing auto-resize after deleting a char (#504 by @astorije) - Set title attribute on topic on initial page load (#515 by @williamboman)
- Make sure git commit check for the About section would not send stderr to the console (#516 by @astorije)
- Create a single function to render networks to reduce code duplication (#445 by @xPaw)
- Reset the unread marker on channel change (#527 by @maxpoulin64)
- Fix accidentally removed border-radius (#537 by @astorije)
- Fix font size in themes for new textarea (#536 by @maxpoulin64)
- Restore padding and height of message input pre-textarea era (#539 by @astorije)
- Prevent Ctrl-Tab from triggering tab completion (#541 by @hho)
v2.0.0-pre.4 - 2016-06-29 [Pre-release]
This pre-release adds a loading window, helpful on slow connections. It also implements token persistency, ensuring users do not have to authenticate at every server restart. As a side effect, security is improved by forcing logging out users on all devices when changing their password.
All generated URLs are now HTTP by default, except when explicitly set to HTTPS. For example, www.example.com
will link to http://www.example.com
. One needs to share https://www.example.com
to point others to a HTTPS location.
As a few users have been having issues when running The Lounge with a non-supported Node.js version, we now detect it early to avoid cryptic errors.
This pre-release also adds minor UI improvements, and fixes from the previous version. While The Lounge still needs a lot of efforts to be fully accessible, this version slightly improves accessibility on clickable nickname.
Internally, we now keep track of our code coverage, which we do not enforce strictly at the moment.
Added
- Add code coverage (#408 by @astorije)
- Display a loading message instead of blank page (#386 by @xPaw)
Changed
- Perform node version check as soon as possible (#409 by @xPaw)
- Prepend http protocol to www. links in chat (#410 by @xPaw)
- Use tabs when saving user configs (#418 by @xPaw)
- Do not display the sidebar on sign-in page (#420 by @astorije)
- Make style of loading page similar to other pages (#423 by @astorije)
- Change default configuration for
host
to allow OS to decide and use both IPv4 and IPv6 (#432 by @maxpoulin64) - Change nicks from links to spans everywhere (#428 by @xPaw)
- Increase join delay at connection to 1000ms (#434 by @williamboman)
Removed
Fixed
- Do not lose authentication token when the connection gets lost (#369 by @xPaw)
- Fix crash in public mode (#413 by @maxpoulin64)
- Do not print user loaded message in public mode (#415 by @xPaw)
- Fix focusing input when clicking chat container on the client (#364 by @williamboman)
- Fix channel join regression and fix possibly joining parted channels (#411 by @xPaw)
Security
v2.0.0-pre.3 - 2016-06-15 [Pre-release]
This release introduces a few internal changes as well as two noticeable ones. When using the CLI, the home path can now be set with the LOUNGE_HOME
environment variable, to avoid repeating --home
over and over. On the client, sorting channels will now be saved in the user configuration.
Added
- Fall back to LOUNGE_HOME env variable when using the CLI (#402 by @williamboman)
Changed
- Rename package variable to pkg, as "package" is reserved. (#399 by @hogofwar)
- Capitalise constructor Oidentd (#396 by @hogofwar)
- Bump stylelint and update Travis CI configuration to include OSX builds and package caching (#403 by @xPaw)
Removed
Fixed
- Save user's channels when they sort the channel list (#401 by @xPaw)
- Fix description of
host
andbind
config options (#378 by @maxpoulin64)
v2.0.0-pre.2 - 2016-06-09 [Pre-release]
This pre-release adds a very, very long-awaited feature: auto-reconnection! It also extends our support of ident with oidentd, shows timestamps on small screens and fix bugs around notifications and sticky scroll.
Added
- Enable auto reconnection (#254 by @xPaw)
- Add "!" modechar for admin (#354 by @omnicons)
- Add CI tool for Windows builds (#367 by @astorije)
- Add support for oidentd spoofing (#256 by @maxpoulin64)
Changed
- Update Font Awesome to v4.6.3 (#355 by @MaxLeiter)
- Do not hide timestamps on small viewports (#376 by @xPaw)
- Fetch Font Awesome from npm instead of embedded in repo (#361 by @astorije)
- Cache npm modules on appveyor (#381 by @xPaw)
- Update eslint and enforce key-spacing (#384 by @xPaw)
- Use
npm-run-all
in npm scripts for testing and linting (#375 by @williamboman) - Upload test results on appveyor builds (#382 by @xPaw)
Fixed
- Turn favicon red on page load if there are highlights (#344 by @xPaw)
- Do not send completely empty messages (#345 by @maxpoulin64)
- Make sure npm test script gets run on AppVeyor (#372 by @astorije)
- Keep chat stickied to the bottom on resize (#346 by @maxpoulin64)
v2.0.0-pre.1 - 2016-05-22 [Pre-release]
This is a pre-release to allow early adopters to use The Lounge with irc-framework
as our underlying IRC library instead of slate
. This change itself solves a lot of issues and adds many features, most of them listed here: IRCv3 compliance, user feedback improvement, etc.
It also adds WEBIRC support, a better server logging capability, a web app manifest, improves the sticky scroll, and fixes a ton of bugs.
Added
- Log enabled capabilities (#272 by @xPaw)
- Add global logging helper (#257 by @xPaw)
- Add support for
~
home folder expansion (#284 by @maxpoulin64) - Document supported node version (#280 by @xPaw)
- Add support for echo-message and znc.in/self-message caps (#270 by @xPaw)
- Implement WEBIRC (#240 by @maxpoulin64)
- Add
manifest.json
for nicer mobile experience (#310 by @xPaw)
Changed
- Drop
slate-irc
, switch toirc-framework
(#167 by @xPaw) - Create a single helper function to write messages (#266 by @xPaw)
- Update dependencies (#281 by @xPaw)
- Improve sticky scroll (#262 by @xPaw)
- Change license link to point at our license file (#290 by @xPaw)
- Stricter eslint rule for curly brackets (#291 by @xPaw)
- Bump patch version of lodash to 4.11.2 (#306 by @astorije)
- Minor wording changes for better clarity (#305 by @astorije)
- Improve tests execution (#260 by @maxpoulin64)
- Update irc-framework (#324 by @xPaw)
- Do not ignore our handlebars plugins in ESLint (#329 by @xPaw)
- Improve nick highlights (#327 by @xPaw)
- CSS classes in themes for nick colors (#325 by @astorije)
- Replace all concatenated paths with Node's path.join (#307 by @astorije)
Removed
Fixed
- Only increase unread counter for whitelisted actions (#273 by @xPaw)
- Parse CTCP replies (#278 by @xPaw)
- Do not count your own messages as unread (#279 by @xPaw)
- Use lowercase global to avoid a deprecation warning in Node.js 6 (
d9a0dd9
by @xPaw) - Do not display incorrect nick when switching to a non connected network (#252 by @xPaw)
- Keep autocompletion sort whenever user list updates (#217 by @xPaw)
- Make sure app does not crash when webirc is not defined in the configuration (#294 by @astorije)
- Save user when parting channels (#297 by @xPaw)
- Add labels in connect window (#300 by @xPaw)
- Add missing
aria-label
on icon buttons (#303 by @astorije) - Fix unread counter not being formatted on page load (#308 by @xPaw)
- Fix wrong CSS for disabled colored nicknames on themes (#318 by @astorije)
- Fix missing colors in action messages (#317 by @astorije)
- Don't falsely report failed write if it didn't fail (
e6990e0
by @xPaw) - Fix sending messages starting with a space (#320 by @maxpoulin64)
- Fix notifications in query windows (#334 by @xPaw)
Security
- Restrict access to the home directory by default (#205 by @maxpoulin64)
- Update demo link to HTTPS (#302 by @MaxLeiter)
- Add security headers to minimize XSS damage (#292 by @xPaw)
- Do not write user configs outside of the app's users directory (#238 by @williamboman)
- Don't check for existing password emptiness (#315 by @maxpoulin64)
v1.5.0 - 2016-04-13
With this release, administrators can now define a maximum size for channel history. While this is not optimal nor the definitive solution, it aims at reducing stability issues where The Lounge would crash after filling up the server's memory.
Other changes noticeable by users include removing custom print styles and preventing sequences of white spaces to collapse into one.
Added
- Add config option to limit in-memory history size (#243 by @maxpoulin64)
Changed
- Do not parse link titles for IRC formatting (#245 by @xPaw)
- Display multiple white spaces properly (#239 by @maxpoulin64)
- Reword password prompt of
add
andreset
CLI commands (#230 by @williamboman)
Removed
v1.4.3 - 2016-04-02
This PR fixes a bug introduced in v1.3.0 which prevents deleting disconnected networks from users' configuration files.
Fixed
v1.4.2 - 2016-03-31
This PR fixes a bug introduced in v1.4.1 causing timestamps to use most of the screen.
Fixed
v1.4.1 - 2016-03-28
As of this release, running /query nick
will simply open a chat window with user nick
, instead of calling whois
for this user.
Changed
- Remove
join
,nick
andwhois
inputs, they are cleanly handled by the server (#208 by @xPaw) - Add a
/query
command that simply opens a query window (#218 by @xPaw) - Disallow
/query
on non-nicks (#221 by @astorije)
Fixed
- Fix message and topic text wrapping (#215 by @xPaw)
- Fix
/part
command (#222 by @maxpoulin64) - Harden URL fetcher and don't crash on non-ASCII urls (#219 by @xPaw)
v1.4.0 - 2016-03-20
Note that this release will reset users' notification settings to their defaults. This unfortunate side effect is the consequence of an improvement of how this setting is handled in the application.
Added
- Add context menu when right-clicking on a sidebar item (#9 by @xPaw)
- Add tests for the
Chan#sortUsers
method (#197 by @astorije) - Add a very basic test for
Network#export
(#198 by @astorije) - Link to the demo from the IRC channel badge on the README (#203 by @Henni)
- Add support for HTTP/2 (#174 by @xPaw)
- Support port in
/connect
command (#210 by @xPaw)
Changed
- Update Handlebars to 4.0.5 (#140 by @xPaw)
- Update Socket.IO to 1.4.5 and use client library provided by the dependency (#142 by @xPaw)
- Update ESLint to 2.3.0 and add stricter rules (#171 by @xPaw)
- Mute color of the topic actions (#151 by @astorije)
- Rename "badge" setting and rely on browser choice for desktop notifications (#28 by @lpoujol)
- Invoke
handlebars
outside ofgrunt
and generate a sourcemap (#144 by @xPaw) - Make
whois
a client action template and improve its output (#161 by @xPaw) - Handle commands in a better way and send unknown commands to the IRC server (#154 by @xPaw)
- Switch the Send button to a paper plane icon (#182 by @astorije)
- Keep track of highlights when user is offline (#190 by @xPaw)
- Load input plugins at startup and call them directly when a command is received (#191 by @astorije)
- Make defaults for socket.io transports consistent to use polling before websocket (#202 by @xPaw)
- Update all server dependencies to current stable versions (#200 by @xPaw)
- Update configuration file to reflect HTTP/2 support addition (#206 by @astorije)
- Change close button behavior and add a dropdown context menu (#184 by @xPaw)
- Minor enhancements of the context menu UI (#212 by @astorije)
Removed
- Remove
string.contains
library (#163 by @xPaw) - Remove Moment.js library from the client (#183 by @xPaw)
- Disabled emails from Travis CI on successful builds (#172 by @xPaw)
- Remove unnecessary operation when sorting users (#193 by @astorije)
Fixed
- Make sure self messages are never highlighted and improve highlight lookup (#157 by @astorije)
- Fix Send button style on Zenburn and Morning themes, introduced by this release (#187 by @astorije)
- Make sure all close buttons in the sidebar have same weight (#192 by @astorije)
- Disallow parting from lobbies (#209 by @xPaw)
v1.3.1 - 2016-03-05
Removed
- Remove attempts to set file modes (#117 by @maxpoulin64)
Fixed
- Correctly handle inline channels in messages (#128 by @xPaw)
- Fix crash, introduced by this release (#143 by @xPaw)
- Fix highlighted actions and mute colors of some of the actions (#47 by @xPaw)
- Fix stripping multiple colors from notifications (#145 by @xPaw)
- Correctly display channel name in notifications (#148 by @xPaw)
- Fix hover effect on channels in topics (#149 by @xPaw)
- Add missing mode action to muted colors (#150 by @astorije)
v1.3.0 - 2016-03-03
Added
- Add hostmask in
join
/part
/quit
messages and move actions to templates (#94 by @xPaw) - Add a section in the README explaining why a fork was created (#95 by @almet)
- Add the ability to let users change their password from the settings page (#57 by @diddledan)
- Add the ability to let users set custom CSS in their settings (#83 by @xPaw)
- Add notifications for channel invites (#127 by @astorije)
- Allow locking network configuration (#82 by @xPaw)
Changed
- Add target channel name in notifications (#118 by @astorije)
- Bump
grunt-contrib-uglify
and pin versions ofgrunt
-related dependencies (#119 by @astorije) - Switch to a power-off icon for logging out (#131 by @astorije)
Removed
Fixed
- Fix the "Show more" button being displayed over chat messages and message paddings when
join
/part
/quit
messages are hidden (b53e5c4
by @xPaw) - Fix how highlights are handled and highlighted (#91 by @xPaw)
- Fix favicon highlight on Chrome and remove
Favico.js
library (#100 by @xPaw) - Fix complete crash when refreshing a public instance, introduced by this release (#125 by @astorije)
- Fix clickable "you" in the text of an
/invite
, introduced by this release (#122 by @xPaw) - Fix minor issues with the main HTML file (#134 by @astorije)
- Strip control codes from notifications (#123 by @xPaw)
v1.2.1 - 2016-02-26
Changed
Fixed
- Fix CSS selector syntax in channel message handler (#102 by @maxpoulin64)
- Fix fading channel name in sidebar of Crypto and Zenburn themes (#105 by @maxpoulin64)
- Fix
/invite
command broken by lodash bump (#106 by @JocelynDelalande)
v1.2.0 - 2016-02-24
Note that this release will reset client-side settings to their defaults. Current users will have to re-set them in the settings page. This is a conscious trade-off as the fork is rather new and there are not many settings overall.
Added
- Add support for the
/invite <nickname> <channel>
command (#7 by @xPaw) - Add a command shorthand to invite in the current channel with
/invite <nickname>
(#76 by @astorije) - Add style linting for all CSS files in the repository (#43 by @xPaw)
Changed
- Improve client performance by updating the users' list only when it's needed (#58 by @maxpoulin64)
- Let the badge counter hide with a fade-out (#73 by @xPaw)
- Update
lodash
dependency to the latest major version (#38 by @xPaw) - Use
localStorage
instead of cookies for client-side settings storage (#70 by @xPaw) - Replace Bootstrap's tooltips with CSS tooltips from GitHub's Primer (#79 by @xPaw)
Fixed
- Fade long channel names in the sidebar instead of breaking to another line (#75 by @maxpoulin64)
v1.1.1 - 2016-02-19
Changed
v1.1.0 - 2016-02-19
Added
Changed
- Simplify a great deal the CONTRIBUTING file (#40 by @astorije)
- Use a Font Awesome icon for the channel closing button (#48 by @xPaw)
Removed
Fixed
- Suppress deprecation warning for
moment().zone
(#37 by @deiu) - Fix a bug preventing the closing of a channel when the user was kicked out (#34 by @xPaw)
v1.0.2 - 2016-02-15
Changed
- Remove
#foo
channel from the default configuration file (#22 by @astorije) - Change the Freenode URL to
chat.freenode.net
in the default configuration file (#13 by @dubzi) - Ensure all
.js
files are linted (#42 by @williamboman)
Fixed
- Hide the user list button on a server or private message window (#32 by @MaxLeiter)
- Correctly sort the user list whenever a user joins (#33 by @xPaw)
v1.0.1 - 2016-02-14
Changed
- In the change log, use a permanent URL to link the previous history of The Lounge to Shout (#12 by @xPaw)
- Update some dependencies and pin versions (#8 by @xPaw)
Fixed
- Add missing form methods that were causing LastPass to trigger a warning (#19 by @maxpoulin64)
- Fix comments in the configuration file (#1 by @FryDay)
v1.0.0 - 2016-02-12
This is the first release of The Lounge, picking up where Shout v0.53.0
left off!
Added
- Enable notifications on all messages, which can be controlled in the settings (#540 by @nickel715)
- Add Travis CI and David DM badges on the README (#465 by @astorije)
- Emit sent notice back to the user (#590 by @xPaw)
- Send user agent with link expander requests (#608 by @xPaw)
- Add a
.gitattributes
file to normalize line endings (#610 by @xPaw) - Style scrollbars (WebKit only) (#593 by @xPaw)
- Add a badge to display the IRC channel at the top (#599 by @astorije)
- Rotate
part
/quit
icon for new action display (#617 by @MaxLeiter)
Changed
- Update slate-irc to v0.8.1 (#597 by @xPaw)
- Limit maximum height of inline images (#598 by @xPaw)
- Use a single function to process and render messages (#596 by @xPaw)
- Render user actions separately (#588 by @xPaw)
- Simply parse all 0-99 IRC colors (#609 by @xPaw)
- Tag notifications to reduce notification spam (#418 by @williamboman)
- Change all mentions of Shout to the new name: The Lounge (#2 by @astorije)
Fixed
- Fix initial copyright year in the LICENSE notice (#591 by @pra85)
- Fix wrong color class on Zenburn style (#595 by @astorije)
- Run new topic through parser when it is updated (#587 by @xPaw)
- Fix several things on Morning and Zenburn themes (#605 by @xPaw)
- Fix word wrap on firefox (#570 by @YaManicKill)
- Change user buttons to
a
links, allowing highlighting on Firefox (#571 and #574 by @YaManicKill)
All previous changes can be found on Shout's CHANGELOG, starting at v0.53.0
.