1.5.4: October 9, 2008
 * Fixed a visual bug in which clicking up or down to reorder your notebooks
   didn't display correctly.

1.5.3: October 9, 2008
 * Safari and Chrome web browsers are now supported (beta):
   * You can now create and end links.
   * Underline and strikethrough now work.
   * Pulldowns for search suggestions, importing, and exporting show up.
   * Pulldowns on inline images are now positioned correctly.
   * Uploading files now works reliably instead of just once.
   * Note resizing (growing and shrinking) works (mostly) as expected.
 * Improved page loading speed and fixed a rare session locking timeout bug
   by removing all implicit session locking.
 * Fixed a bug that broke the Luminotes Desktop product download page if
   PayPal took too long to notify Luminotes of the purchase.

1.5.2: October 1, 2008
 * Leading/trailing spaces in note titles are now ignored when making links
   to such notes. This means that creating a link titled "my note" to a note
   called "my note  " now works properly.
 * Leading/trailing spaces and newlines in note titles and contents are now
   stripped out when exporting to CSV.
 * Fixed a bug in which clicking the "export" link when the current note was
   unsaved did not open the export pulldown.
 * Changed the warning about Safari/Chrome/Opera incompatibility to be an
   in-page message instead of a popup alert so as to be slightly less
   obnoxious.

1.5.1: September 28, 2008
 * Implemented CSV exporting, so now you can export all of your notes to a
   CSV spreadsheet file. This currently doesn't include revision history or
   attached files.
 * Improved CSV importing so you can export a CSV of your notes from one
   Luminotes installation and import that CSV into a different Luminotes
   installation.
 * Fixed a bug in which the image preview page didn't correctly handle
   filenames containing special characters.

1.5.0: September 12, 2008
 * Initial release of Luminotes Desktop!
 * Fixed a Luminotes Desktop Internet Explorer bug in which note links within
   the "download as html" document pointed to notes in the local Luminotes
   installation instead of notes within the stand-alone document.
 * Fixed a bug in which Luminotes Desktop file attachment did not always work
   due to incorrect upload progress reporting.
 * In the revision changes pulldown, no longer showing "by desktopuser" in
   Luminotes Desktop.
 * Added a Luminotes Desktop download page.
 * Added code for supporting product download access.

1.5.0 beta 1: August 27, 2008
 * Completed the Luminotes Desktop Windows installer.
 * Improved logging, so tracebacks in production and desktop mode actually go
   to a file. Also removed logs on startup to prevent endless log growth.
 * Added a usb_luminotes.bat Windows batch file and a usb_luminotes.sh shell
   file to run Luminotes from a USB drive.
 * Moved "files" directory into ~/.luminotes or %APPDATA%\Luminotes.
 * NOTE: After upgrading to this release, you must move your Luminotes
   "files" directory into ~/.luminotes/ or you will not be able to access
   your uploaded files:
     mkdir ~/.luminotes
     chmod 700 ~/.luminotes
     mv files ~/.luminotes

1.4.27: August 22, 2008
 * Fixed a bug in tools/initdb.py and tools/updatedb.py that caused them to
   only use some of the configured settings.
 * Progress on Luminotes Desktop, including the Windows installer.

1.4.26: August 20, 2008:
 * Ported all database code to support SQLite in addition to the existing 
   PostgreSQL support. This is a necessary first step for Luminotes Desktop.
 * Updated all unit tests to test against an in-memory SQLite database. This
   increases unit test code coverage to include Luminotes SQL code.
 * Fixed a rare bug in which undeleting a note via "undo" sometimes does not
   show the undeleted note even if the undelete is successful.

1.4.25: August 11, 2008:
 * Fixed a bug in which the character encoding of uploaded CSV files was not
   properly detected and used to decode the file. Note that this fix
   introduces a new dependency: http://chardet.feedparser.org/ found in the
   python-chardet package.

1.4.24: August 11, 2008:
 * Added a light gray line under note title text to make it clearer that it's
   a title as opposed to just bold text.
 * Fixed a bug in Firefox 3 in which disabling title text did not work.
 * Fixed a bug in Firefox 2 and 3 in which pasting a paragraph tag into a
   note caused the enter key to change from inserting a line break tag to
   inserting a paragraph tag.

1.4.23: August 11, 2008:
 * New notebook import feature for importing notes from a CSV file. (Beta.)
 * Enforcing maximum note length after stripping the note of any disallowed
   HTML tags instead of before. This makes Luminotes work better when cutting
   and pasting lots of text from MS Word.

1.4.22: August 1, 2008:
 * Skipping clearing of messages/errors if they haven't been open long enough
   to read.
 * Fixed a bug in which renaming a link title and then pressing ctrl-L would
   replace the link destination.

1.4.21: July 30, 2008:
 * Fixed bug in IE 7 in which there was too much horizontal spacing at very
   wide resolutions.
 * Increased speed of note hiding animations.

1.4.20: July 30, 2008:
 * By popular demand, added a "save" button that becomes grayed out when
   everything is saved.
 * Now displaying "saving" status text in addition to "loading".
 * Made both left and right navigation areas of the page have a fixed
   position, so they stay in one spot even when you scroll your notes.

1.4.19: July 29, 2008:
 * When scrolling to and then highlighting a note, do so serially instead of
   in parallel.
 * Made speed of scrolling to a note or message slightly faster.
 * Removed big yellow "sign up for free" box from the sign up page itself.

1.4.18: July 28, 2008:
 * Fixed a bug where clicking the link for an updated note in an RSS feed did
   not properly redirect to that note after login.
 * "Nothing but notes" mode now hides the toolbar as well.
 * Rephrased some of the links to the signup page.

1.4.17: July 24, 2008:
 * Updated the product tour with an analogy to index cards.

1.4.16: July 18, 2008:
 * Slightly increased the size of the file upload pulldown to look better in
   various browsers (and not cut off text within the frame).
 * When you invite other people to view or edit your notebook, you can now
   see the invite link they'll receive in case you want to copy and paste it
   to them yourself.

1.4.15: July 15, 2008:
 * Reduced the size of the font within the upload pulldown to match the other
   pulldowns.
 * Added some frequently asked questions (and answers) to the pricing & sign
   up page.
 * Updated the original FAQ page accordingly.

1.4.14: July 12, 2008:
 * Fixed a bug in which pressing tab/shift-tab when a suggest pulldown was
   open caused the current text to indent/outdent.

1.4.13: July 11, 2008:
 * New "revert" button to roll back a note's contents to an earlier revision.

1.4.12: July 7, 2008:
 * Fixed a bug in which tab/shift-tab for indending/outdenting nested lists
   no longer worked. Also made it work in IE as well (which it never has).
 * controller.Root.guide() now accepts an optional note_id parameter.
 * Fixed a bug in which clicking a note title suggestion from within the link
   info title field sometimes didn't update the link properly. This was due
   to a race condition between the link info pulldown's onblur/onchange
   handler and the suggestion onclick handler, both of which tried to update
   the link, title, and summary at about the same time.
 * Possibly fixed a bug in which the displayed suggestions sometimes did not
   reflect the most recent characters typed.

1.4.11: June 29, 2008:
 * Fixed bug in which bolding of suggest-as-you-type search text was case
   sensitive. Now it's case insensitive.

1.4.10: June 29, 2008:
 * New suggest-as-you-type feature for creating a new link, setting a link's
   destination, and even for searching a notebook.
 * Fixed a bug where typing a space within a link in IE caused the space
   to be added to the end of the link.
 * Backspacing at the end of a link in IE no longer ends the link.

1.4.9: June 25, 2008:
 * When linking to a note by title, the note resolution is now
   case-insensitive instead of case-sensitive.

1.4.8: June 23, 2008:
 * Replaced "add new notebook" link with new notebook button next to
   "notebooks" heading.
 * Reorganized and renamed some notebook links on the right side of the page.

1.4.7: June 21, 2008:
 * New favicon.ico image that looks slightly less dated.

1.4.6: June 18, 2008:
 * New screenshot and new tour shots.

1.4.5: June 18, 2008:
 * You can now resize embedded images (small, medium, or large).
 * Fixed a bug that potentially caused link pulldowns to open in the wrong
   location when the page was scrolled past the top.

1.4.4: June 17, 2008:
 * Links to embedded images now show up within the note tree's list of links.
 * Links to files that have not yet been uploaded (or have been deleted) are
   now excluded from the note tree's list of links.

1.4.3: June 16, 2008:
 * Fixed a bug in which an image thumbnail could not be loaded unless
   you had a valid session. This prevented thumbnails from showing up
   if, for instance, you were reading the Luminotes blog from an RSS
   reader that didn't establish a session.

1.4.2: June 16, 2008:
 * Fixed a bug that caused image files to get deleted if there were multiple
   images embedded within a single note.
 * Prevented a link pulldown from auto-opening by hovering if another
   pulldown is already open.

1.4.1: June 16, 2008:
 * Implemented support for embedded images within wiki notes.
 * You can now open a link pulldown by simply hovering the mouse over a link
   for a few seconds.
 * Tweaked the popup positioning code to prevent popups from getting smashed
   into the right side of the page.
 * Updated tools/set_plan.py to automatically update a user's group
   membership.
 * Removed Google AdWords <script> tag from distributed Luminotes tarball,
   as not every installation of Luminotes uses AdWords.

1.4.0: June 9, 2008
 * Implemented some basic user administration features, allowing you to
   create Luminotes users yourself.
 * Added new rate plans with support for user administration.
 * Wrote a tool for manually updating a user's rate plan: tools/set_plan.py
 * Refactored some of the client-side form-handling code to cut down on
   special-case hacks.
 * NOTE: After upgrading to this release, you must restart memcached to clear
   the cache. Failing to do so will cause errors with the User object.

1.3.40: May 27, 2008
 * Added some minor product page tweaks like meta description tags.

1.3.39: May 27, 2008
 * Removed key binding for title button (ctrl-T), since it was interfering
   with tab opening in Firefox.

1.3.38: May 26, 2008
 * Attempting to access the RSS feed for a non-existent notebook now
   displays a somewhat informative message in the feed instead of just
   silently raising an error.

1.3.37: May 20, 2008
 * Fixed a bug where image preloading loaded incorrect paths for
   certain images.

1.3.36: May 19, 2008
 * Fix for bug where read-write notebooks that the anonymous user had
   read-only access to would show up as read-only, even when logged in.

1.3.35: May 19, 2008
 * Potential fix for bug where caching of Notebook objects can cause
   read-write notebooks to display as read-only.

1.3.34: May 19, 2008
 * Improved performance of searching multiple notebooks.

1.3.33: May 19, 2008
 * Searching now displays results from multiple notebooks and not just the
   current notebook.

1.3.32: May 19, 2008
 * Decreased some font sizes so more note links don't wrap as much.

1.3.31: May 18, 2008
 * Improved the detection of whether an existing note has been altered and
   thus needs to be saved to the server.
 * Expanded workaround for IE iframe positioning bug to include IE 7.

1.3.30: May 16, 2008
 * Updated download page with mention of new Mercurial source repository.
 * Added Mercurial link on faq page.

1.3.29: May 16, 2008
 * Added support for database hostname and ssl mode in configuration file.

1.3.28: May 14, 2008
 * Updated the pricing page with more info about each feature.

1.3.27: May 14, 2008
 * Fixed a bug where the toolbar didn't auto-resize if there were no
   notes open.

1.3.26: May 13, 2008
 * New strikethough toolbar button.

1.3.25: May 13, 2008
 * Added timed autosave.

1.3.24: May 12, 2008
 * Created different sizes of toolbar buttons.
 * Made the toolbar auto-resize based on browser window size.

1.3.23: May 9, 2008
 * Fixed tools/release.sh to include an empty session directory in the
   produced tarball. Without a session directory, installing and running 
   Luminotes server would yield session deadlock errors.

1.3.22: May 8, 2008
 * In send_invites(), no longer implicitly assuming rate plan 0 has
   notebook_collaboration set to False.

1.3.21: May 8, 2008
 * Passing new yearly parameter to main page.

1.3.20: May 8, 2008
 * Made signup support yearly subscriptions.

1.3.19: May 8, 2008
 * Support for yearly subscriptions.

1.3.18: May 7, 2008
 * No longer showing "settings" link unless you're viewing your wiki.
 * In account settings note, now showing link to upgrade/downgrade/cancel.

1.3.17: May 7, 2008
 * Implemented basic user account settings. Now you can change your email
   address.
 * Fixed a bug where if you load a particular note in its own window, and
   that note is a startup note, it shows up in the note tree twice.

1.3.16: May 6, 2008
 * Fixed a bug where an invite sent for a notebook with an accented unicode
   name would cause a UnicodeEncodeError upon sending the invite email. Now
   such invites are encoded as quoted-printable UTF-8, while other invites
   continue to be 7-bit ASCII.

1.3.15: May 6, 2008
 * Fixed a bug where the "show on startup" checkbox did not appear checked if
   you created a startup note, hid it, and then opened it the note tree area.
 * Possibly fixed a bug where IE 7 would fail to download as HTML via HTTPS
   due to cache issues.

1.3.14: May 5, 2008
 * Fixed a database indexing bug that prevented notes with really long (~2700+
   character) titles from saving correctly.
 * Changed the literal quotation character in the starting wiki note to the
   "&quot;" character entity so it doesn't show up as a change in the diff.
 * Fixed a bug where attempting to load a notebook preview without access
   would give a "list index out of range" error instead of an access error.
 * Fixed a bug where the Valid_id() validator would raise a TypeError when
   given a None value. Now raising a ValueError instead.
 * Fixed a bug where saving a note unsuccessfully could cause the note's
   title to show up in the recent updates list.
 * If there is an error saving a note, then even if "hide" was clicked, the
   note is not hidden. Instead, the note stays open so that the user can try
   again.
 * Fixed a bug where renaming a note to have no title caused the title to
   show up as completely blank in the recent updates list. Now it shows up as
   "untitled note".
 * Made it clearer whether the invitee has accepted a particular invite yet.

1.3.13: May 5, 2008
 * Instructions for enabling JavaScript, linked from various forms that
   require it.

1.3.12: May 3, 2008:
 * Fixed yet another diff-breaking edge case. This one had to do with
   inserting italicized text right before some existing italicized text.

1.3.11: May 2, 2008
 * Fixed another bug that prevented diffs from working. This time, those with
   <br/> tags didn't parse correctly.

1.3.10: May 2, 2008
 * Fixed a bug that prevented diffs from working for notes with links.

1.3.9: May 2, 2008
 * When viewing a note's revision, changes since the previous revision are now
   shown in red strikeout (deletions/modifications) and green text
   (additions/modifications).

1.3.8: April 29, 2008
 * Can now load children links for a note that's in the trash.

1.3.7: April 29, 2008
 * Several minor font size and other UI changes.

1.3.6: April 28, 2008
 * Can now click "more" link to display more than ten "recent updates".

1.3.5: April 24, 2008
 * Reducing the number of links in the header by consolidating several into
   one "support" link.

1.3.4: April 24, 2008
 * Better support for RSS feeds of notebooks with unicode names.
 * Now dynamically altering RSS feed link when notebook is renamed.

1.3.3: April 22, 2008
 * RSS subscription support for each wiki notebook.

1.3.2: April 18, 2008
 * New "nothing but notes" mode, allowing you to hide everything on the page
   except for your notes and the toolbar.

1.3.1: April 18, 2008
 * Now if you try to load a page where access is required, and you're not
   logged in, you'll be redirected to a login page. After you login, you'll
   be redirected to the page you were originally trying to access.
 * Fixed bug where recent notes were ordered by creation time instead of
   revision time.

1.3.0: April 16, 2008
 * Created a new hierarchical note tree area for browsing notes.
 * Added a list of recent notes.
 * Made links to external sites displayed with a little icon, at least in
   Firefox.

1.2.24: April 4, 2008
 * Several cosmetic and layout changes to the wiki editing page.
 * Added rss icon to blog subscribe link.

1.2.23: April 2, 2008
 * Now displaying a thumbnail in the file info box for uploaded image files.
 * When you click on a link for an image file, a new window opens where you
   can see the full image and optionally download it.

1.2.22: March 30, 2008
 * Made Html_cleaner strip HTML comments, which Open Office adds for styling
   purposes.

1.2.21: March 30, 2008
 * Made Html_cleaner support many more HTML tags and attributes, so users can
   cut and paste from other programs into Luminotes.

1.2.20: March 29, 2008
 * Fixed a bug in which closing a Luminotes window with an unsaved note in
   Firefox would occasionally not save it.

1.2.19: March 26, 2008
 * Increased default socket timeout so as not to timeout slow clients.
 * Fixed a bug in which Files.purge_unused() deleted the file for a file link
   that had a quote_filename parameter.

1.2.18: March 24, 2008
 * Newly redesigned upgrade/pricing/signup page. You can now signup for a
   Luminotes account and upgrade to a paid plan all at once.
 * Added some new user quotes on the front page.

1.2.17: March 18, 2008
 * Internet Explorer expects quoted download filenames, while Firefox
   doesn't. So I took that into account by quoting conditionally based on the
   detected browser.

1.2.16: March 18, 2008
 * Fixed a bug that prevented the upload of filenames with special characters
   in them.

1.2.15: March 17, 2008
 * Fixed the bugs introduced by the previous released.

1.2.14: March 17, 2008
 * Added ability to reorder notebooks on the right side of the page.
 * Fixed database transaction leak that was wasting memory.

1.2.13: March 11, 2008
 * When the "all notes" note is the only note open, it now actually hides when
   the "hide" button is clicked.

1.2.12: March 11, 2008
 * Resizing browser text now causes wiki notes to resize accordingly.

1.2.11: March 11, 2008
 * Added a Debian init script to run the Luminotes server from
   /etc/init.d/luminotes.

1.2.10: March 11, 2008
 * More intelligent scrolling when displaying messages and errors.

1.2.9: March 10, 2008
 * Show list of all notes on startup if there are no startup notes and the
   notebook isn't empty.

1.2.8: March 10, 2008
 * No longer popping up a link info box when clicking on a note link.

1.2.7: March 10, 2008
 * Fixed a bug where, after you highlighted a link and clicked the link button
   to unlink it, the link info box popped up.
 * Actually checking in cache changes that were supposed to be in previous
   release.

1.2.6: March 10, 2008
 * Now creating a new cache connection for each usage of the cache. This will
   prevent crashes that arose when multiple threads tried to share a single
   connection. 

1.2.5: March 7, 2008
 * Fixed a database bug that could have caused a cache save before a commit.
 * Client code now only calls save_note() on the server when necessary, and
   takes startup flag into account.

1.2.4: March 6, 2008
 * New product tour and new screenshots.
 * Added a work-around for a database cache bug that prevented the file upload
   progress bar from showing.
 * Added a work-around for a UI bug that prevented a note from being saved if
   only its startup flag changed.

1.2.3: March 4, 2008
 * Client-side JavaScript code now only calls save_note() on the server when
   necessary.

1.2.2: March 4, 2008
 * Introduced database object caching to improve performance.
 * Wrote a database reaper script to delete unused notes, notebooks, etc.
 * Added some database indices to improve select performance.
 * Now scrolling the page vertically to show opened errors and messages.

1.2.1: February 29, 2008
 * Updated the front page of the site to look nicer and better explain things.

1.2.0: February 25, 2008
 * Users can now upload files to attach to their notes.

1.1.3: January 28, 2008
 * Now, if you delete a notebook and the only remaining notebook is read-only,
   then a new read-write notebook is created for you automatically.
 * Made use of HTML <label> tag for UI checkboxes and radio buttons.
 * Replaced a workaround for a Firefox DesignMode bug. The bug causes a jumping
   text cursor. The previous workaround involved appending <span> tags and had
   other negative side-effects. The new workaround involves removing extra <br>
   tags.

1.1.2: January 22, 2008
 * You can no longer edit notes in the trash. You have to undelete them first.
 * Fixed several race conditions between save_note() and other note-mutating
   controller methods by serializing their calls in the client. This fixes
   a bug that prevented note undeletion from working consistently.

1.1.1: January 17, 2008
 * Beefed up the tour and added some screenshots.

1.1.0: January 15, 2008
 * Users can now upgrade their Luminotes accounts to get additional features
   and storage.
 * Ability to invite people to your notebook as a collaborator or owner.
 * Feature to preview a notebook as a viewer would see it.
 * Note revisions list now include username of the user who made that
   revision.
 * If you go to luminotes.com when you're logged in, you'll be automatically
   redirected to your first notebook.
 * Fixed bug where passwords with special characters broke password hashing.
 * Fixed bug that prevented you from opening a note with a title that looked
   like an external URL.
 * Fixed bug where link info box summaries sometimes contained HTML tags.

1.0.4: December 30, 2007
 * Ability to invite people to view your notebook.
 * When the web browser is resized, all notes are automatically resized as well.
 * Fixed note focusing in Safari.
 * Fixed note state detection (bold, italic, etc.) in Safari.
 * Improved input validation.

1.0.3: November 28, 2007
 * Updated logo, which is now an image and could be theoretically replaced for
   branding purposes.

1.0.2: November 28, 2007
 * Refactored code that creates note summaries for the link info box.
 * Improved error reporting when a loading a page that causes an exception.

1.0.1: November 17, 2007
 * Ability to create, rename, delete, and switch between multiple wiki
   notebooks in a single account.

1.0.0: November 12, 2007
 * Initial release.
