Zotero 2.0 Version History

For changes in Zotero 2.1 releases, see the 2.1 changelog.

Changes in 2.0.9 (October 13, 2010)

  • Security fixes
    • Rich-text editor allowed execution of arbitrary code with full privileges
      • JavaScript in notes is now stripped by editor and sync server
      • Editor now runs with reduced privileges
      • Credit to Mario Heiderich for discovery
    • JavaScript in URL field was executed (with minimal privileges) when viewing item
      • JavaScript in URL field is now ignored
      • Credit to Mario Heiderich for discovery
  • Edit Bibliography dialog was broken
  • Syncing
    • Addressed ZFS compatibility problems with proxy servers and security software
      • Replaced HEAD requests with GET requests
    • Sync credentials weren't cleared if username was removed before password
    • Fixed potential “Invalid response retrieving file upload parameters” ZFS error
  • Fixed dragging item to tag with both automatic and manual versions
  • Misspelled words are now underlined while typing in rich-text notes
    • Suggested corrections are not currently available
  • Added warning to Sync→Reset pane
  • Use display title for related items in reports
  • Creators were out of sequence in RDF export with >10 creators
  • Localization
    • Removed incomplete de-AT and de-CH localizations
    • “Afficher le fichier” and “Localiser le fichier” were reversed in the French localization
    • Fixed typo in German locale
  • Fixed encoding issue with em dash in sync error message
  • Fixed “%S” showing up instead of hostname in WebDAV SSL certificate error
  • Don't display trash message when deleting from group collection
  • Includes various translator updates not pushed to clients

Changes in 2.0.8 (September 9, 2010)

  • Fixed startup crash in Firefox 3.5 due to Firefox bug (since 2.0.7)

Changes in 2.0.7 (September 8, 2010)

  • Fixed secondary sort issue in bibliographies (since 2.0.5)
  • Sync
    • Suggest restarting Firefox and/or computer to fix file sync errors
    • Link to SSL certificate error KB page on certificate error
    • Fixed a sync error due to missing local libraries
    • Fixed a sync error that could cause “Error processing uploaded data”
    • Find too-long tags not associated with items
    • Conflict resolution window
      • Resized window better for smaller screens
      • Added instructions line mentioning Next/Done button
  • Fixed issue that could affect max characters full-text indexing setting
  • (dev) Eliminated support for proprietary ZoteroItemType meta tag for UnAPI

Changes in 2.0.6 (September 3, 2010)

  • Fix an invalid translator that was preventing updating of bundled translators (since 2.0.4)

Changes in 2.0.5 (September 2, 2010)

  • Fixed broken alphabetical sorting in some styles (since 2.0.4)
  • Don't auto-sync on Zotero pane open if a manual sync is required

Changes in 2.0.4 (September 1, 2010)

  • Syncing
    • Fix error (previously requiring a Full Sync to fix) that could occur if an attachment/note was added to a collection on one side and made a child item on the other
    • Fixed an error that could cause endless sync icon spinning
    • Fixed an issue that could cause sync upload errors
    • WebDAV server SSL errors weren't being properly displayed
    • Fixed constant syncing due to future-dated items
    • Fix “empty path” file sync error
    • Part of over-quota message wasn't being displayed
    • Display better messages for NS_ERROR_FAILURE file sync errors
    • Display better message for error affecting Kaspersky users
    • Display better message for “Hash not found in HEAD response” error
    • Display correct error in place of “JavaScript component threw a number as an exception” error
    • Work around an issue where a WebDAV server didn't update the timestamp of an empty file on PUT
  • Word processor integration
    • Prevent more than one Insert Citation click
    • When editing a citation, the reference was not selected if it did not exist in the currently selected collection within the Zotero pane
    • Descending sorts were unstable
    • Fixed superscript/subscript overruns in RTF output
    • Fixed “The command is not available because no document is open” error
    • Use proper display titles for selected letter/interview items
    • Document preferences window could appear in wrong screen position on Windows
  • Blacklisted irrelevant “CVE-2009-3555” messages in error reports
  • Fixed startup error due to incorrect integration pipe permissions
  • Fixed startup error if /Users/Shared doesn't exist on OS X
  • Don't include deleted items in “Export Library” output
  • Adding by PMID didn't add new item to selected group library
  • Searches for exact creator names didn't match creators without first names
  • Fixed numerous issues with site translators
  • Handle invalid filenames without failure during import
  • Proxy: Don't automatically associate .edu sites (except Project MUSE)
  • Fixed incorrect message for newer DB version error
  • Fixed error removing >1000 items from a tag
  • Full-screen mode didn't restore properly
  • Parse WTN8601 dates properly
  • Fixed broken bibliography printing
  • Fixed NS_ERROR_XPC_NOT_ENOUGH_ARGS when reading blob from database (which currently can happen only in the case of bad data)
  • Developer-specific changes
    • CSL: Mapped dictionaryEntry and encyclopediaArticle to entry-dictionary and entry-encyclopedia respectively (instead of chapter)
    • GET responses are no longer cached
    • Changes for Scaffold 2.0 compatibility

Changes in 2.0.3 (May 4, 2010)

  • Fixed UI glitches during syncing
  • Always show last sync time if available in sync button tooltip
  • Replace “Report Error” with “Show File” in read-only file sync error dialog, and show full file path
  • Fixed endless sync icon spinning after read-only file sync error
  • Show only collections and saved searches from current library when creating a saved search
  • Fixed a couple issues that could cause an error when emptying the trash
  • Disabled Sync Reset feedback, since it causes endless sync icon spinning if the pref window is closed
  • Fixed upgrade error for custom styles with invalid ids
  • Fixed a couple very rare upgrade errors
  • Added autocomplete to Archive field
  • Adjusted spacing of sync error icon on Windows
  • Open support/documentation link in new tab rather than new window
  • Fixed logged progress window error when saving from translators
  • Don't open page twice when clicking link from progress window
  • (dev) Correct order of Zotero.Utilities.arrayDiff() parameters in comment

Changes in 2.0.2 (March 13, 2010)

  • Don't prompt for master Firefox password on every startup (since 2.0.1)
  • Show sync status in all windows
  • Don't attempt to auto-sync on Zotero pane open if a sync is already in progress
  • Restart sync if items were changed during upload to avoid 404 file sync errors
  • Changing data directory location required two restarts in Firefox 3.6 on Windows

Changes in 2.0.1 (March 11, 2010)

  • Load start page on first run
  • Improved sync error messages
    • Display proper message for “(NS_ERROR_FILE_ACCESS_DENIED) [nsIFile.lastModifiedTime]” file sync error
    • Restored proper feedback for Reset options and added a warning to Restore to Server that there may be a delay before data shows up online
    • Clarified manual intervention message and removed “Report Error…” button
  • Fixed restoration of full-screen mode when opening Zotero pane
  • Fixed sync error due to invalid search ids
  • Added “submitted” to CSL date variables
  • Put word processor integration pipe in /Users/Shared on OS X for users accessing their home directory over AFP
  • Handle spaces and em dashes in page ranges
  • Update localizer names in About pane

Changes in 2.0 Final (February 18, 2010)

  • Added additional protections against proxy looping
  • File sync
    • Fixed file sync error due to incorrect HEAD response
    • Fixed slow sync initialization due to existing modification time mismatches
    • Auto-correct most (if not all) cases of “Unexpected status 404 in […]ZFS._getFileUploadParameters()”
    • Fixed “fileName.replace is not a function” WebDAV file sync error
    • Made “Verify Server” fail if WebDAV server won't serve extensionless files (e.g., IIS 6 in default configuration)
  • Fixed some cases of incorrect PDF metadata retrieval
  • Stored files with '%' in filename couldn't be found on Windows
  • Added Cancel button to word processor plugin document preferences
  • Clarified various error messages
  • Restored autocomplete for “Library Catalog” (formerly “Repository”)
  • Made errors updating translators and styles on upgrade non-fatal
  • CSL
    • Fixed error with “numeric-leading-zeros” parameter
    • Added support for “container-author” (bookAuthor)

Changes in 2.0rc5 (February 4, 2010)

  • Fixed error opening Zotero pane if “Repository” column was displayed in middle pane
  • Fixed syncing error for saved searches containing “Repository” condition
  • Day formatting didn't respect CSL's “numeric-leading-zeros” parameter
  • Auto-reset sync in case of unhandled delete conflict

Changes in 2.0rc4 (February 4, 2010)

  • Fixed error in non-English locales

Changes in 2.0rc3 (February 4, 2010)

Functionality changed or added:

  • Sync error handling
    • Display nicer file sync error messages that hide technical details and suggest retrying the sync before reporting
    • Display full sync error in error icon tooltip
    • Use a different sync error icon for version cut-offs
  • Prompt for PDF tools installation if necessary when attempting to reindex PDF
  • Unbind Backspace from collection delete on Windows/Linux
  • Display file modification time rather than item modification time in attachment pane
  • Increased toolbar icon spacing and item pane tab padding on Windows
  • Added warning to citation/bibliography editor that refresh will no longer work
  • Mapped RIS “ED” tag to editor for import and export (details)

Item type/field updates:

  • Renamed 'Repository' to 'Library Catalog' and added 'Archive'
  • Moved 'Repository' data to 'Archive' for item types other than books, periodicals, and theses
  • Mapped 'Archive' to CSL 'archive'

Bugs fixed:

  • Fixed error performing a quoted quick search or advanced search with Attachment Content condition
  • For inter-library drag to a collection, if a linked item already exists in the library, add the linked item to the collection rather than skipping the item
  • Syncing
    • Fix errors syncing files with filenames containing extended characters
    • Display more helpful error when trying to sync files with invalid characters in their filenames
    • Fixed “ItemID not set for object before attempting to load data” conflict resolution error
    • Fixed “getFileName() can only be called on attachment items in Zotero.Item.getFilename()” conflict resolution error
    • Use millisecond resolution for file sync timestamps
      • Fixes problem with slow sync initialization on some systems
  • Full-text indexing
    • Fixed Zotero crash attempting to index an unindexable link attachment twice
    • Fixed error indexing documents containing words with invalid characters
    • Log error on indexing failure, and include note about filenames with extended characters if applicable
    • Display “Reindex Item” icon even if PDF tools aren't installed (including for non-PDF attachments)
  • Fixed modifier key handling when clicking View Attachment
  • Purge tags immediately when deleted from tag selector
  • Remove redundant cancel icon in tag selector search box in Fx3.5+
  • Fixed captions in error reporting and upgrade wizards on Windows

Changes in 2.0rc2 (January 26, 2010)

  • Fixes “No fields in itemTypeFields” upgrade error in 2.0rc1

Changes in 2.0rc1 (January 26, 2010)

Functionality changed or added:

  • Zotero is now licensed under the GPLv3
  • Added ability to reorder creators (authors, editors, etc.)
    • “Move Up” and “Move Down” options in the creator type menu
  • DOI is now extracted from any string in Add Item by Identifier window
    • For example, the “doi:” prefix no longer needs to be removed manually
  • Saved searches can now be added to groups
    • Create via right-click on group
  • Restored proper support for note dragging, with separate output for text, rich text, and HTML-code-as-text (via Copy HTML pref)
  • More helpful file sync error messages
  • Improved switching between Book and Book Section item types
    • Title is moved to Book Title when changing item type from Book to Book Section, and Book Title is moved to Title when going from Book Section to Book if there's not also a title
    • Short Title is cleared when moving between Book and Book Section if Title/Book Title is automatically transferred
  • Improved date support
    • 'yesterday'/'today'/'tomorrow' and localized equivalents (case-insensitive) can be used for date field input and in date searches (e.g., [Date Added] [is] ['yesterday'])
    • Cleaner display of dates without times in 'Accessed' field
  • When creating or adding to a note from web page context menu, put text in <blockquote> with 'cite' attribute
  • “Saved Search” is now a separate search condition from “Collection”
  • URL in attachment pane is now draggable
  • Cyrillic capital letters in author names are now split into separate initials when saving from various sites (e.g., Google Scholar)
  • Removed in-development warning from Sync pane of the preferences
  • Installation/upgrade
    • Restored Quick Start Guide item creation and first-run tab for new installations
    • Added documentation link before 1.0→2.0 upgrade
    • Added database integrity check before 1.0→2.0 upgrade

Item type/field updates:

  • For “Bill”, added “Cosponsor” creator type
  • For “Book Section”, added “Book Author” (not yet available via citation styles)
  • For “Case”, added “Author” as primary creator type instead of “Counsel”
  • For “Computer Program”, added “Date”
  • For “Film”, mapped “Distributor” to “Publisher” and added “Genre” mapped to “Type”
  • For “Radio Broadcast” and “TV Broadcast”, replaced “Series Title” with “Program Title” mapped to “Publication Title” (CSL field container-title rather than collection-title)
  • For “Patent”, added “Country” and “Issuing Authority” fields, and replaced “Date” with “Filing Date” (not currently available via citation styles). Kept “Issue Date” mapped to “Date”.
  • For “Podcast”, mapped “Audio File Type” to “Medium” rather than “Type”
  • For “Thesis” and “Newspaper Article”, added “Place”
  • For “Thesis”, replaced “Pages” with “# of Pages”
  • For audio/visual item types, “Recording Type” mapped to “Type” is now “Format” mapped to “Medium”


  • Made most new 1.5/2.0 strings localizable
  • Added latest translations from BabelZilla

Bugs fixed:

  • Sync
    • Don't keep trying to auto-sync if manual intervention is required
    • Fixed several creator-related sync problems
  • File sync
    • Better handle invalid characters in filenames
    • Automatically rename downloaded file to match known filename if different
    • Fixed possible 404 error during Zotero file sync
    • Don't trigger file conflict if saved file timestamp is off exactly one hour from saved timestamp (due to timezone-related issues)
    • Automatically delete .prop files that don't contain valid timestamps (WebDAV)
  • Attachments
    • Don't show annotations toolbar on file types it doesn't support (e.g., PDF)
    • Renaming an attachment file with certain extended characters could cause it to be deleted
    • When relinking a file, automatically rename file with cross-platform invalid characters (e.g., “/”) filtered out
    • Files with spaces were saved via Create New Item from Current Page with “20” in place of spaces
    • Don't show various context-menu options for imported attachments in groups if no file editing access
    • Spacebar didn't work on attachment view/show buttons
  • Word processor integration
    • Fixed sorting bug
    • Preserve underline and small caps in citation editor
  • Cross-machine consistency
    • zotero://report, zotero://select, and zotero://timeline URLs are now consistent across machines
    • “Collection” and “Saved Search” search conditions are now consistent across machines
  • Fixed UI issues and “Item already exists outside of collection” error duplicating a child note or dragging child items between items
  • Fixed UI problem when adding a note to an item after deleting child notes from that item
  • Groups
    • Don't show “Show in Library” context-menu option in groups
    • Export Library was exporting items in all group libraries
    • Enabled export/bibliography/report context-menu options for read-only items
    • “New Subcollection” context-menu option was active in read-only groups
  • Don't include deleted items in collection-based operations (Export, Create Bibliography)
  • Display implicit title for related items when they're letters or interviews
  • Search
    • Fixed searches for January dates
    • Fixed autocomplete date searches
  • Shortcut key for New Item wasn't properly selecting item type menu and wasn't preventing Firefox's Recently Closed Window shortcut
  • Fixed “script stack space quota is exhausted” error with extremely large notes
  • Fixed DOI translator hang on error
  • Allow slash in second part of DOI
  • Prevent creation of blank tags via data layer
  • Fixed repeated text-to-HTML conversion of unedited plaintext notes (which might exist at this point only from direct DB writes)
  • Item type menus in metadata pane, New drop-down, and advanced search window now sort by localized string
  • Fixed collection and item highlighting when dragging items in Firefox 3.6
  • Improved spacing in conflict resolution window
  • Collection report sorting was backwards (since Fx3.5)
  • Fixed some spacing issues in metadata pane

Developer-specific changes

  • CSL
    • Mapped Zotero 'numPages' to CSL 'number-of-pages'
    • Fixed accessibility of “Accessed” field from CSL
  • Search
    • Saved searches on item type should now use 'itemType' condition rather than 'itemTypeID'
    • Search conditions are now 'collection' and 'savedSearch' rather than 'collectionID' and 'savedSearchID', though the latter can be used as shortcuts when adding
    • Zotero.Searches.getAll() now returns full Zotero.Search objects
    • Zotero.Searches.getAll() now takes an optional libraryID parameter (and defaults to personal library)
  • Updated (deprecated) Zotero.Item.toArray() to not substitute 'title' for base-mapped title fields, since this isn't done for other base-mapped fields
  • Zotero.Date.strToDate() now parses 'yesterday'/'today'/'tomorrow' and localized equivalents
  • Zotero.Utilities
    • New method Zotero.Utilities.text2html(str, singleNewlineIsParagraph)
    • New method Zotero.Utilities.ellipsize(str, len, countChars)
    • Reverse Zotero.Utilities.prototype.arrayDiff operator order to be consistent with PHP's array_diff
    • Added support for Cyrillic characters to Zotero.Utilities.cleanAuthor()
  • New method Zotero.CreatorTypes.itemTypeHasCreators(itemTypeID)

Changes in 2.0b7.6 (November 30, 2009)

Functionality changed or added:

  • Prepend '&' rather than '?' before OpenURL resolver URLs that already contain '?' character

Bugs fixed:

  • Modifying a standalone note would remove it from any collections it was in (since 2.0b7.5)
  • Using ANY mode in Advanced Search window caused all library items to be returned
  • Fixed file access error on Windows on syncing of modified files
  • Certain items could trigger 404 errors with Zotero storage
  • Fixed issue with sorting of multiple sources in one citation
  • Child items of deleted items appeared in gray (i.e., not deleted) in Trash

Changes in 2.0b7.5 (November 25, 2009)

Functionality changed or added:

  • Firefox 3.6 compatibility
    • Main Zotero extension only — not word processor plugins
  • Sync improvements
    • Support for a new server architecture that will enable syncing of larger libraries
    • Manual sync session unlocking is no longer necessary
    • Added progress feedback to sync icon tooltip during sync
  • Always rename attachment title when using Rename File from Parent Metadata
  • For open PDFs saved via Create New Item from Current Page, save web page item rather than standalone PDF attachment if snapshot pref is off or toggled off with Shift-click
  • Restore sending of cookies even if “Allow third-party cookies” is disabled (requires Firefox 3.6)
  • Item deletion changes
    • Removed option to erase child items — now implicit in deletion of parent
    • Show appropriate message when moving items to trash
    • Unbound delete action from Backspace on Windows, where it's non-standard
    • Fixed inconsistencies in Cmd/Ctrl-Delete behavior
      • Cmd/Ctrl-Delete will move item to trash without prompt in Library and move items to trash with a prompt in collection or search
  • Purge deleted creator/tag values when emptying trash
  • Added dialog when changing data directory to empty folder explaining that files need to be copied manually
  • Changed “Storage Location” to “Data Directory Location” in Advanced preferences

Bugs fixed:

  • Sync errors
    • nsIFile.remove()/NS_ERROR_FILE_ACCESS_DENIED errors
    • Shorten filenames >=254 characters on file sync error, since ext3/ext4/HFS+ all have ~254-character filename length limits
    • On Linux, if filename is over 130 characters and under 244, display filename in error message and include ecrypt suggestion
    • “UPDATE itemAttachments SET syncState=?”
    • “constraint failed” error on “REPLACE INTO itemNotes” query when a standalone note in a collection became a child note remotely
    • “itemID 'undefined' not an integer in Zotero.Item.addRelatedItem()”
    • “Module not initialized”
    • “Cannot set source to invalid item”
    • Added separate message for group quota errors
    • Don't immediately re-upload synced relations
  • Word processor integration
    • Activate Firefox on OS X 10.4
    • Fixed typo in Document Preferences window
  • Fixed error importing RDF files from Zotero 1.0 with child items in collections (via translator update)
  • Fixed open/save window importing BibTeX files without UTF-8 BOM in auto mode
    • Defaults to UTF-8
  • Advanced quick search mode was searching after every keypress
  • Fixed UI issue with search box when text was entered
  • PDFs saved via Create New Item from Current Page weren't automatically selected
  • Fixed incorrect linking of URLs without trailing punctuation in HTML bibliographies
  • Fixed XML parsing error in report generation if HTTP URL had a space in it
  • HTTPS URLs in COinS weren't being imported
  • Translators were being pulled from repository unnecessarily in new installations

Developer-specific changes

  • Zotero.Items.erase(), Zotero.Item.erase(), and Zotero.ItemTreeView.deleteSelection() no longer take eraseChildren parameter

Changes in 2.0b7.4 (October 14, 2009)

  • Fixed potential upgrade error in 2.0b7.3

Changes in 2.0b7.3 (October 14, 2009)

Functionality changed or added:

  • Restored Notes tab
    • “Add” button in Notes tab now uses inline notes editor by default instead of new window; Shift-click opens new window
  • Clarified “Background sync resulted in conflict” message
  • Added additional repair step to 1.0→2.0 DB upgrade process

Bugs fixed:

  • Sync errors
    • Address “Delete reconciliation unimplemented for collections” message
    • If collection items were added/removed on both sides, items from both sides were not always added
    • Fixed some causes of “Source item for keyed source doesn't exist”
    • Properly handle errors thrown by merge window, including cases of “Source item for keyed source doesn't exist in Zotero.Item.getSource()”
    • Fixed potential cause of “Downloaded file not found in Zotero.Sync.Storage.processDownload()”
    • If a child item is in conflict, always keep parent item if one side has one regardless of which side is chosen
    • Restored proper display of changed creators in conflict resolution window
    • Display more helpful message for “(NS_ERROR_FILE_ACCESS_DENIED) [nsIFile.remove]” error when a remotely modified file is in use locally on Windows
    • On canceling sync from CR window, don't continue with file sync
    • Display the error icon rather than the warning icon on metadata sync errors
  • Word processor integration
    • Fixed incorrect conversion of documents with bookmarks from pre-2.0b7 format
    • Don't create invalid RTF when citations have brackets
    • Fixed spurious “_sortCheckbox is not defined” errors
    • Added resizer to integration windows
    • Don't automatically resize integration windows if a button is pressed
    • Avoid potential hang if integration windows are left open
  • Fixed error when dragging item with missing child attachment to another library
  • Fixed potential restart error dragging item to collection in another library
  • When shortening long filenames during syncing due to Windows path length limit, preserve file extensions, and make filename unique if file with shortened name already exists
  • Upgraded libraries all defaulted to WebDAV syncing, even if WebDAV URL was blank — default to Zotero File Storage instead if no URL
  • Fixed overflow of tab panels in right column
  • Fixed error clicking on parent item title in unsaved new note window

Changes in 2.0b7.2 (September 23, 2009)

Functionality changed or added:

  • Added non-standard MIME types to improve RIS handling
  • Restored error icon if WebDAV server verification fails during sync
  • Display more helpful message for SSL certificate error during WebDAV server validation or sync
  • Clarified some sync error messages

Bugs fixed:

  • Sync errors
    • Fixed several causes of “Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIFile.create]” file sync error
    • Fixed “Not a valid WebDAV URL” message during server verification when /zotero was a WebDAV directory and parent directory wasn't
    • Fixed potential “Unexpected status code 404” error in downloadFile() in WebDAV mode
    • Empty attachment files caused file sync to fail
    • Resetting a server sync session failed
  • Word processor integration
    • Fixed missing item exception on documents being upgraded from 1.0
    • Show an error when field JSON is corrupt and allow user to reselect
    • Display bibliography placeholder when there is a bibliography in the document but no items cited
  • Enhanced proxy checks to prevent infinite looping
  • Fixed collections-containing-an-item highlighting on OS X
  • Fixed empty single autocomplete row in item pane
  • Fixed forcing of certain (text) file extensions to open externally
  • Display a clearer error when attempting to rename a missing attachment via right pane

Changes in 2.0b7.1 (September 16, 2009)

Bugs fixed:

  • Fixed MALFORMED_URI sync error with empty WebDAV URL
  • Fixed Verify Server hang with empty WebDAV URL
  • Tag selector search filter was broken
  • Fixed “Invalid integer value 'Not found' [QUERY: REPLACE INTO version VALUES ('storage_zfs', ?)]”
  • Fixed various issues with adding/dragging files/links to group libraries
  • Allow Retrieve PDF Metadata in group libraries
  • Fix “File not found after download” file sync error
  • Double-clicking an item without a URL didn't open child attachment

Changes in 2.0b7 (September 15, 2009)

Functionality changed or added:

  • Zotero File Storage
    • Supports personal and group file sync via Zotero servers without using WebDAV
    • Web access to files (currently limited to single files, not HTML snapshots)
    • Dragging items between libraries copies child notes, snapshots/files, and links based on checkboxes for each (enabled by default) in the Zotero preferences
  • Improved word processor integration
    • Redesigned architecture with a major new plugin version for each platform
    • Plugins are now distributed as Firefox extensions for one-click installation and automatic updating
    • Multi-user systems no longer require port configuration
    • Plugin dialogs are now full windows on Windows
    • Fixed many bugs (see below)
  • Redesigned user interface on OS X
    • Looks much more like a standard Mac application
    • Some changes require Firefox 3.5
  • User interface improvements (all platforms)
    • Removed redundant Attachments and Notes tabs in metadata pane
      • Replaced with context-sensitive toolbar menus for adding child notes and attachments
      • Added all four child attachment options to submenu of item context menu
    • Left column of Zotero can be collapsed
    • Tag selector can be collapsed using grippy between collections pane and tag selector
    • Item type menu takes up less space
    • Removed “Collections” header in left pane
    • Decreased minimum height of collections box
  • Special URL zotero://fullscreen now triggers full-screen mode
    • Can be set as Firefox home page, making Zotero act as a standalone application
    • Can be added as a link to the Firefox Bookmarks Toolbar, allowing Shift-click to open a standalone Zotero window
  • Autocomplete should be much faster with large libraries
  • File imports no longer hang user interface
    • Now uses a translucent overlay over Zotero pane with a progress meter that doesn't hang
  • Imports should be considerably faster (approx. 1/3 faster in testing)
  • Schema update process no longer hangs progress meter
  • Retrieve PDF Metadata improvements
    • Find DOIs without “DOI: ” prefix
    • Use the first three pages (instead of two)

a standalone Zotero window

  • Sync errors are now easier to see and report
  • Display more helpful startup error if file access is denied
  • Preference shuffling: OpenURL to Advanced pane, import/export character set to Export pane, “Include URLs of paper articles in references” to Styles pane
  • Removed preference to display Zotero pane above browser content
  • Open .opml files externally

Bugs fixed:

  • Word processor integration fixes
    • New architecture fixes all previous communication errors
    • Better position handling with non-Zotero notes
    • Final period missing when a citation is first added in note styles
    • Issues with footnotes and citations in OO
  • Metadata sync issues
    • “Invalid mode 'mergeedit' in relatedbox.xml”
    • “Parent collection for keyed parent doesn't exist in Zotero.Collection._getParent()”
    • “constraint failed” error when a local standalone attachment in a collection was moved into a parent remotely (e.g. a PDF using Retrieve PDF Metadata)
    • “constraint failed” error on itemCreators
    • Fixed some erroneous causes of “Cannot edit [object] in library [id]”
    • When library access or file writing access is denied during sync, display a warning and then reset local group to server version
    • Perform additional steps (e.g., removing local groups) when switching sync users to prevent errors
  • File sync issues
    • Various errors that could cause perpetual sync icon spinning now stop the sync properly
    • Compare hash as well as mod time when checking for modified local files
  • Fixed error when duplicating child note in a collection
  • Fixed various collection-related bugs

Developer-specific changes

  • Implemented retrieveDocument() and retrieveSource() functions
    • Synchronous equivalents of processDocuments() and doGet()/doPost() that do not hang the UI
    • Should make it easier to write translators that require multiple requests
    • Cannot be used in production translators until 1.0 translator support is discontinued after Zotero 2.0 Final
  • Added Zotero.Item.attachmentContent property – works for HTML, PDF, and plaintext attachments
  • Zotero.Item.isImportedAttachment()
  • Zotero.Utilities.md5(str) is now md5(strOrFile, base64)
  • Zotero.Item.attachmentHash property to get file MD5
  • doPost() and doHead() now take a headers parameter instead of requestContentType
  • doHead() can now accept an nsIURI (with login credentials), is a background request, and isn't cached
  • importFromFile() now takes libraryID as a third parameter
  • Zotero.Attachments.getNumFiles() returns the number of files in the attachment directory
  • Zotero.Attachments.copyAttachmentToLibrary() copies an attachment item, including files, to another library
  • Removed Zotero.File.getFileHash() in favor of updated Zotero.Utilities.md5()
  • Zotero.File.copyDirectory(dir, newDir) copies all files from dir into newDir

Changes in 2.0b6.5 (August 13, 2009)

Functionality changed or added:

  • In-memory debug logging
    • Configurable in Advanced pane of preferences
    • Output can be sent to zotero.org, returning a Report ID
  • Open alert window if sync icon is clicked with missing or incorrect sync credentials, with button to open Sync preferences pane
  • Auto-syncs triggered by edits are now considered background syncs and do not trigger conflict resolution window or other error messages
  • Added file sync note and documentation link to Sync preference pane
  • Browser content pane context menu options are now in “Zotero” submenu
  • Removed HEAD requests used to determine MIME type during imports
  • Added link to DB Repair Tool from integrity check failure message
  • Added “since starting Firefox” to “The following errors have occurred” in error report window

Bugs fixed:

  • Sync issues
    • Fix incessant file syncs and related file sync weirdness
    • Fix errors due to invalid file modification times
  • Fix bug that could cause SQLite constraint errors, particularly with large syncs and imports
  • Fix “Invalid integer value 'null'” error when dragging a regular item and a top-level attachment between libraries
  • Item pane fixes and cleanup
    • Restored save when clicking from open text field to another item
    • Removed delay when switching items/tabs (since 2.0b6)
    • Tab content updates properly when using Ctrl-arrows to navigate
  • Word processor integration
    • References in documents created in a never-synced copy of Zotero 2.0 that was later synced would appear as missing on synced computers
    • Fix Doc Prefs window in OpenOffice to reflect correct application
    • Remove reference to Word from incompatible version message, which is also used in OpenOffice
    • Add lines to Doc Prefs window to clarify the necessary file format
  • PDF metadata retrieval would hang on unrecognized PDFs (fixed Aug. 9 via translator update)
  • Fixed error saving BCE date via metadata pane or import
  • Fix various issues with renaming tags
  • Read-only mode fixes
    • Don't show add/remove buttons for tags or related items
    • Don't show context menu in or allow drag to tag selector
    • Don't show creator type context menu hover effect or dropmarker
    • Disable browser content pane context menu options
  • DOI field in metadata pane wasn't clickable (regression)
  • Double-click on parent didn't open PDF child attachment according to hierarchy if PDF was a file attachment rather than a web attachment
  • Issues with non-standard title fields (e.g. Case Name)
    • Titles were blank in related items pane
    • Title displayed below creator in metadata pane
    • Redundant display of titles in report tables
  • Fixed display of related items in reports
  • Fix highlighting for snapshots containing tables and BR tags
  • Use only y/m/d portion of dates for sorting
  • Arrow on full-screen button now points down when in full-screen mode

Changes in 2.0b6.4 (August 3, 2009)

Functionality changed or added:

  • Don't display file sync verification alerts (e.g., “Please enter a URL.”) during syncs — just skip file sync
  • Clarify file sync verification messages
  • Display more helpful message on newer DB version error
  • Display more helpful message on upgrade errors due to open files
  • Detect corrupt Firefox login manager database when accessing sync credentials

Bugs fixed:

  • Sync issues
    • Collection item membership conflict resulted in removal of local items from collection
    • “too many SQL variables” error syncing many item removals from a collection
  • Fixed RDF import with attached files
  • File attachment links were broken after renaming file
  • Fixed error displaying metadata pane with integer in URL field
  • y/m/d indicator in date fields didn't show up for partial dates

Changes in 2.0b6.3 (July 18, 2009)

Functionality changed or added:

  • Added “Reset File Sync History” reset option to sync preferences
    • Can be used when switching WebDAV servers to force uploading of local files
  • Removed rich-text/clipboard warnings in the Mac version of Firefox 3.5, which supports copying HTML to the clipboard

Bugs fixed:

  • Fixed errors with various site translators (since 2.0b6)
  • Fixed error importing files with .txt extension (since 2.0b6)
  • Added additional database checks to prevent certain sync errors
  • Fixed various collection sync issues
  • Resetting storage history caused all files to be re-uploaded
  • WebDAV server verification was repeated after every opening of the preferences
  • Fixed error importing MODS from clipboard
  • Trailing letters in DOIs weren't linked in HTML bibliographies

Changes in 2.0b6.2 (July 8, 2009)

Bugs fixed:

  • Item hierarchy pushed to server was lost (since 2.0b6)
  • Metadata pane did not refresh properly when viewing attachments (since 2.0b6)
  • Fixed orientation of attachment/note lists in metadata pane (since 2.0b6)
  • Fixed erroneous username mismatch message on sync
  • Fixed “cleanDOI: argument must be a string” error with invalid DOIs

Changes in 2.0b6.1 (July 7, 2009)

Bugs fixed:

  • Sync errors did not stop sync process in 2.0b6

Changes in 2.0b6 (July 6, 2009)

Functionality changed or added:

  • RTF Scan improvements
    • Now uses braces instead of parentheses
    • Page number support
    • Include bibliography at end of document by default, or in place of “{Bibliography}”
    • Added a list of examples to dialog
  • Rich-text note improvements
    • Upgraded TinyMCE to 3.2.5
    • Added paste plugin to fix messy pastes from Word
    • Added context menu plugin to allow copy/paste via mouse
  • Added “Full Sync” reset option to Zotero sync preferences
  • Added “Create Parent Item from Selected Item” context menu option for attachments and notes
    • Creates a Document item based on the attachment/note title
  • Reworked metadata pane tabs
    • Improved look in Firefox 3.5
    • Switching between metadata pane tabs is now possible using standard Firefox shortcuts (Ctrl-Tab, Ctrl-Shift-Tab)
    • Removed unnecessary padding to provide more viewing space
  • Speed up initial items pane load (tested at ~20% faster with 5400 items)
  • Speed up large database operations
  • Much clearer Zotero RDF output
    • Backwards-compatible with 1.0
  • Improved BibTeX import/export (#1514, 1180)
  • Allow MODS XML importer to combine multiple given names (#1472)
  • Display exclamation mark on sync icon if a background sync fails due to a conflict requiring manual intervention

Bugs fixed:

  • Fix broken documents after syncing for the first time with 2.0b5
  • Sync errors
    • Automatically run a full sync on various errors, which should allow for auto-correction of a wide range of remaining sync issues
    • “Source item for keyed source doesn't exist in Zotero.Item.getSource()”
    • “Unexpected status code 300 in Zotero.Sync.Storage.getStorageModificationTime() (likely due to mod_speling)
    • “Sync delete log starts after last sync date in Zotero.Sync.Server.sync()”
    • Fixed error when a file of an attachment with tags was in conflict
  • Fix an upgrade bug since Sync Preview 1 that could cause a handful of creators to be turned into either empty strings or other creators
    • For libraries that have already been upgraded, rename orphaned item creators to ”[Missing Name]“
    • Created Creator Upgrade Check Tool to check for likely errors
  • Attachment arrow/count persisted after deleting items to trash
  • Collection arrow persisted after subcollection delete
  • Translators and styles were unavailable in fresh install until Firefox restart
  • Fixed “Rename Attachment from Parent Metadata” on Linux
  • Table cells and headings in rich-text notes didn't follow customized size
  • Date portion of SQL datetimes entered into date fields would be lost on edit
  • Upgrade errors
    • “syncDeleteLog not empty and no timestamp in Zotero.Sync.delete()”
    • Fixed possible failures due to failing database backups
  • Translator progress window didn't display correct title for certain item types
  • Mapped 'network' field to 'publisher' in 'tvBroadcast' item type

Developer-specific changes/fixes

  • Added Zotero.Translators.save(metadata, code)
  • Expose all metadata properties in Zotero.Translator
  • Object produced by item.serialize() now contains .sourceItemKey instead of .sourceItemID
  • Added Zotero.Error(message, error) constructor to create a throwable error object with an error code

Changes in 2.0b5 (June 4, 2009)

Functionality changed or added:

  • Item viewing improvements
    • Double-clicking an item is now equivalent to the “View”/“View Snapshot” button by default
      • Can be disabled with extensions.zotero.viewOnDoubleClick hidden pref
      • When enabled, parent item expand/collapse is triggered on triple-click
    • “View”/“View Snapshot” logic now uses the following order: oldest PDF attachment matching parent URL, oldest non-PDF attachment matching parent URL, oldest PDF attachment not matching URL, old non-PDF attachment not matching URL, live URL, resolved DOI
    • Clicking DOI label in metadata pane opens resolved web page
  • Child file attachment renaming
    • Added “Rename File[s] from Parent Metadata” context menu option
      • Uses extensions.zotero.attachmentRenameFormatString in about:config
      • Only rename attachment title if it was already identical to filename
  • Note display customization
    • Note font size is now configurable through preferences
    • Note typeface is configurable via extensions.zotero.note.fontFamily hidden pref
    • Additional CSS rules can be added via extensions.zotero.note.css hidden pref
  • Shift key toggles snapshot pref when clicking “Create New Item from Current Page”
  • Double-clicking “My Library” opens online library
  • Embedded RDF translator should now always save at least as much metadata as Create New Item from Current Page
  • Group items are no longer exported when using “Export Library”
    • Group import/export may be possible in a future release
  • Improved word processor plugin handling of group library items

Bugs fixed:

  • Some attachments (including PDFs) were not saved correctly (since 2.0b4)
    • Incorrectly saved attachments are automatically corrected on upgrade
  • Fixed Open/Save dialog and use of hidden browser when saving external file types using “Save Link as Zotero Snapshot” or drag-and-drop to create a standalone item (since 2.0b4)
  • Sync errors
    • Added long tag correction tool
      • Runs automatically if server returns a long tag error, giving the option to split, edit, or delete the offending tag
    • Automatically check for and remove invalid characters in filenames
    • Added auto-correction of “missing item” sync error
    • “Invalid username”
    • “not a valid field for type”
    • “childItems.concat is not a function”
  • File renaming wasn't propagated via storage sync
  • Some invalid characters in filenames weren't being stripped
  • Embedded RDF translator fixes
    • “this._IDMap is undefined” save error (since 2.0b3)
    • Look for explicit Dublin Core prefix on any pages don't use “DC.”
  • Fixed group collection sorting
  • Item type–specific date fields weren't used in attachment renaming
  • Restore hand cursor when hovering over URL label (wasn't working in Fx3.5)
  • Sort triangle pointed in the wrong direction in Firefox 3.5

Developer-specific changes/fixes

  • Zotero.Items.getAll(onlyTopLevel) now takes a libraryID as the second parameter and only returns local library items otherwise
  • Zotero.Attachments.getStorageDirectory(itemID) now throws an error if a valid itemID is not passed
  • Return false in Zotero.Item.getLocalFileURL() if file is missing rather than throwing error
  • Gave TinyMCE note body #zotero-tinymce-note id for more specific external customization

Changes in 2.0b4 (May 20, 2009)

Functionality changed or added:

  • Dragging PDF favicon or link or clicking Create New Item from Current Page when viewing a PDF now creates a top-level PDF
  • PDF child snapshots can be dragged out of parents
  • Don't generate bibliography when dragging many items
    • Default limit set to 50, configurable in the Export pane

Bugs fixed:

  • Fixed long delays in Firefox 3.0.10 when adding or moving items
  • Fixed dragging of items with old creators with NULL values into group libraries
  • Restored missing “Enable file syncing” checkbox
  • Fixed broken snapshot pref
  • Fixed broken PDF metadata recognition
  • Fixed blank progress window when save via translator to root of library
  • Sync errors
    • “Zotero.Collections.getByLibrayAndKey is not a function”
    • Upload error with empty creators
    • Upload error after editing group item and leaving/deleting group
    • “Creator id null does not match item creator in Zotero.Sync.Server.Data.xmlToItem()”
  • Saved searches and trash didn't reappear on collapse/expand of My Library
  • Attachment arrow/count persisted after item delete
  • Timeline was empty for saved searches
  • Sped up initial opening of Zotero pane with many collections

Developer-specific changes/fixes

  • Automatically hard-code NULL bound parameters (e.g., convert “WHERE foo=?” to “WHERE foo IS NULL” and “SET foo=?” to “SET foo=NULL”)
  • ZoteroPane.newItem(), addItemFromDocument(), addItemFromPage(), addItemFromURL(), and canEdit() now all take an optional row parameter
  • Added Zotero.Libraries.isEditable(libraryID)

Changes in 2.0b3 (May 14, 2009)

Functionality changed or added:

  • Support for group libraries
    • Create and join public and private groups on zotero.org
    • Access group materials from within Zotero, even when you are offline
    • Easily move materials from a group library into your personal library
  • Add Item by Identifier
    • Automatically add an item by DOI, ISBN, or PubMed ID
  • RTF Citation Scan
    • Author a document in your editor of choice using ”(Smith, 2006)“ citation placeholders, save as RTF, and run through Zotero for automatic formatting in style of choice
    • Asks for disambiguation if required
    • Still under development
    • Does not currently work for names with accents
  • Import from Clipboard
    • Import any supported format (RIS, BibTeX, etc.) from the clipboard
    • Available via Actions menu option and keyboard shortcut (Cmd-Shift-V/Ctrl-Alt-V)
  • Improved Firefox 3.5 compatibility
  • Streamlined sync support
    • Faster and more stable
    • Added warning on user account change
  • Removed snapshot and link toolbar buttons and changed browser context menu options and drags to create parent items and child snapshots
  • Improved proxy support
    • Now only one preference for recognizing proxies for transparent redirection
    • Prevent erroneous entries that could cause hangs
    • Existing 1.5 proxy entries are cleared on upgrade
  • Locate button is now a Locate menu, with Wayback Machine URL lookup as a new option
  • PDF metadata recognition now uses DOIs when available [PDF metadata recognition is broken in 2.0b3]
  • Hide Firefox toolbars when Zotero is in full-screen mode
  • Wrap URLs and DOIs in HTML bibliography output in <a href=”“> links
  • Added ”# of Pages“ field
  • Disabled Zeroconf menu option (currently not functional)

Site/Import/Export Translator Changes:

  • Added generic DOI translator
    • Available on any page with DOIs
  • Additional details available via Trac

Bugs fixed:

  • Word processor integration
    • Fixed bibliography customization
    • Fixed problems with very large documents on slow machines
  • Fixed purging of deleted tags
  • Reduced WebDAV server load with missing attachments
    • File downloads are now skipped if server hasn't been updated since last local sync
  • Fixed memory leak when switching collections
    • Should also speed up expand-all/collapse-all operations
  • Fixed error when a linked file appeared twice in an export (e.g., in two subcollections)
  • Don't run pdfinfo if “Maximum pages to index per file” pref is set to 0
  • Restored ability to duplicate items with tags
  • Fixed “TypeError: cases[l].indexOf is not a function” upgrade error
  • Fixed “mimeType is undefined” import error
  • Fixed broken URL drag in Firefox 3.5
  • “attachmentPath cannot be set for link attachments”
  • “attachmentSyncState can only be set for snapshots and imported files”
  • Fixed CSL saving from repository
  • Fixed deletion method for old DB backups on schema update

Developer-specific changes/fixes

  • Overhauled data layer
    • General support for multiple libraries of different types
    • Data object constructors no longer take arguments (return to 1.0-like API)
    • Existing objects can be retrieved by setting id or library/key properties
    • id/library/key must be set for new objects before other fields
  • Zotero.Translate/translators
    • Added Zotero.Utilities.processAsync(sets, callbacks, onDone) – this can be used to make it easier to correctly chain sets of asynchronous callbacks
    • Removed saveItem and saveAttachments parameters from Zotero.Translate constructor
    • translate() now takes a libraryID, null for local library, or false to not save items (previously on constructor)
    • saveAttachments is now a translate() parameter
    • Fixed a bug passing multiple translators to translate.setTranslator()
    • Added ability to translate from iframes
  • CSL
    • Mapped court in case item type to authority, a new CSL variable
  • New methods:
    • ZoteroPane.getSelectedLibraryID()
    • ZoteroPane.getSelectedGroup(asID)
    • ZoteroPane.addItemFromDocument(doc, itemType, saveSnapshot)
    • ZoteroPane.addItemFromURL(url, itemType)
    • ZoteroPane.canEdit()
    • Zotero.CollectionTreeView.selectLibrary(libraryID)
    • New Zotero.URI methods
      • Uses local user key before first sync
    • Zotero.File.getFileHash() (not currently used)
  • Changed methods
    • Many data object methods now take a libraryID
    • ZoteroPane.addAttachmentFromPage(link, itemID)
  • Zotero.flattenArguments() better handles passed objects
  • Added new triples-based Relation object type, currently used to store links between items copied between local and group libraries

Changes in 1.5b2.1 (May 1, 2009)

  • Extended auto-sync expiry date
  • No other changes from 1.5b2

Changes in Early 1.5 Releases

Older Changes