/www/doc/changelog.html
<!DOCTYPE html>
<html>
<head>
<title>Blërg Changelog</title>
<link rel="stylesheet" href="/css/doc.css">
</head>
<body>

<h1>Changelog</h1>

The intent of this changelog is to give an overview of the major changes
and fixes made to Blërg.  For a detailed changelog, see the git log.

<a name="v1.11"><h2>Verison 1.11 - released Thursday, March 5th, 2015</h2></a>

<h3>Features Added</h3>
<ul>
<li>Password recovery - Passwords can now be recovered using a URL containing
authenticated reset information.  These can be generated in advance for
safe-keeping (like recovery codes), or sent via email if you have registered an
email address.</li>
<li>Email notifications - You can register an email address that will receive a
daily digest of updates to your feed.  It also allows password resets via
email.</li>
<li>The recovery and email features above as well as password changes have been
added to a new Account Center page.</li>
<li>A new environment variable BLERG_HOME has been added to the install
environment that points to the root of the blerg data store.</li>
</ul>

<h3>HTTP API Changes</h3>
<ul>
<li>Password recovery and email are configured via APIs on /aux/recovery and
/aux/email, respectively.  They're implemented with new Perl CGIs in
aux/cgi. Documentation forthcoming.</li>
</ul>

<h3>Perl API Changes</h3>
<ul>
<li>Missing documentation for auth functions has been added.</li>
<li>A <code>configuration</code> module function has been created to access the
runtime configuration in <code>blergconf</code>.</li>
</ul>

<h3>C API Changes</h3>
<ul>
<li>There is now a function <code>auth_get_counter</code> which returns an
opaque 32-bit integer that will change when the password is changed.  It's
intended to be used to invalidate things after a password change (like the
above recovery links).</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Fixed a bug in the perl version of <code>subscription_list</code> where it
was fetching the first 50 entries instead of the last.</li>
</ul>

<a name="v1.10"><h2>Version 1.10 - released Sunday, October 26th, 2014</h2></a>

<h3>Features Added</h3>
<ul>
<li>When you are mentioned, the "Feed Your Vanity" button will now light up to
let you know. This is implemented internally by a "mentioned" flag on the
account.  See the API changes below.</li>
<li>Password storage and authentication have been compacted down to two files,
reducing size and disk seeks.</li>
</ul>

<h3>HTTP API Changes</h3>
<ul>
<li>/feedinfo is now /status, which now handles both account status (new feed
entries and mentioned status) and subscription status for other users.</li>
<li>/unsubscribe has been removed in favor of sending a boolean "subscribed"
parameter to /subscribe.</li>
<li>The logged-in username is now part of the auth cookie, removing the need to
POST the username for authenticated requests.</li>
<li>Authentication backend changes allow sessions to be expired.  The session
timeout defaults to one hour, and can be changed by tweaking
AUTHENTICATION_TIMEOUT in config.h.</li>
</ul>

<h3>C API Changes</h3>
<ul>
<li>Password retrieval functions (<code>auth_get_*</code>) are no longer part
of the C API.</li>
<li><code>blerg_{get,set}_mute(*blerg)</code> has been generalized into
<code>blerg_{get,set}_status(*blerg, flags)</code> to support new mentioned
flag.</li>
</ul>

<h3>Features Deprecated</h3>
<ul>
<li>Autoconf build system was removed because I don't care to maintain it.  I
might revisit it later, but right now, it's misleading to have it available
when it doesn't work.</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Password updates now use locks, eliminating a potential race condition that
could corrupt the password if two updates happened simultaneously.</li>
<li>Fixed one instance of testing mmap result against NULL instead of
MAP_FAILED.</li>
<li>Fixed a number of bugs with stringbucket implementation.</li>
<li>Now building with <code>-Wall</code>, which has found a lot of small
bugs.</li>
</ul>

<a name="v1.9.1"><h2>Version 1.9.1 - released Tuesday, June 17th, 2014</h2></a>

<h3>Features Added</h3>
<ul>
<li>You can now use the enter key to advance through the login field and log in.</li>
<li>RSS links added for tags, refs, and subscription feed.</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Login form now properly defocuses after login.</li>
</ul>

<a name="v1.9"><h2>Version 1.9 - released Sunday, June 1st, 2014</h2></a>

<h3>Features Added</h3>
<ul>
<li>Added media support for images.  Image links will now have a play button
that will replace the text with the image.</li>
<li>Added a back-end Perl module for the file-level blerg API.  The idea is to
allow ancilliary functionality (like RSS and mail notification) to be built in
Perl rather than C.  Hardcore C and shit is good for core database structure,
but it's a royal pain for formatting/templating.  The docs have also been
updated to describe this new low-level API.</li>
<li>New, less brain-dead RSS implementation using above Perl module. It
supports RSS feeds for mentions, tags, and the subscription feed, but it's not
currently worked into the UI.</li>
<li>Database location is now configurable with environment variables.</li>
<li>Added a way of installing Blërg to an "environment directory" that includes
most of what you need to run Blërg (see <code>make
install-environment</code>).  Still lots to do before I can make Blërg "make
install"-able.</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Numerous fixes for 64-bit cleanliness, bad behaviour, and general
stupidity.</li>
<li>Fixed media functionality for Firefox.</li>
<li>Tested compilation with clang; fixed numerous warnings.</li>
</ul>

<a name="v1.8.3"><h2>Version 1.8.3 - released Friday, March 21st, 2014</h2></a>

<h3>Features Added</h3>
<ul>
<li>New full-screen editor dialog with preview and reply views.</li>
<li>Add Markdown and GitHub Flavored Markdown-style code blocks, and GFM-style
strikethrough.</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Fixed link clicking in Firefox and Chrome (and probably Safari and Opera).
My link handler would consume all clicks, preventing the user from opening
links in new tabs with middle-click, or getting a context-menu on right-click.
It now only activates on left-click.</li>
</ul>

<a name="v1.8.2"><h2>Version 1.8.2 - released Monday, November 18th, 2013</h2></a>

<h3>Features(?) Added</h3>
<ul>
<li>Updated frontpage style to better scale to different screen sizes,
and maybe even look better.</li>
<li>Upgraded to Enyo 2.2.</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>After posting, you are now redirected to your user page.  This was
intended behavior, but broken for the past few releases.</li>
<li>Fix clicking on internal hash/user references in Firefox.</li>
<li>Properly handle nonexistent/empty hash/user pages.</li>
</ul>

<a name="v1.8.1"><h2>Version 1.8.1 - released Sunday, July 2, 2013</h2</a>

<h3>Features Added</h3>
<ul>
<li>Added a flag to account metadata allowing accounts to be "muted" so
their posts do not update tags/references/subscription indices.</li>
<li>Post indices are no longer preallocated, but instead created as
sparse files.</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Numerous safety and integrity checks added</li>
<li>The internal segment counter wasn't being updated when switching
segments, causing deadlock on the 65537th entry.</li>
<li>Record count is now updated after successfully writing a record
rather than before.</li>
</ul>

<a name="v1.8"><h2>Version 1.8 - released Thursday, May 30, 2013</h2></a>

<h3>Features Added</h3>
<ul>
<li>Passwords are now hashed with scrypt instead of lame old MD5. Source
for scrypt 1.1.6 is embedded as it provides no readily usable
library.</li>
<li>Password formats are automatically upgraded upon login.</li>
<li>mailto: is now supported in markdown links</li>
<li>Added new <a href="/doc/privacy_data.html">Privacy and Data
  Policies</a></li>
</ul>

<h3>Editing</h3>
<ul>
<li>Minor edits to the documentation.</li>
</ul>

<a name="v1.7"><h2>Version 1.7 - released Wednesday, January 16, 2013</h2></a>

<h3>World Turned Upside-Down</h3>
<ul>
<li>Rewrote front-end using Enyo 2.1</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Links are now recognized inside parentheses/brackets, provided there
is whitespace ahead of it.</li>
</ul>

<a name="v1.6.3"><h2>Version 1.6.3 - released Thursday, January 19, 2012</h2></a>

<h3>Features Added</h3>
<ul>
<li>Added password change support</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Added missing application/json Content-type to success/failure
responses</li>
</ul>

<a name="v1.6.2"><h2>Version 1.6.2 - released Sunday, January 15, 2012</h2></a>

<h3>Features Deprecated</h3>
<ul>
<li>Blerg.httpd (the standalone HTTP Blërg server) is now deprecated.
It will not get new features and has been removed as a default build
target.  Libmicrohttpd is just too obtuse to continue to support.  Look
for a FastCGI version in the future, or maybe a new standalone version
written using <a href="https://github.com/ellzey/libevhtp">libevhtp</a>.</li>
</ul>

<a name="v1.6.1"><h2>Version 1.6.1 - released Monday, November 7, 2011</h2></a>

<h3>Features Added</h3>
<ul>
<li>Added support for inline media formats (mp3/ogg) played via the
audio tag</li>
<li>Added autoconf build system graciously provided by Boris
Manojlovic</li>
</ul>

<a name="v1.6"><h2>Version 1.6 - released Monday, July 18th 2011</h2></a>

<h3>Features Added</h3>
<ul>
<li>Passwords are now stored as MD5 hashes. See
tools/convert_to_md5_passwords.pl to convert old passwords.</li>
<li>Added notification of new messages from subscribed feeds.</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Users can now log in from multiple locations without clobbering
their previous login.</li>
<li>Fixed some relative URL problems so that Blërg can be more easily
used on a subpath.</li>
</ul>

<a name="v1.5"><h2>Version 1.5 - released Friday, March 4th 2011</h2></a>

<h3>Features Added</h3>
<ul>
<li>Added "stalking" (follow)</li>
<li>Added markdown-style headers (lines beginning with #), wiki-style
headers (lines beginning with =), lists (groups of lines beginning with
* separated by blank lines), and quoting (lines beginning with &gt;)</li>
<li>Added permalinks to posts</li>
<li>Added a new kind of ref tag (@user/N) that links to a specific post,
as well as a reply link that auto-enters the perma-ref tag into the
content of your post</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Removed the extra whitespace at the end of multi-line posts.</li>
<li>Fixed paging so that each page is its own URL, which means the back
button works in more places</li>
<li>Fixed a number of places where switching views would do nothing</li>
<li>Allow formatting metachars to be escaped with backslashes</li>
</ul>

<a name="v1.0"><h2>Version 1.0 - released Wednesday, February 9th 2011</h2></a>

<h3>Features Added</h3>
<ul>
<li>Added recent tags and posts display</li>
<li>Added a link to see chatter for users other than yourself</li>
<li>Changed ref/tag link colors to be gray so that they aren't confused
with hyperlinks</li>
</ul>

<h3>Bugs Squashed</h3>
<ul>
<li>Fixed a few XSS vulnerabilities in regex parsing for urls</li>
<li>Fixed tag accessibility issues for longer tags</li>
</ul>

<a name="v0"><h2>Version 0.ofuckreddit - released Thursday, Jan 13th 2011</h2></a>

<h3>Initial Release</h3>

</body>
</html>