Skip to content

Releases: cburschka/cadence

1.11.0 - Nightmare

18 May 19:45
1.11.0
Compare
Choose a tag to compare

This release fixes a long list of bugs, adds support for several XMPP features, improves markup rendering in the interface, and adds eleven new ponicons.

Features

  • #283: Added eleven new ponicons: Three for Spitfire (:halp:, :sfsmile:, :sfwtf:) and eight for Vinyl Scratch (:vsbeam:, :vsblush:, :vscry:, :vsdrunk:, :vsfacehoof:, :vsgrin:, :vssmug:, :vswhoa:) and some aliases.
  • #286: Show room ID in hover text.
  • #287: Added markup (context menus, flairs, etc.) to JIDs.
  • #289: Smarter URL parsing, allowing closing parentheses at the end of URLs.
  • #290: Added XEP-0202 (Entity Time) support for incoming queries.
  • #291: Added XEP-0030 (Service Discovery) support for incoming queries.
  • #303: Added support for /ping and /ping without arguments
  • #304: Added XEP-0092 (Software Version) support for incoming queries.
  • #305: Added support for /version <nick|jid>.
  • #314: Added XEP-0224 (Attention) support for incoming messages.
  • #317: Added XEP-0115 (Entity Capabilities) support.
  • #320: Added websocket support in ./configure and README
  • #324: Added a visual.format.button() renderer.
  • #336: Added support for an offline welcome message.
  • #343: Allow explicitly choosing emoticon packs with ./configure --packs
  • #349: Attributing internal messages to a "bot" is now optional (default: off).

Major changes

  • #234: Rewrote text formatting to use DOM objects.
  • #292: Rewrote target JID generation, add xmpp.jid() function.
  • #307: Remove translateable strings from static markup, load them dynamically.
  • Switched cadence to the MIT license (formerly GPL3+).

Bugfixes

  • #285: Reversed logic so that internal messages are exempt from truncation.
  • #293: Fixed several crashes from non-occupant messages (with undefined nicks)
  • #294: Now encoding/decoding window.location.hash values.
  • #295: Fixed off-by-one error in command autocompletion.
  • #297: Fixed a bug that made ping/time support only work once.
  • #299: When escaping forbidden markup elements, leave their contents intact.
  • #300: Now wrapping HTML log output (/save html) in document tags.
  • #301: Now escaping apostrophe characters as ' in format.plain()
  • #302: Now only calling eventIQCallback on "get" type .
  • #309: Blocked bare JID in /ping or /version
  • #310: Added an error when sending messages to non-existant users or domains.
  • #311: Stopped formatting invalid JIDs as JIDS in the error message.
  • #313: Stopped showing message stanzas that have no .
  • #315: Fixed a crash from non-MUC offline message delivery.
  • #316: Stopped autojoining an empty room with a "#" URL fragment.
  • #318: Fixed a markup bug (from #234) in ui.notifyDesktop.
  • #319: Improved desktop notifications for direct messages.
  • #321: Fixed an undefined variable error in visual.formatText().
  • #322: Now showing error messages if the MUC server is down.
  • #330: Fixed a roster entry bug (resulting from #234).
  • Fixed some old bugs in the XMPP disconnect functions.
  • #331: Fixed a crash on servers that send with their kick/bans.
  • #338: Converted destroy-confirmation message to string (resulting from #234).
  • #339: Fixed translateable strings with markup (resulting from #234).
  • #340: Now consistently accepting backslashed quotes in command arguments.
  • #341: Now escaping all quotes in nicks in chat.prefixMsg().
  • #342: Fixed a crash in XMPP forms with list-multi/text-multi fields.
  • #357: /admin now correctly reports failure of commands.

Other changes

  • The /ping timeout error now includes the unit (ms).
  • Ignore custom.css and config.custom.js files.
  • Add color to debug XMPP traffic. Incoming is blue, outgoing is red.
  • #296: Switch data-time attribute from timestamp to ISO string.
  • #298: Use hexadecimal \HEX escape sequences in JID classnames.
  • #306: Remove strings.init(), move that stuff to xmpp.init().
  • Split up setup.py tasks to avoid rebuilding too many files.
  • #325: Register namespaces with Strophe.
  • Alphabetize button label strings.
  • Update library list in README
  • Fixed some of the copyright/license information.
  • #350: Removed dash theme from the main branch.
  • #356: Upgraded jquery library from 2.1.4 to 2.2.3

1.10.0 - Starlight

16 Dec 01:06
v1.10.0
Compare
Choose a tag to compare

This long-delayed release makes minor improvements to the UI, fixes several bugs
in room history and plaintext message bodies, and adds eleven new ponicons.

Features

  • #252: Print role and affiliation changes.
  • #254: /admin command is now interactive.
  • #260: Changes to the timestamp format are now applied retroactively.
  • #266: New :flutterkay: emote.
  • #272: Reformat the plaintext body as Markdown.
  • #275: The OMG theme has been removed.
  • #281: Ten new ponicons: :goodjob:, :calm: :ajcry:, :ajdoubt:, :pinkieglare:,
    :rarityeww:, :spikewhoa:, :skeptiloo:, :twipbbt: and :wasntme:.

Bugfixes

  • #204: Install jquery-ui icons in the CDN prefix.
  • #256: Add the navigation bar links' anchor texts.
  • #257: Style the dialog buttons in the "dash" theme.
  • #258: Strip backslashes in command arguments.
  • #264: If other clients send only a plaintext body, escape it.
  • #265: Attribute delayed messages by JID, not by nick.
  • #267: Add JID (and flair classes) to history authors who are now absent.
  • #268: Make an empty alert field not cause an alert on all messages.
  • #273: Handle "forbidden" message error.
  • #274: Convert JID user class to lower-case.
  • #276: Fix a crash when joining a room with verbosity turned off.
  • #278: Strip hidden markup when saving an HTML log.

Minor changes

  • #263: The /version command no longer prefixes the version with "cadence-".
  • Refactor chat.commands to alphabetical order.
  • #277: Update the JS libraries.
  • Add doc comments to visual.messagesToText and visual.ellipsis.
  • #280: All CalRef-specific ponicons have been removed from the master branch.
  • #282: Store the persistent font color as a data attribute, not a class.

1.9.1

11 Jun 10:17
v1.9.1
Compare
Choose a tag to compare

This is a bugfix release, fixing mostly regressions from 1.9.0.

Changes

  • #204 addendum The jquery-ui icons are now copied to the CDN prefix during installation.
  • #256: Navigation links are now displayed again. The #213 fixes accidentally removed the link anchor texts from the navigation links.
  • #257: The dash theme now correctly styles buttons in dialog overlays, which lack the .button class and must be selected with .dialog button.
  • #258: Backslash escape sequences are now correctly stripped in parseArgs(), which only stripped the first sequence in each argument before.
  • #263: /version now shows the client version as just "v0.0.0" instead of (inaccurately) "cadence-v0.0.0".
  • #264: Plaintext messages (only generated by clients other than cadence, which sends all messages with an XHTML-IM body) are now properly escaped rather than being interpreted as HTML code.
  • #265: Room history messages are now attributed to users in the room by their JID. This properly styles authors who changed their nickname after sending the message, and does not misidentify authors whose former nickname is now being used by someone else.
  • #266: A :flutterkay: emote has been added.

1.9.0 - Sunset

26 May 22:31
v1.9.0
Compare
Choose a tag to compare

This release adds several major new features, along with a lot of improvements to the user interface.

Note: From this version forward, releases will move from an x.y to an x.y.z versioning scheme.

Features

  • #5, #247: Context menus are now attached to users and rooms. These are triggered by a right click by default, which can be switched to a left click or hover event, or disabled entirely. Context menus provide shortcuts for most of the user- or room-related chat commands.
  • #204: Rooms can be configured interactively by calling /configure without any arguments or with the --interactive option. This opens the room configuration form in a dialog overlay. /create --interactive brings up the same form during room creation.
  • #156: Users (by JID) can be invited to the current chatroom using the command /invite <jid>, which uses XMPP standards and is therefore compatible with other chat clients. Incoming invitations are displayed to the user with a link to the specified room.
  • #243: Cadence can now join password-protected rooms via a --password argument to /join. If the server denies room access due to a missing or wrong password, the client prompts for the password and immediately retries.
  • #244: Room owners can destroy a room (ie. instantly remove it and expel all its current occupants) via the /destroy [<room>] command. This command requires a confirmation before the room is destroyed.
  • #218: Sound settings can be tested with a "preview" button which immediately plays the selected sound.
  • #170: The settings sidebar is now split into three tabs.
  • #212: The /whois command prints basic user information (JID, role, affiliation).
  • #232: /admin now supports arbitrary service administration commands as defined by XEP-0133. Form values can be supplied as command-line arguments. The biggest change is that the MOTD must now be set with /admin set-motd rather than /admin motd, because that is the real name of the command.

Fixes

  • #213: All strings in dynamically generated markup are now either escaped or added (as attributes or text nodes) via jQuery. This ensures that strings can never create markup unless they are added to a format string with a raw: format specifier.
  • #216: HTML (<b>) is no longer added to web notifications. This is a vendor- specific feature only supported by some desktop environments.
  • #221: All ponymotes have been converted to bitmaps and re-converted to PN to fix some odd color inconsistencies.
  • #222: The dnd icon has been resized to 16x16 like other status icons.
  • #223: Message recipients now have the correct JID classes (and thus flairs).
  • #231: Handle arbitrary values. The server passes on the element in user presences without filtering, and therefore it can neither be relied on to have one of the standard values (away, dnd, xa, chat) nor be safe for inclusion in an HTML class attribute without escaping.

Minor enhancements

  • #200: The carhartl/jquery-cookie library is updated to js-cookie/js-cookie.
  • #211: Rooms are now rendered as full links (with context menus as of #247) everywhere, not just in the /list output.
  • #214: An error in the :ajfrown: emote has been fixed by @Nebedia.
  • #215: Most commands now support a named argument syntax, eg. /msg --nick "<nick>" --msg "<msg>".
  • #217: The "Make URLs clickable" setting now applies retroactively.
  • #219, #220: HTML validation errors fixed in static markup.
  • #224: Add "missing arguments" error conditions to commands.
  • #225: Hard-coded error string in /who moved to strings.js.
  • #226: Block /affiliate command outside room context.
  • #227: Print error messages if /configure fails.
  • #228, #229: Rewrote /affiliate and made /ban and /unban shortcuts for /affiliate outcast / /affiliate none.
  • #230: The /msg and /dmsg commands use chat.parseArgs().
  • #233: strings.info is now sorted alphabetically.
  • #236: Users without a nick (ie. non-occupants) no longer have a fake nick attribute only used for display. Instead, their displayed name is directly generated from their bare JID.
  • #238: The Cadence version of jquery-replacetext is now a standalone jquery plugin, and is included as a submodule.
  • #239: xbbcode is now updated to 1.0.0, the first public release. This fixes an error with improperly nested tags.
  • #240: A nick collision while joining a room now prompts for a different nickname rather than automatically appending a number.
  • #241: Users get the room name instead of "You have been banned from {room}!" when they are banned.
  • #242: /whois prints "---" for the JID in anonymous rooms.
  • #245: Cleaned up string formatting. Formats are now specified with {format:var} instead of {format.var}, and the variable key is var instead of format.var. Names and formats can contain any word characters, not just [a-z]. Variables are only formatted when they are actually used by the template.
  • #246: /configure --title "<...>" now targets the current room instead of a room named <...>.
  • #248: Context menu items are only enabled when the current state allows them.
  • #249: Form dialogs can now be made from any form, not just jabber:data-form stanzas.
  • #251: Context menus and dialog overlays now visually match the current theme.
  • #253: :droneriots: and :yay: are removed from the main Cadence branch.
  • #255 et al: Several style fixes for Firefox and Chromium.

1.8 - Adagio

08 May 14:17
v1.8
Compare
Choose a tag to compare

This update adds several major features and fixes many bugs, including a security issue.

Critical bugs

  • #192, #196: An arbitrary HTML/Javascript injection vulnerability was removed. The emoticon and URL-link processor used the obsolete jquery-replacetext library, which implicitly evaluated any escaped HTML code in messages as a side effect. The library has been removed and replaced with a more robust approach.

Features

  • #101: Rooms can be configured via arguments for /create or the newly added /configure command. This allows toggling room persistence, logging, permissions and other settings.
  • #103: Direct messages can be sent and received via the /dmsg command. This allows sending a message directly to any JID (including across domains), and even to a specific client session identified by its resource.
  • #167: Desktop notifications (if the browser and desktop environment support them) can be enabled for certain events when the client is in the background.
  • #178: A list of navigational links can be inserted in the title bar.
  • #180: Six new pony emotes have been added to the pack: :fluttersmile:, :ididntlisten:, :rdmad:, :shutup:, :symadder: :tavizero:
  • #182: The new /dnd command sets your status to "do not disturb", which turns off sounds and notifications, while also showing up as a status icon in the roster.

Bugs

  • #142: All BBCode buttons now have shortcuts supported by most browsers, including Chromium-based ones that didn't work previously. These use the HTML5 accesskey attribute. The specific key combination may vary accross browsers, and is shown in the button tooltips.
  • #166: The full RGB color selection now works reliably, by adding an "Advanced" button to the palette dialog that opens the color picker.
  • #186: Disabling inline images now actually works, instead of showing both the image and the alt-text.
  • #189: Emoticons will no longer render inside hyperlink anchors, which avoids rendering 8o or :D in URLs.

Minor fixes

  • #179: Alphabetize /who output.
  • #188: Some incorrect labels in the settings form have been fixed.
  • #190: Open all links in new tab.
  • #191: The text color RGB code is in monospace; the sliders have a set width.
  • #195: JS libraries were updated (strophe, buzz, jquery and moment)
  • #197: The codes in the help sidebar now line-wrap.
  • #198: Some unused images have been removed, one image was renamed.
  • #202: The stderr output of which is now suppressed.
  • #203: The room title is no longer run through Strophe.unescapeNode
  • #205: The onclick event for users is now attached instead of injected in HTML.
  • #206: Private messages can now be sent to nicks that contain backslashes.
  • #207: Pressing Escape or Cancel on the URL prompt no longer inserts [url][/url].
  • #209: Make the recipient clickable on outgoing /msg and /dmsg whispers.
  • #210: Some control flow refactoring.

1.7 - Tirek

29 Mar 08:55
v1.7
Compare
Choose a tag to compare

This is a maintenance update that closes several substantial bugs in the user interface.

Major

  • #144: Fix the user roster's removal function. It was currently deleting random users instead of the user that had actually left, messing up nickname sorting and occasionally failing to show a user logging in.
  • #171: Ignore departures of unknown users. ejabberd sends multiple presence stanzas when a multi-session nick is kicked or banned, causing a crash when the roster tries to delete the same nick multiple times.
  • #174: Escape usernames when generating a JID from a login name. This allows users with spaces or "'<>&@\/: characters to connect to a server.

Minor

  • Restore the user sidebar's old width. It was made wider along with the emoticon sidebar.
  • #154: Make the "hide inline images" setting hide only images. It was completely hiding every message received while active.
  • #159: Restore messages to "inline" display after unhiding them, to avoid bad linebreaks.
  • #161: Fix a Javascript error when running /save with empty chat history.
  • #162: Don't play the "mention" sound for user's own login.
  • #164: Remove font color from text box when persistent font colors are off.
  • #165: Let delete button float at the top right corner of a message, rather than occasionally getting pushed below it.
  • #169: Improve the join/part messages.
  • #172: Refresh the room list before creating a room, to avoid phantom conflicts with deleted rooms, or actual conflicts with newly created ones.
  • #173: Clear the room roster whenever a room is left. It was only cleared when switching directly between rooms.
  • #175: Consistently update the URL fragment when leaving or joining rooms; fix a whitespace error when appending the URL fragment in /join.
  • #176: Remove room name from page title when the room is left.
  • #177: Unescape characters in usernames when rendering output. This is relevant when adding parentheses and generating CSS classes for flairs.

1.6 - Discord

27 Jan 14:44
v1.6
Compare
Choose a tag to compare

For a monthly update, this one is pretty loaded with major enhancements and
features, most of which have been sitting in the pipeline for a long time.

Features

  • #132: Eight new ponicons, including one new character. :sunsetshimmer:,
    :sunsetsneaky:, :lunamad:, :discordsad:, :pinkiepout:, :scootablue:,
    :spikehappy:, :twisecret:
  • #145: Another ponicon (original work): :sombra:
  • #50: Most markup settings (persistent colors, emoticons and inline images)
    are now retroactively applied to all messages when toggled.
  • #52: The persistent color setting now supports full RGB in HTML5-compliant
    browsers. To open the full color menu, simply hold down the color button
    for 0.5 seconds.
  • #147: /back now accepts a status message as an argument.
  • #150: /ping command added. This pings the server, or accepts a nickname or
    JID as a target.
  • #151: Cadence will respond to ping stanzas, allowing users to ping each other.
  • #112: Create an Emoticon Pack API that allows easily dropping in sets of
    custom emoticons. The default ponicon set is now an emoticon pack
    (but still included in the repository).

Enhancements

  • #130: Images are now inline-block elements and vertically centered on the
    line, just like emoticons. This fixes a few visual oddities with link
    anchors and the message-hiding buttons.
  • #141: The current room is now included in the page title.
  • #152: Update all JS libraries (jQuery to 2.1.3), the others to their latest
    development branches at Jan 20, 2015.

Bugfixes

  • #140: The invisible "[hidden]" placeholder at the end of each message is no
    longer included in the log files generated by /save.
  • #143: If for whatever reason the last opened sidebar has been removed or
    renamed since the page was last loaded, the page will now fall back to
    the user list instead of crashing.
  • #146: :aaaaa: is a duplicate of :rarishock: so it is now an alias.
  • #148: Users setting their status to "dnd" (do not disturb; only available to
    external clients) will no longer cause an error.
  • #149: The local jQuery installation that has been included since version 1.4
    is now actually included on the page, instead of the external library.

1.5 - Sombra

29 Dec 03:44
v1.5
Compare
Choose a tag to compare

Features

  • #111: Ctrl+B, I, S and U will automatically add the corresponding BBCode tags
    around the cursor or selected text.
  • #120: The /affiliate command allows admins and owners to set a user's room
    affiliation.
  • #129: Messages can be locally hidden (and unhidden) by clickin an "X" next to
    the message.
  • #131: The tab key will automaticallly complete any partial nickname or chat
    command in the input field.
  • #133: The current room ID is now bound to the URL fragment ("#lounge"). This
    allows bookmarking or linking directly to rooms, as well as inviting
    other cadence users to a room by sending a [url=#room][/url] link.
  • New ponicon: :symad:

Enhancements

  • #62: The user's own roster entry is emphasized.
  • #74: Instead of a settings cookie, cadence now uses HTML5 local storage.
    This has an increased size limit and is not sent to the server.
  • #78: Emoticon codes inside tags are not rendered.
  • #123: The user roster is now sorted alphabetically.
  • #126: On the arrival of a user whose nickname matches an alert keyword, the
    "mention" sound will be played.
  • #135: The help sidebar is updated with all new commands. Admin commands are
    grouped under a separate section. The commands themselves are printed
    as code, instead of being italicized.
  • #139: Raised maximum displayed nickname length from 32 to 48.

Bugfixes

  • #116: Fixed a regression in the /msg command regex.
  • #119: Fix the "Connection failed (improper-addressing)" error when restarting
    after a remote-dropped connection, caused by a stale connection object.
  • #122: Skip code compression when YUI is not installed.
  • #124: When clicking on a nickname with spaces, and then clicking another user,
    only the first part of the nickname was replaced in the input field.
  • #128: /bans printed a poorly formatted message with an empty banlist.
  • #134: Removed the last remnants of the never-displayed splash page.
  • #136: Fixed an alignment problem affecting the [b] button on some devices.
    The bold font weight caused the button to be placed slightly lower than
    the others.

1.4 - Chrysalis

29 Dec 03:45
v1.4
Compare
Choose a tag to compare

Many major new features as well as improvements:

  • #30: A /create <title> command creates a new ad-hoc room on the server.
    The room is created with the node-escaped version of <title> as an ID,
    and given the human-readable name <title>.
  • #65: Two new configurable sound effects (disabled by default) that are
    triggered by a PM or a mention of an alert keyword.
    Alert keywords are configurable, and always include the user's nickname.
  • #83: The client now displays incoming server-wide announcements and
    Message of the Day.
    For server administrators, there is also a new /admin command:
* `/admin announce <message>`
* `/admin motd <message>`
  • #85: /version now shows the server version too.

  • #86: Several new ponicons via /r/mlp:
    :cadence: :changeling: :fluttercry: :ppreally: :rdscared: :shiningpride:
    :sneakybelle: :trixiesad: :twidaww: :twisad: :whattheflut:

  • #106: In non-anonymous rooms (or for privileged users) cadence now exposes the
    user, domain and resource fragments of each user's JID in CSS classes.
    These can be used to add customized styles to messages or usernames:

    * `.jid-node-{user}`
    * `.jid-domain-{domain}`
    * `.jid-resource-{resource}`
    
  • #107: Several ponicon aliases.

  • #108: There is a new hidden settings key: config.settings.xmpp.resource
    (default: {client}/{version}/{timestamp})
    (A string that does not contain {timestamp} will limit you to one
    session across all browsers with this setting.)

  • #109: jQuery is now a submodule and locally installed.

  • #110: Along with config.custom.js, a custom.css is now installed in the host
    location. Empty by default, it can be used to apply custom style
    rules without changing core files.

Bugfixes:

  • #87: Allow changing text colors without clearing cookies
    after a version change.
  • #89 (and #73 again): Make /list work again.
  • #90: Remove the superfluous message hash thing.
  • #91: Deleting an alias now saves the settings.
  • #92: Avoid bad cp commands when installing to the local source directory.
  • #95: Do not trim parentheses in /away messages.
  • #96: Show messages even if the sender appears not to be in the room.
    This works around a bug in which some login events were overlooked by the
    client, and some users remained entirely invisible to some other users.
    Until this patch, you would only notice this once you saw another user
    seemingly talking to thin air.
  • #97: Properly leave a room on a /part command.
  • #98: Support nicks with spaces in /nick and /msg
  • #99: Escape the room ID when sending a message.
  • #100: Refresh the room list on /join, and also query the room directly.
    This lets users join newly created or private rooms, but still avoids
    implicitly creating a room with /join.
  • #102: Avoid duplicate connection when pressing enter in the login form.
  • #104: Print an error if the server refuses a /nick due to bad characters.
  • #105: Show all but local alerts and "groupchat"-type messages as private.
  • #113: When running a macro, insert only the alias into the command history.
  • #114: Add no leading space before an outgoing private message.