May 12th, 2012New Features:
· Capturing/Excluding Hidden Items
· Hidden items can now be more easily added to the list of items to capture/exclude in an action document.
When clicking the + button to add items to the list, hold down one or both of the following modifier keys:
· Option key: choose invisible items
· Shift key: choose items inside a package
Bug Fixes:
· Recapture - The changes to finder metadata capture introduced in 1.2.0b69 also added a new bug that would recapture items that didn't need to be captured.
May 11th, 2012· Expires 1-June-2012
Changes:
Finder Metadata:
· A subtle change to how finder metadata is captured and restored has been made. Previously, QRecall would capture all significant (i.e. non-empty) finder metadata about each item and restore it when recalled. Items without any interesting finder metadata would not get any.
· The new method captures and restores the item's com.apple.FinderInfo extended attribute. The difference is that recalled items with a com.apple.FinderInfo attribute will get a com.apple.FinderInfo attribute even if that attribute doesn't contain any significant finder metadata. This more faithfully reproduces the structure of the recalled items.
· Side effect: After upgrading to 1.2.0b69, QRecall will recapture all items with a com.apple.FinderInfo attribute.
· Forwards compatibility: Items captured with an earlier version of QRecall will be restored using the original logic.
· Backwards compatibility: Items captured with 1.2.0b69 and then restored using an earlier version of QRecall may be missing important finder metadata.
Diagnostic Script:
· A sample.sh utility script has been added to the QRecall application's resource bundle. The script samples all QRecall processes. It saves its findings in a file that will be automatically included in the next diagnostic report.
· If you encounter a hung or stuck process, QRecall technical support may request that you execute the script from the terminal before sending a diagnostic report.
Bug Fixes:
· Action Document
· The File > Revert command would fail to update the window.
Restoring Symbolic Links:
· The link's extended attributes would often fail to be restored correctly.
· The link's BSD file flags would not be set if the file the symbolic link referred to did not exist.
· The latter bug was particularly serious in Lion, where a lot of the symbolic links in the system are compressed. Compression is controlled by one of the BSD file flags; failing to set it would leave the link unusable.
April 30th, 2012Bug Fixes:
· Metadata Compatibility - The new metadata collection method was getting unexpected values for some filesystem objects, mostly in OS X 10.6 (Snow Leopard), and was throwing an internal exception. This version correctly deals with those values.
April 30th, 2012New Features:
Help:
· Completely rewritten, and redesigned, help.
· Added numerous help buttons throughout the QRecall application that link directly to the relevant help topic.
Bug Fixes:
Icons, Metadata, and /dev:
· Rewrote the code that collects the icon and launch services metadata for each item during capture. The new code uses a more modern API introduced in OS X 10.6 (Snow Leopard).
· This was done to work around bugs introduced in OS X 10.7 (Lion) that resulted in incomplete icon information and problems capturing special directories. This should eliminate the I/O errors reported when gathering the icon and metadata for the /dev directory in Lion.
· This also improves the icon rendering for most files, and does a better job at capturing custom icons and preview thumbnails.
· Users of OS X 10.5 will continue to use the legacy APIs.
Layer Browser:
· Fixed a bug that would cause the layers browser to display an incorrect list of layers—possibly nothing at all—when the Show All Layers view option was enabled.
Quick Start Window:
· Fixed the icon sizes of items in the Recent menu.
April 18th, 2012· Capture Metadata - Correctly handle errors that result in a NULL object being returned from the metadata server process.
March 14th, 2012Changes:
· Capture Assistent: Capture assistent now creates a verify action that will run, more or less, once a week. When the assistent is finished, it opens all of the actions it just created so you can review them.
· Upgrade Low-Resolution Icons: The first time you perform a capture with 1.2.0(65), it checks the archive to see if any items were captured with version 1.2.0(9) or earlier. These items will have tiny (16x16) icons. It marks those items as needing to be recaptured, and over the course of the next few weeks it will recapture larger, high-resolution, icons for those items (that still exist). After approximately 6 weeks, this code is disabled and no further attempt will be made to upgrade the icons in the archive.
Bug Fixes:
· Command Menus: Right-click/Control+click pop-up menus in all of the item browser views have been restored.
· Reopen Archive: After an action is performed in an open archive document window, if another action prevents the archive from being immediately reopened in the window, it now correctly switches to waiting mode, rather than presenting an error dialog.
· Inspector Palette: The inspector palette is now correctly updated when the archive is modified by an action.
· Action Documents: Fixed a number of minor cosmetic and functional issues with the action document window.
· Monitor Crash: A memory release bug would randomly cause the monitor process to terminate and restart.
March 4th, 2012BSD File Flags:
· The Carbon APIs report some, but not all, of the BSD file flags. Consequently, QRecall was not capturing all BSD file flags. Most notably, the user-settable immutable flag was being captured and restored, but not the root-settable immutable flag.
· All file flags are now captured and restored.
Extended Attributes:
· This version fixes a long-standing design flaw in QRecall when capturing excessive extended attributes.
· Extended attributes are fragments of data attached to a file or folder. Normally, these extended attributes records are small (a few dozen bytes) and few (1 or 2 is typical).
· The problem is that some newer applications (like Skim) store dozens, even hundreds, of relatively large (2-4K) extended attributes in a single file. QRecall tries to write all of this extended attribute data into the file's archive record. The size of the data exceeds the internal record size allowed, resulting in a permanently corrupted archive.
· To address this, QRecall now takes large extended attributes and writes the data portion to separate data records. QRecall can now capture files with hundreds, even thousands, of extended attributes, any one of which can be several megabytes in length.
· QRecall continues to write small extended attributes directly into the file record, for backwards compatibility with earlier versions of QRecall.
HFS+ Compressed Files:
· Apple has added compressed files to the HFS Extended volume format. An HFS+ compressed file is stored on the physical disk media in a compressed format. When the operating system requests the data, it is dynamically decompressed and appears in its original form. To most every application and service, these files are indistinguishable from their uncompressed siblings.
· QRecall now recognizes HFS+ Compressed files and captures their compressed form, along with the necessary information needed to restore them in their compressed format.
Selectionless Drag:
· Dragging an item in the list view when there is no previous selection would cause an internal error and abort the drag.
Merge Index Corruption:
· A bug in the merge and compact actions could, in extremely rare circumstances, cause the layers.index file to be incomplete. The resulting archive would fail a verify and would have to be reindexed before it could be used.
Repair:
· When recovering an archive (using repair to extract the good portions to a new archive), the compatibility profile—which versions of QRecall the archive is compatible with—will now match those of the original archive.
· Fixed a bug that would cause the QRecall application to crash when choosing recovery mode.
System Optimization:
· When restoring a volume to a different volume, the system optimization now happens on the destination volume, rather than the original one.
Pre-authorization:
· Access restrictions would prevent QRecall from pre-authorizing the QRecallHelper tool when installed on a system where the user's home folder is not on the startup volume.
Monitor update announcements:
· If the QRecall application and the user's home folder are stored in different volumes, the monitor application couldn't locate the QRecall application. This meant that QRecall update notifications wouldn't appear in the QRecall activity window.
Searching:
· Closing the archive or starting an action while a search term was entered into the toolbar search field could cause the application to crash.
February 16th, 2012Bug Fixes:
· Filesystem Change History - When QRecall's trust interval for filesystem change history expired, instead of deeply scanning all folders for changed it wouldn't check for any changes at all.
· To immediately force QRecall to recapture all changes since upgrading to 1.2.0(56), start by issuing this command in the Terminal: defaults write com.qrecall.client QRAuditFileSystemHistoryDays -float 0.0
· Perform a normal capture.
· Afterwards, issue the this command to restore QRecall's normal capture bahaviour: defaults delete com.qrecall.client QRAuditFileSystemHistoryDays
February 16th, 2012New Features:
System Optimization:
· If a recall (or restore) writes registered dynamic libraries to a bootable system volume, the update_dyld_shared_cache tool is run to update the system's dynamic library loader cache.
This is performed at the end of the recall if all of the following are true:
· the recall/restore is running as root (the helper is preauthorized)
· the volume contains a /usr/bin/update_dyld_shared_cache tool
· the volume contains a /var/db/dyld/shared_region_roots directory with one or more .paths files
· at least one entry in the .paths files indicate a path to a dylib file that was just recalled
· the QROptimizeSystemDylibCache user defaults value has not been set to false.
Other Changes:
· Scheduler Daemon - When using the File > Quit and Uninstall command, the scheduler will first rescind all pending power management requests (wake, sleep, etc.) before it is uninstalled. This keeps your computer from later waking up for an action that won't be running.
· Inspector Toolbar Button - A button to toggle the Inspector window has been added to the toolbar.
· Archive View Settings - The visual state and settings for an archive document have been moved into a new view.plist file, inside the archive package.
· If the restored layout or selection for an archive is wonky, it's safe to discard the view.plist file. This won't disturb any of the archive's important settings.
· Free Space Status Warnings - The default ratios that determine when an archive's free space status should indicate caution (yellow) or critical (red) has been changed to 9% available and 4% available, respectively.
Bug Fixes:
· Lost Communication
· Addressed an issue, that occurs mostly in Lion, where the activity window, scheduler, or application loses the connection with the running helper process.
· The client now repeatedly attempts to reconnect with the helper for a few minutes before declaring a permanent communications failure (which would most likely indicate that the helper process crashed).
· Closing Archives
· Addressed a long-standing issue where an archive with a large amount of unused space takes a very long time to close.
· QRecall's data integrity rules dictate that all unused space in an archive is filled with zeros. One side effect is that an archive with a very large, recently vacated, block of space can take a very long time to close as the action writes (gigabytes) of zeros into the unused region of the file. This situation would typically arise after a compact that didn't finish (which compacted some of the archive, leaving one large unused area), followed by a capture (which is compelled to fill that unused area with zeros).
· The new method sets a reasonable time limit—currently 20 minutes—for the action to close the archive. If a zero-fill operation doesn't look like it's going to finish in time, that unused block is skipped.
· Recall
· Fixed a bug where a recall could fail with a "nil filter" exception.
· Save View State
· Fixed a bug that would sometimes fail to save the layout and current selection of the archive.
· Layer Browser Double-Click
· Double-clicking on a layer in the browser now rewinds the archive (moves the bottom shader) to that layer.
· Option+double-clicking on a layer in the browser moves the top shader to that layer.
February 7th, 2012· Expires 15-March-2012
New Features:
Archive Status Window:
· The new archive status window (Window > Status in the application, or Status Window in the menu bar item) displays a compact summary of the state of each active archive.
· It gives an OK, caution, or critical status for capture, verified, and available space.
· Capture status indicates if the archive has been recently captured.
· Verify status indicates if the archive has been recently verified.
· Size status indicates the amount of free space available to the archive.
· For the capture and verify status, "recently" is defined as a multiple of the nominal capture frequency for that archive. QRecall will bring your attention to an archive that is normally captured every hour, but hasn't been captured in over a day. In contrast, it won't raise an alert for an archive that hasn't been captured in five days if that archive is normally captured only once a week.
The free space status is based on the ratio of used to available space. The display shows:
· Amount of data used in the archive
· Unused space in the archive
· Free space on the volume that contains the archive
· Size of everything else on the volume
· Click on the graph to the cycle its display mode. The graph can compare just the used and unused space in the archive, the archive sizes plus the free space on the volume, or all four.
Right-click or Control+click on a status item to:
· Reveal the archive in the Finder
· Delete the status for that archive
· The status of an archive is updated whenever an action is performed on that archive. An archive status that has not been updated for over 7 weeks is automatically forgotten.
Time Machine Filter:
· A new Exclude: Items Excluded by Time Machine capture filter will exclude the same items that Time Machine excludes from its backups.
· Many applications and system services indicate files or folders that do not need to be backed up by registering it with the Backup Core service. QRecall will now read the backup preference of each item it captures and honor Backup Core requests to exclude certain items.
· Note: as with all exclusion filters, if you set one capture action to exclude certain items make sure all other capture actions for that archive use the same set of filters.
Ignore Changes Filter:
· A new Ignore Changes in: filter list has been added to the capture action.
· An item added to this section is treated by the capture action as if it has not changed. This is distinctly different from adding an item to the exclude filter, which treats the item as if it does not exist.
· The intended purpose of this feature is to optimize brief, frequent, captures that don't need to capture every detail of a folder hierarchy.
· For example, a capture action that captures one's home folder every 30 minutes can be excessively slow if it must repeatedly recapture large, frequently changing, items like mail folders or virtual machine images. Now, the capture action for the home folder can skip changes to the mail and virtual machine images, while a second capture that runs once a day captures the home folder in its entirety.
· Note: anything ignored by a capture action should eventually be captured by some other action in a timely mannor, else changes for the ignored items will begin to accumulate and result in excessive overhead.
External Home Folder Support:
· For security reasons, recent versions of Mac OS X will not launch an executable with elevated privileges if the executable code resides on a filesystem other than the startup volume. This has the potential to be a problem for QRecall, which normally installs its privileged helper tool in the account's ~/Library/Application Support folder. If the user's home folder has been relocated to another volume, QRecall cannot be pre-authorized to run with administrative privileges.
· QRecall now detects this situation and installs its privileged executables in the system's /Library/Application Support folder instead.
Select Existing Items:
· A new Edit > Select Existing Items command will select all of the items in the active browser window that currently exist on disk.
· In addition, a new Edit > Invert Selection command will invert the current selection (selecting the unselected items and vice versa). To select all of the non-existent items, choose Select Existing Items followed by Invert Selection.
Other Changes:
Scheduler Daemon:
· Fixed a problem with deleted user accounts that had previously installed a scheduler process as a system daemon. The system would try to launch the scheduler daemon for the non-existent user, which would repeatedly fail.
· The QRecall installation now checks to see that all scheduler daemon processes belong to valid user accounts, and automatically removes any that aren't.
Repair Volume:
· Before repairing an archive, QRecall now presents a modal sheet that strongly suggest that you verify/repair the directory structure of the volume containing the archive before proceeding.
· If the disk drive containing the volume is directly connected to the system, QRecall can initiate the repair itself using the same tool employed by Disk Utility.
Inconsistent Negative Hash Map:
· The verify action may report that the Negative Hash Map is inconsistent. This used to be a fatal error, but now appears in the log simply as a caution.
· An incomplete negative hash map only slightly affects QRecall's ability to detect duplicate data during a capture, and is not a serious problem. Reindexing the archive will correct the issue.
Exclude Local Time Machine Backups (Lion):
· Capture excludes the /.MobileBackups when running Mac OS X 10.7 or later.
Bug Fixes:
Search:
· Fixed a bug that would cause QRecall to crash if an archive window was closed while a search was in progress.
· If more than one archive window was open, a search in one window would interfere with searches in other windows.
· Folders would incorrectly display as having been searched before they actually were.
· The label of the search field in the toolbar now indicates when a search is in progress.
· Fixed a potential memory leak.
Metadata Capture:
· Communications failures between the QRecall helper process and its metadata service process is now more robust and should not cause the capture to terminate abnormally.
Compact:
· The record order optimization logic was completely rewritten. This was done primarily to fix a number of elusive bugs, but has the added benefit of improving the overall compact performance.
· The new logic first calculates an optimal record order for the entire archive, and then begins compacting. This results in a larger memory footprint and a slightly longer startup time, but ultimately provides better performance and reliability.
Merge Failure:
· An erroneous consistency check could cause a merge to fail under rare circumstances with the complaint that the path identifier of an inherited directory was too short. This was not true.
AppleEvent Communications:
· Fixed a long-standing problem with AppleEvent parameters that prevented the activity monitor and QRecall service from communicating with the QRecall application. Features like the View Log button in the activity monitor window and the Reveal in Archive service now work again.
Archive Browser:
· Fixed a number of display related bugs in the browser.
Scheduler Startup:
· Addressed an obscure situation where the scheduler would try to start up with an invalid event state, resulting in an abnormal termination and repeated restarts of the scheduler.
· The scheduler is now much less likely to exit with an incomplete event state, and should now gracefully start up even if it does.
February 2nd, 2012· Extended the expiration date to February 11, 2012.
· Users with a beta key will need to update to this version to continue capturing with QRecall after February 1. Users with trial or permanent keys can skip this update.
December 27th, 2011· Open Archive Crash - The QRecall application would randomly crash when opening an archive.
December 6th, 2011Inspector:
· The new inspector palette (View > Show Inspector) displays detailed information about the active selection (items or layers) in the browser. The Inspector palette replaces the Info drawer that was in QRecall 1.1.
· Double-click on a layer in the layers list to rewind the archive (move the bottom shader) to that layer.
· With no active selection, the inspector displays summary information about the archive itself.
Hold All Schedules:
· The new Hold All Schedules > … commands will delay the start of all scheduled actions for a while.
· You can quickly hold all action schedules for ½, 1, 2, or 6 hours from either the QRecall application or from the status menu item. In the QRecall application, you have the additional Hold All Schedules > Until… command which lets you choose any time in the future. Actions that are scheduled to start before the chosen time are held until that time.
· The hold time only applies to action schedules. Actions that are manually run or scheduled (via Action > Run At…) are never held.
Excluded items:
· The filesystem events directory (/.dbfseventsd) has been added to the list items that QRecall never captures or restores.
· When running Mac OS X 10.6 (Snow Leopard) and earlier, QRecall excludes the /.DocumentRevisions-V100 directory from captures. This special directory is created by Lion's document revision system. Earlier operating systems are incapable of reading or restoring its contents.
Disable Auto-restore (Lion):
· Prevent Lion from attempting to automatically re-open archive windows when relaunching QRecall, and from trying to restart the Activity window process when logging in.
Capture Crash:
· A capture bug that has plagued QRecall for the past four years has finally been circumvented.
· QRecall now isolates calls to the launch services database in a separate process. This protects the main process from an inadvertent crash while capturing icon or display information about each item.
· This is basically the same solution used experimentally in earlier versions of QRecall. That code could be enabled by setting the QRIsolateLSCallsInSeparateProcess advanced setting to true. The new code is controlled by the same setting, but the default for the setting is now true, so it is used by default. If you have previously set the QRIsolateLSCallsInSeparateProcess to false, delete that setting so it can assume its new default.
Interprocess Notifications (Lion):
· Action notifications were not being sent with the correct priority. This could cause the Activity window to ignore running actions, the application to miss changes in the scheduler, and similar miscommunications.
Repetitious Log Errors:
· Some error explanations were being logged more than once.
Phantom Text:
· Text associated with an archive window would appear in another place on the screen.
QRecall Application Freeze:
· A dead-lock bug could randomly cause the log window to hang the QRecall application, causing it to become unresponsive and requiring a forced quit.
Logging Invalid Item Paths:
· Attempting to log an error reguarding an item that is unaccessible or nonexistent could cause the log message itself to fail while trying to generate a path to the offending item. This would prevent the original error from being logged.
· Now, the path is replaced with a placeholder message explaining the error that occurred while trying to generate the item's path.
November 4th, 2011New Features:
· Log
· Log messages about items being processed by a capture or recall are now organized into a hierarchy that mimics the folder structure those items are contained in, making it much easier to locate the source of the issue.
· Some log details have been reclassified as minutia so they don't clutter up the log with extraneous details.
· Activity Monitor
· The QRecall activity monitor window has undergone a number of changes.
· Compact - The progress bar is no long shown when an action's details are collapsed, making for a more compact and less distracting display.
· Auto-update - If the QRecall application is configured automatically check for updates, and it is not running, the monitor process will now check for updates in the background. If the activity monitor discovers an update, it displays that a new version of QRecall is available in the activity window.
· Modeless action alerts - If an action finishs with an alert message, the message is now shown in the action's pane, rather than presenting a modal alert sheet.
· Resizable - The width of the activity window can now be resized.
· Menu Bar Status Item
· A QRecall status item now appears in the main menu bar.
· Each running action in the activity window appears in the menu, along with commands to open the activity window or the QRecall application. The submenu of each action offers the same control options available in the activity window (stop, pause, resume, reschedule, …).
· To hide the menu bar status item, go to QRecall > Preferences… > Monitor > Show in menu bar.
· Toolbar
There are two new toolbar buttons:
· Show/Hide Timelines
· Show/Hide Deleted Items
· Icon Badges
· Items in the archive that are damaged, incomplete, or deleted now get a badge.
· Other Changes
· Stop Response
· The capture action now pays closer attention to the stop request, so there shouldn't be a long delay between clicking on the stop button and the action actually stopping. This was particularly noticeable when shifted quanta detection is high.
· Growl
· The Growl framework was updated to 1.2.2 for better compatibility with Lion and Growl.
Bug Fixes:
· Capture Crash
· A capture bug could cause the helper process to crash when capturing files of a specific size (an exact multiple of 3MB) with shifted quanta detection on.
· There is a bug in OS X that will crash the helper process when it requests the icon of an item. To work around this, QRecall no longer requests specific icon images for items that are not normally visible to the user (items inside packages, hidden folders, unreachable files, and so on). Instead, only the generic icon information for these invisible items are captured.
· Item Progress
· Fixed a long-standing bug that would cut off, or simply not display, item names that were longer than the progress status field. Now, long items names are middle-truncated to fit.
· Archive Window
· The split view between the layer timeline and the item browser can no longer be resized.
· Activity Window
· Took some steps towards resolving the problem with the activity window not monitoring actions. The monitor and action are more aggressive about trying to connect with each other during startup, and I've added debug messages in the log file that will help me determine if certain users are losing any interprocess notifications.
· Leopard
· Fixed a number of incompatibilities with Leopard.
· Item Browser
· Fixed some multi-thread issues with the browser that could cause it to stop updating.
· Fixed a bug that would stop or crash the browser if the view criteria was changed while a folder of items was still loading or updating.
· Log
· Fixed a recursive bug that could cause the logger to stop working if any error occurred while the logger was being initialized.
· Improved performance for large log files.
· Known Issues
· Info Drawer
· There is no longer an info drawer. Information that was in the old info drawer will be migrated to a new interface.
· Alert Actions and Services
· Some end-of-action alerts include "Log" or "Repair" buttons that open QRecall and reveal the relevant log entry or start a repair action. Similarly, the QRecall service can reveal an item in the archive or start a capture.
· All of these features depend on passing special instructions to the QRecall via an "open" AppleEvent message, and that mechanism appears to be broken in Lion. This issue is under investigation.
October 3rd, 2011· Upgrade - Upgrading from version 1.2.0(45) or earlier to version 1.2.0(46) would neglect to prompt the user to pre-authorize QRecall again.
· Duplicate Toolbar Items - In Lion, The item browser view mode tool could appear more than once in the toolbar following a recent installation or upgrade.
July 26th, 2011· Not recommended for Leopard users.
· While compatibility with Leopard has improved, it's still not ready for prime time.
Timeline Control:
· A new timeline control introduces a graphical overview of the layers in an archive.
· The timeline control presents the layers of an archive as colored markers over time.
To see the details of a layer:
· Hover the cursor over a marker
To scroll through time:
· Use the scrollbar
· Perform a vertical scroll (scroll wheel or touchpad)
· Click and drag the timeline
To magnify the time scale:
· Turn the magnification knob clockwise
· Command+click in the timeline
· Two-finger stretch (touchpad)
To reduce the time scale:
· Turn the magnification knob counter-clockwise
· Command+Option+click in the timeline
· Two-finger pinch (touchpad)
To move the bottom shade:
· Drag the bottom shade to a new position
· Double-click a layer in the timeline
· Press Control+Up/Down arrow key
To move the top shade:
· Drag the top shade to a new position
· Press Control+Option+Up/Down arrow key
July 11th, 2011Note to Mac OS X 10.5 (Leopard) Beta Testers:
· Version 1.2.0b39 is (also) not recommended for Leopard users.
· While compatibility with Leopard has improved, it's still not ready for prime time.
· Expires 1-September-2011
New Features:
· Drag and Drop - Drag and drop is working, once again.
Bug Fixes:
· Item Browser - On occation, the item browser would fail to display any items after opening, switching modes (icon, list, browser), or navigating. Several bugs which were causing these problem were fix.
· Search - Changing the item filtering (e.g. turning Show Package Contents on or off) could cause the browser items to display as if a search was in progress.
· Empty Archive - Fixed a bug that could prevent an empty archive from being opened.
· Help Menu - In certain circumstances, clicking on the Help menu would cause the QRecall applcation to crash.
July 2nd, 2011Snow Leopard Workaround:
· Version 1.2.0b37 introduced code that disabled a workaround for a bug in OS X 10.6 (Snow Leopard) that has been fixed in OS X 10.7 (Lion). Unfortunately, this change disabled the workaround too often, sometimes where it's still needed in 10.6.
· This patch correctly disables the workaround in Lion and Leopard, and always uses the workaround in Snow Leopard.
July 2nd, 2011New Features:
Search:
· Search is working again (which, technically, doesn't make it a "new feature"). It has a new interface and there are new search options.
To search, enter a search term into the toolbar search field. The appearance of the items in the archive browser will change to indicate the progress and results of the search:
· An item in the process of being searched
· A matching item
· An item that does not match
· A folder that does not match, but may contain items that do match
· A folder that does not match, and it doesn't contain any item that match
· Items that match will appear normally, while items that do not match (or are being searched) will be grayed out.
· Folders that do not contain any matching items are made opaque and cannot be opened or expanded. When the search has finished, only folders that contain matching items can be explored. You can further compact the display by choosing the "Only Show Matching Items" option from the search menu. This option shows only items that match and folders that contain items that match; all other items are hidden.
In addition to the "Only Show Matching Items" and "Hide Timelines While Searching" options, there are four new search options:
· Match Phrase: item must contain the whole search term, literally
· Match All Words: item must contain all search term words, in any order
· Match Any Word: item must contain at least one of the search term words
· Ignore Case: case insensitive search
· The first three options are mutually exclusive and control how the search term is used to match filenames. A "word" is any sequence of characters separated by spaces. The "Match Phrase" option is equivalent to how QRecall used to search.
· The (3D) time view does not support searching.
Bug Fixes:
· Lion
· A number of compatibly problems with Lion have been addressed.
· At this point, there are no (known) major issues with QRecall and the lastest version of Lion that was seeded to developers.
· Restoring Selection and View
· Fixed a problem where the archive couldn't be opened because the last view couldn't restore itself.
· Spotlight Search
· Opening an archive via a Spotlight search now starts a search of the archive using the Spotlight search term.
· Timelines Obscured
· Timeline now always draw over the browser items, instead of sometimes being drawn underneath items.
· Sparkle
· Fixed a problem where QRecall wouldn't launch if the Sparkle software upgrade framework couldn't be initialized.
· Capture Assistant
· Fixed a problem where QRecall would never enable the "Next" button when calculating the size of folder to capture.
· Compressed Data Records
· A bug in the decompression routines would (very rarely) complain that a compressed data record was invalid when, in fact, it was just fine.
· Scheduler
· The scheduler could crash on startup if an expected preferences value was missing.
· Memory Corruption
· A rare situation where a brand new archive that had lots of new hash entries, but not enough to cause them to be inserted into the main hash index file, could cause a memory corruption and crash.
· Other Changes
· Override Physical Memory
· If you need to, you can override the amount of physical memory that QRecall thinks your system has by setting the new QRPhysicalMemoryMB defaults setting to an integer representing an amount of memory in MBs.
· QRecall sizes a lot of its internal cache and index tables based on the amount of physical RAM. It cannot determine, however, what the RAM requirements of other processes are. If you run memory hungry processes, such as data base servers or virtual machines, and experience a lot of VM swapping, try setting QRPhysicalMemoryMB to a value smaller than your physical RAM.
· Note that (currently) QRecall never attempts to use more than 6GB (6,000MB) of RAM.
· Lion’s Built-In File Copy
· Lion fixes a long-standing bug in the FSCopyObject function (an OS function for duplicating files). When running under Lion, QRecall no longer employs the workaround it used to avoid that bug.
April 30th, 2011· Extended beta expiration date to June 1, 2011. The next release introduces a completely rewritten user interface. The next version is not feature complete, is a bit rough around the edges, and undoubtedly has a bunch of new bugs. The primary purpose of the this release (1.2.0b33) is to provide a stable fall-back version for those beta users who choose not to experiment with the next version, or who encounter problems and need to downgrade to an earlier version.
April 1st, 2011· Extended beta expiration date to June 1, 2011.
· The next release introduces a completely rewritten user interface. The next version is not feature complete, is a bit rough around the edges, and undoubtedly has a bunch of new bugs.
· The primary purpose of the this release (1.2.0b33) is to provide a stable fall-back version for those beta users who choose not to experiment with the next version, or who encounter problems and need to downgrade to an earlier version.
You may elect to skip this version if:
· You are using a permanent (purchased) identity key. Permanent identity keys do not expire.
· You are using an alpha release later than 1.2.0b29 that addresses a particular problem. This release does not include any code from those alpha releases.
January 31st, 2011Changes - Expiration Dates:
· Extended beta expiration date to April 1, 2011.
· Renewed internal code signing certificate.
January 3rd, 2011· Expires 1-February-2011
Changes:
· Networked Volume Performance
· Optimized the reading and updating of adjunct index files to improve performance with networked volumes and network storage devices that are inefficient with small reads and writes.
· This should significantly improve performance for users who were encountering long delays at the start and end of capture actions.
Bug Fixes:
· Compact - Reengineered the compact logic to preserve (and even improve on) the performance gains introduced in 1.2.0b13, while eliminating the stability problems that some users were encountering.
· Reindex - Occasionally, a reindex would not completely reindex the quantum index table, saving some entries to be indexed later. Reindex now forces all entries to be added before closing the archive.
· Restore - Some pre-OS X finder information was not being restored correctly.
· Growl - Fixed the Growl message identifiers so that growl notification groups can now be correctly enabled or disabled.
· Crash - Fixed a peculiar memory bug that would occasionally cause the capture action to crash.
November 15th, 2010· Excessive Memory Use - Some debug code, accidentally left in 1.2.0b18, that was intended to diagnose a problem with file metadata was causing the QRecallHelper process to use an excessive amount of RAM.
November 13th, 2010· Developed a workaround for a problem with Grand Central Dispatch in Mac OS X 10.6.5 (Snow Leopard). The thread management in 10.6.5 will allow hundreds of threads to be spawned under certain circumstances, consuming huge amounts of CPU and memory resources, which eventually causes the QRecall action to hang.
· It appears that this problem only affects Intel Xeon processors with four or more cores.
· Note: If you're feeling a little déjà vu, this release supercedes 1.2.0b17 which, in the immortal words of Maxwell Smart, missing fixing this issue "by that much."
· Contextual Menu: The contextual menu plug-in, installed for Mac OS X 10.5 (Leopard), was missing the 64-bit PPC version of the code.
November 12th, 2010Mac OS X 10.6.5:
· Developed a workaround for a problem with Grand Central Dispatch in Mac OS X 10.6.5 (Snow Leopard). The thread management in 10.6.5 will allow hundreds of threads to be spawned under certain circumstances, consuming huge amounts of CPU and memory resources, which eventually causes the QRecall action to hang.
· It appears that this problem only affects Intel Xeon processors with four or more cores.
Contextual Menu:
· The contextual menu plug-in, installed for Mac OS X 10.5 (Leopard), was missing the 64-bit PPC version of the code.
September 30th, 2010Bug Fixes:
· Compact - Corrected a bug in the package index that could cause the compact action to randomly fail with an internal "hole length" exception.
· Scheduler - Scheduler would crash if it encountered a logical volume that does not have a BSD/IOKit device name.
August 28th, 20106TB Archives:
· The maximum size of a single archive has been increased to 6TB for systems running 64-bit code. Systems running 32-bit code are still limited to capturing no more than 2TB in an archive. (The virtual tables needed to efficiently index more than 2TB are larger than 32-bit systems can efficiently address.)
Please note the following caveats:
· While the maximum size of the archive is now 6TB, the maximum size of any single captured item is still 2TB.
· The 32-bit version of QRecall 1.2.0b7 and later can open and recall items from an archive larger than 2TB, but can't add to it.
· QRecall version 1.2.0b6 and earlier can continue to use (open, capture, and recall) archives that are smaller than 2TB. Once the archive indexes exceed the size supported by 1.2.0b6, those versions will no longer be able to open the archive. This will typically happen around the 2.5TB to 3TB range, but could happen earlier.
· The realistic limit of archives using the current code base is probably closer to 10TB, but exceedingly large archives have not been tested. If you have a need for archives larger than 6TB, or need to capture a single item larger than 2TB, please send feedback.
Smarter Volume Scheduling Limits:
· The scheduler is now smarting about how it limits actions that capture to multiple archives on the same hard disk. The scheduler now tries to determine if the two archives are contained on the same physical device (hard disk, RAID cluster, etc.) and will hold execution of an action if it exceeds the Maximum Actions per Volume limit.
· Previously, the schedule would only determine if two archives were contained on the same volume. This would ignore the situation where a single hard disk or RAID had been partitioned into multiple volumes, with archives stored on different volumes.
· Other Changes
Compact Performance:
· Improved package index performance. Compacting large (>1TB) archives will see the most dramatic improvement, but the performance for all actions will benefit
· Bug Fixes
Inheritance Check:
· The progress indicator for the inheritance check was running backwards.
Resizing the Quanta Index:
· A bug would omit some entries in the quanta index whenever the index needed to be resized. Resizing is a rare event, that typically occurs only a few times in the lifetime of an archive.
· While the bug could cause the capture process to crash, the effects of the missing entries is negligible, and reindexing the archive will correct the problem.
April 19th, 2010New features:
64 Bit:
· QRecall has been extensively overhauled to include support for 64-bit computing. All QRecall components run in native 64-bit mode on capable systems.
· On 64-bit systems, QRecall can now take advantage of additional RAM to improve performance.
Improved Multi-Processor Support:
· QRecall now makes substantial use of Apple's Grand Central Dispatch service for improved parallel processing and load balancing.
Faster Indexes:
· The quanta index has been almost entirely rewritten for better performance. While the previous quanta index code was very fast for small archives, its performance would degrade substantially for large archives. Terabyte archives would cause the index to begin thrashing, resulting in extremely poor performance.
· The new quanta index uses a lazy, read-ahead, caching scheme that produces nearly linear performance regardless of archive size. Captures now being at a modest rate and then steadily improve as the capture progresses—rather than slowing down.
· Additionally, the quanta and package indexes can now record small changes without updating the primary index files. The result is faster action startup and quicker archive closing times, especially noticeable when capturing small changes.
Power Management:
· Actions can now wake or power up the system before running, and can optionally sleep, restart, or shutdown the system afterwards. The new options can be found in the action's schedule.
· The Before Scheduled Time power up option can be set to "Wake" or "Start Up or Wake". The request is performed 2 minutes before the action's scheduled run time. The Wake option will wake the computer if it is powered up but asleep, and the Start Up or Wake option will wake or power up the computer as needed.
· The After Running Actions option establishes a post-action power request. It can be set to Sleep, Restart, or Shutdown.
The request is performed:
· after all other running or waiting actions have finished
· no other actions are scheduled to run in the next 20 minutes
Keep the following caveats in mind:
· Sleep, restart, and shutdown requests present a dialog describing the request. It affords you 10 minutes to cancel the request or perform it immediately.
· All power management features require QRecall to be pre-authorized to use administrative privileges—changing power states can only be done by an administrator or root. If not pre-authorized, all power management settings are ignored.
· These power management features require fairly modern hardware, and may not work on pre-2006 Macs.
System Sleep:
· The method used to keep the system from going to sleep while QRecall is working has been updated to use modern power management APIs. QRecall will now prevent your system going to sleep automatically while an action is in progress, but does not prevent your display from going to sleep nor should it interfere with other power conservation features.
· QRecall will not prohibit your system from going to sleep if you request it, either by command or action—such as closing the lid of your laptop.
· The advanced QRecall setting QRRunningMakesSystemActive is now ignored.
Auto-unmount Volumes:
· A new Unmount Volumes Mounted by Actions setting in the QRecall preferences will attempt to unmount a volume that was mounted by a QRecall action. A QRecall action that mounts a networked volume or external drive when it starts will unmounted it again once the action, and any other scheduled actions that use the same volume, have finished.
· The scheduler only attempts to unmount the volume once. When the actions finish, if there are other documents open or other applications using files on that volume, the volume will not be unmounted and no further attempt will be made.
Concurrent Action Limits:
· The Scheduler can now limit the number of running QRecall actions. These limits improve performance by avoiding a phenomenon called thrashing, where the efficiency of multiple processes is degraded by competition for common resources, such as memory and disk access.
· By setting limits, the scheduler will hold excess actions until some running actions have finished, allowing the running action to finished sooner and more efficiently.
Maximum Concurrent Actions:
· This setting limits the total number of QRecall actions that the scheduler will start running at the same time. When set to Automatic, the limit is calculated based on the amount of RAM and number of processor cores. If too many actions are scheduled to run at the same time, additional actions are held with the status Waiting for action to finish.
Maximum Actions per Volume:
· This setting limits the number of QRecall actions using archives on the same volume. The recommended setting is 1. If too many actions are trying to use archives on the same volume, subsequent actions are held with the status Waiting for volume name.
Ignore Hold and Run Command:
· The action's command menu in the QRecall activity window now includes an Ignore Hold and Run command. This command ignores any hold conditions that are currently preventing the action from starting and allows the action to run immediately. This includes schedule conditions as well as the new concurrent action limits.
· Note that the Waiting for archive name condition cannot (should not) be ignored. Only one action can open and update an archive at a time. Even if you ignore this condition, the action must still wait until the archive is closed before it can proceed. Attempting to ignore this condition could cause actions to run out of order.
QRecall Service:
· Two QRecall commands are now provided as services, appearing in your Services menu.
· Capture to Archive starts a capture action with the currently selected files or folders.
· Reveal in Archive open and archive an attempts to reveal the most recently captured version of the selected files or folders.
· These service present a window where you can choose from a list of likely relevant, and recently accessed, archives.
· If these commands don't appear in your Services menu, enable them in the Keyboard pane of the System Preferences. Not all application support Services.
· The contextual menu plug-in is still provided and supported in Mac OS X 10.5 (Leopard). Mac OS X 10.6 (Snow Leopard) no longer supports contextual menu plug-ins.
Other changes:
Upgraded Growl Library:
· The Growl interface library was updated to provide compatibility with 64-bit systems.
Upgraded Sparkle Library:
· Sparkle, the library the implements QRecall's auto-update feature, was updated. It provides enhanced compatibility, improved support, and better security.
· The auto-update feature can now report anonymous system profile information (like your operating system version, CPU type, CPU speed, amount of physical RAM, and so on). This information (collected by Dawn to Dusk Software servers) will be used solely to improve compatibility, implement optimizations, and help plan new QRecall features.
· If you'd rather not have this information reported, you can disable this feature in the QRecall Preferences. Even if turned off, auto-update still reports your operating system version and CPU architecture; this is necessary to accurately determine what updates are available.
Preferences Window Reorganized:
· QRecall preference panes have been reorganized.
· The Activity Monitor window options that used to be in the Window menu can now be found in the Monitor preferences pane.
· A new setting lets you decide whether the Activity Monitor window appears in all Spaces or just one. This option had been previously provided via the QRMonitorSpacesJoinAll advanced setting.
Enhanced path display:
· Lists of items, like the items to capture or exclude, now display the complete path to each item.
Tint Menu:
· The Tint menu is now implemented using a modern UI, and now appears in contextual pop-up menus too.
Smarter Schedule Preview:
· The schedule preview drawer and the next scheduled action time now take into account Ignore Between conditions that suppresses the schedule during specific times of the day.
Byte Scale:
· To be consistent with Snow Leopard (Mac OS X 10.6), byte values reported in Kilobytes, Megabytes, Gigabytes, Terabytes, and Petabytes are now powers of 1,000 (10^3) rather than the legacy powers of 1,024 (2^10).
Added /var/folders to Cache Folders Filter:
· The directory /var/folders was added to the list of folders that are excluded when the Exclude: Cache Files option is set.
Bug Fixes:
· Memory Leaks"
· Fixed memory leaks in merge, verify, and compact actions.
Force Capture:
· A capture following an incomplete or damaged layer now forces QRecall to rescan the entire volume for possible changes.
Volume Mount Handling:
· Some volumes would cause the scheduler to crash when they were mounted.
Inherited Folders:
· An obscure bug in an older version of QRecall can result in invalid directory record linkages following a repair. The result is layers that refer to older directory records that are technically unreachable. This isn't a problem, until the unreachable layers are merged—resulting in a corrupt archive.
· The repair action has been modified to find and correct these invalid directory references.
· The verify action now checks to see that all inherited directory references are reachable. If you are concerned that your archive might have this problem, verify your archive. If it reports any errors, repair it.
December 13th, 2009New Features:
· Hard Links - Hard links are verified to ensure that both files contain the same data. During a repair, if a hard link is invalid the link is severed and the files are recovered individually.
· Other Changes - Max OS X and Platform Sensitive Updates - QRecall's auto-update now includes your operating system version (i.e. 10.6.1) and your architecture (Intel or PowerPC) in the update request. This will allow the server to offer operating system and platform specific updates in the future.
Bug Fixes:
· Closing Archive Document Window - An internal bug was causing problems when closing an archive window. The bug could cause the archive files to be left open and preference settings to be lost.
· Snow Leopard and Airport Extreme - A Snow Leopard bug may cause an erroneous "FSRef" error to occur when writing to an archive hosted on an Airport Extreme basestation or Time Capsule.
· Action Event Schedule - A change in Snow Leopard was causing some disk mount events to be ignored. Actions set to run when a volume was mounted would either not run, or run at a much later time.
· Action Document Disclosure Buttons - The disclosure buttons in an Action document were difficult to see because they changed color in Snow Leopard—the color just happened to be the same as the background.
· The background is now a gradient, so the buttons should always be discernible.
· Archives on Read-Only Volumes - Archives on some read-only volumes, or for which you do not have write permissions, would fail to open.
August 28th, 2009· A small number of changes and workarounds to keep QRecall running smoothly under Mac OS X 10.6.
July 25th, 2009New Indexing Engine:
· Archive index maintainence, particularly the names index, has been completely rewritten. Indexes are now compiled and optimized incrementally, in the background, during regular actions.
· The new indexing logic dramatically reduced the amount of time required to open and close an archive, improves performance, makes better use of multi-core/multi-processor CPUs, and lays the foundation for future features.
Volume Names:
Fixed a cluster of bugs that caused problems with renamed volumes and different volumes with the same name. Specifically:
· Renaming a volume could cause QRecall to erroniously report that the directory structure of the archive was damaaged.
· Replacing a volume with the same name, then merging the layers containing both volumes could cause the Verify action report erronious errors.
· None of these bugs caused any data loss, and there were no cases where the contents of the archive actually invalid.
Diagnostic Reports:
· Some diagnostic reports were not being uploaded because the log file data was too big. Now the log data included in the report is limited by size, not by date, so the diagnostic report data should never exceed 2MB.
December 5th, 2008Fast Change Detection (Leopard):
· When running on Leopard, the capture action now queries the file system to determine what folders contain changes. This can dramatically improve capture performance as QRecall does not have to explore the entire drive to determine what has changed.
Delete Item Command:
· The new Archive > Delete... command will delete arbitrary items from an archive. This is particularly useful for recovering space occupied by large files that you no longer want to keep and for removing old volumes and owners.
Item Search:
· A new search field in the archive window toolbar quickly locates and highlights all item names containing a word or phrase.
Spotlight:
· Spotlight will now index the item names in an archive. A Spotlight search will list the QRecall archives that contains an item name matching the search words.
· Note: Spotlight indexing uses the new "names" index (see Other Changes). If the archive has not been reindexed since upgrading to version 1.1, Spotlight will only find items captured using 1.1 or later.
Auto-Repair:
· In most cases, actions can now automatically repair an archive damaged by an incomplete action, communications failure, or other intermittent problem. Auto-repair immediately restores the archive to where it was before the errant action started.
Extended Attributes:
· QRecall now captures and restores the extended attributes associated with an item.
Send Report... Command:
· The new Help > Send Report… command makes it easier to contact QRecall technical support with a problem.
Other Changes:
· Activity Window Remembers Display Detail
· The Activity Window now remembers the state of the disclosure triangle for actions.
· Item Names Index - A new "names" index has been added to the archive. It provides Spotlight indexing and improves the speed of capture, browsing, and the new item search feature.
· The names index is updated lazily. That is, items are added to the index when captured using the latest version, but items already captured are not. Reindex an archive to add all its items to the names index.
· Verifying an archive with an incomplete names index will result in harmless informational messages about the missing names.
· Simplified Volume Restore - A captured volume can now be restored to another volume simply by dragging the volume's icon from the owners and volumes drawer and dropping it directly into another volume in the Finder (e.g. the captured volume must be dropped into the root directory of the local volume).
· Expert Preferences - New expert preferences were added to control a number of new features. See the QRecall forum for information about the new settings in 1.1 and how to change them.
· Performance - Substantial performance improvements were made.
Bug Fixes:
· Fixed numerous bugs and compatibility issues.
December 2nd, 2008Bug Fixes:
· Hiding Items - Hiding or showing invisible items or packages would sometimes fail to update the display immediately.
· Repair - Copying the recovered data to a new archive would result in an empty names index.
· In rare cases, repair could leave invalid package references that would cause a subsequent verify to fail.
· Merge Actions - An incomplete layer that was created during a repair could confuse the merge and rolling merge actions. In the case of the rolling merge, the action would ignore all layers after the incomplete layer.
Other Changes:
· Spaces - A new expert setting has been added to let users gain some control of how the QRecall Activity window is managed by Spaces.
· By default, QRecall forces the QRecall Activity window to appear in all spaces. That behavior can be turned off by setting the value QRMonitorSpacesJoinAll to false using the Terminal command: defaults write com.qrecall.monitor QRMonitorSpacesJoinAll -boolean false (changes won't take effect until you log out and back in)
· When QRMonitorSpacesJoinAll is set to false, the activity monitor window exist in the first space it appears in and will switch back to that space when reactivated. This can be controlled by manually moving the activity window to another space or setting the preferred space for the activity window.
November 6th, 2008· Expires 15-Dec-2008
· Unless major bugs are found, this version will become QRecall version 1.1.
· The only significant difference between this version and the final version, is that this version continues to recognize beta identity keys and it will expire after December 15, 2008.
Bug Fixes:
· Compression - Actions that rewrite layers (Merge and Delete Item) could occationaly corrupt compressed archives.
Other Changes:
· Credits - About QRecall dialog updated to recognize new beta testers.
Miscellany:
· Cosmetic changes to some log messages.
· Minor bug fixes and optimizations.
October 25th, 2008· This is the release candidate. Unless a major bug is discovered, this version will become version 1.1.
October 18th, 2008· Help updated to reflect new features in version 1.1.
· Delete Item Toolbar Icon - A button for the new Delete Item command was added to the toolbar. Icon design by Rory Prior.
· Compact Performance - The thread balancing was tuned to improve the performance of the Compact action.
· Name Index Performance - The process that reads the names index was reorganized into multiple threads for improved performance.
· Action Status Icon - The status icon next to each action in the Actions window could lag behind that action's actual status. The icon is now updated immediately after a status change.
· Archive Window Close - If an archive window was closed while timelines, highlights, or a search was still updating the display the QRecall application could crash.
· Cancel Capture - Canceling a capture action before it accomplished anything no longer displays a dialog in the QRecall Activity saying that "nothing was added" to the archive. Now the progress panel simply goes away.
October 6th, 2008· Delete Item Command
· The new Archive > Delete... command will delete arbitrary items from an archive. This is particularly useful for recovering space occupied by large files that you no longer want to keep and for removing old volumes and owners.
· Deleting an item expunges all record of items with the same name and location from every layer of the archive. Layer shading is ignored, so be careful. This action cannot be undone.
· When complete, it will be as if the delete item had never existed. Of course, if the item does still exist it will be added to the archive again the next time it is captured.
· File, folders, and volumes can all be deleted. Deleting all of the items in a layer will delete the layer.
· To delete a volume, select the volume in the Owners & Volumes drawer. To delete an owner, delete all of the volumes captured by that owner. (Delete multiple volumes one at a time.)
· Other Changes
· Excluded Directories
· The special .hotfiles.btree, .fseventsd, and .vol items are excluded from all captures.
· Actions Window
· The displayed status of actions is now reevaluated whenever a volume is mounted or unmounted.
· New Baseline Version
· The baseline version of QRecall is now 1.0.0(46). This was the release candidate prior to version 1.0.
· New archives created by this version of QRecall cannot be opened by a version of QRecall earlier than 1.0.0(46).
· Bug Fixes
· Free Space Recovery
· The amount reported when locating unused space in an archive was incorrect.
· Names Index
· A race condition could cause actions to erroneously report that names are missing from the names index, or to forget names in the index.
· Yes, this is almost identical to the names index problem that was fixed in 1.1.0(32) and 1.1.0(29). I swear this is the last bug!
· If actions report that names are missing from the index, reindex the archive. After a reindex, any name index problems should be reported by sending a diagnostics report (Help > Send Report...).
September 19th, 2008· There's a bug in the old scheduler that may prevent it from shutting down correctly. If you encounter problems after upgrading, restart Mac OS X.
· QRecall now records whether a volume was set to ignore ownership and permissions when items are captured from that volume.
· Recalling items that were captured from a volume that honors ownership to a volume that ignores ownership will present a warning dialog. This is extremely important when restoring a system volume: A copy of Mac OS X recalled to a volume that ignores ownership will not boot.
· Note: Items captured with an earlier version of QRecall are assumed to come from a volume that honors ownership (which is the safest assumption).
· A captured volume can now be restored to another volume simply by dragging the volume's icon from the owners and volumes drawer and dropping it directly into another volume in the Finder (e.g. the captured volume must be dropped into the root directory of the local volume). When you do this, QRecall will present a dialog asking if you intended to recall the contents of the volume into a new folder, or whether you'd like to preform a restore of the entire volume.
· The Archive > Recall To... command is still available and performs the same function.
· Log messages regarding capture filters is now less "noisy." User defined filters to items that don't exist get a minor note in the log. Automatically defined filters that are not applied now log only a terse diagnostic message.
· Installation messages are now grouped together underneath a single "Auto-install" or "Auto-upgrade" message. These messages will only appear when QRecall actually installs or upgrades components.
· If you attempt to recall two or more items with the same name to the same location, QRecall will now correctly display a message explaining that you can't.
· Fixed a number of display problems with the search mode. In particular, moving the layer shades while a search was active could display incorrect search results.
· Names Index
· The names index was not being updated correctly for newly captured or merged items who's filename was different than their display name. This could cause the item to be displayed using its literal filename in the browser. It would also cause the Verify action to report that the archive contained missing names.
· If the Verify is reporting missing names, reindex the archive. Afterwards, please send a diagnostic report if Verify continues to complain about missing names following a capture or merge action.
· The scheduler may continue running, or take too long to stop, when requested to terminate. This can cause problems attempting to upgrade or when logging out or shutting down.
· Running Mac OS X 10.4 (Leopard), the Help > Send Report command would successfully send the report but would never indicate that it had finished.
· Some toolbar buttons were enabled at inappropriate times.
· Filters to items that do not exist could cause the capture action to terminate with an internal error.
· A nifty feature that would automatically open the owners and volumes drawer whenever a new volume or owner (identity key) was added to an archive got broken. It's unbroken once again.
· When restoring items to a volume that has been renamed, QRecall will now restore to a volume with the same creation date and size as the original, even though the name of the volume is now different.
· If the log files cannot be created for any reason, the log messages are redirected to the system console.
August 28th, 2008· Improved grouping of log messages in the Log window.
· Problems encountered while capturing or recalling items are now grouped together by folder. All problems encountered while processing a particular folder are collected together underneath that folder's complete path.
· The various setup and authorization messages associated with installing or upgrading QRecall are grouped together.
· Unexpected program execptions are now caught, logged, and will cause the scheduler to restart rather than crashing.
· When the QRecall application starts it now reinstalls the scheduler if it was previously installed but isn't running, rather than just hoping that the launchd service will start it up again.
· A general problem exists when archive files are open by another process for reading while QRecall tries to update that archive. This can happen with any process (i.e. start copying an archive then capture to it while the copy is in progress), but it is most noticable with Spotlight, which immediately starts reading an archive whenever it changes.
· The index files in the archive are now updated in such a way that it should not conflict with another process reading the files at the same time.
· Fixed a race condition that could cause the "Locating free space" phase of a capture or compact action to terminate with an internal error.
· Random data inserted or appended to the archive's repository.data file could cause the repair action to either hang or exit with an unexpected error. Now, garbage data in the middle of the archive is correctly ignore and garbage at the end of the archive is deleted.
· Improved the handling of fast change detection in OS X 10.5 (Leopard). The operating system may, for a variety of obscure reasons, be unable to provide the list of folders that have changed since the last capture. When this happens, QRecall will now (correctly) deep scan the entire volume looking for changes.
August 18th, 2008· Items with zero-length extended attributes would cause a capture to fail.
· A byte-swapping bug in the Intel version of QRecall could potentially scramble an archive that contained extended attribute information.
August 15th, 2008· QRecall archives are now indexed by Spotlight.
· All filenames in the archive are indexed by Spotlight. Spotlight will list the QRecall archives that contain a filename matching the search words. Opening an archive from a Spotlight search will place the archive in search mode with that search term.
· Note: Spotlight indexing uses the new "names" index introduced in version 1.1.0(12) beta. If the archive has not been reindexed since upgrading to 1.1.0(12), searching will only find items captured using 1.1.0(12) or later.
· QRecall now captures and restores the extended attributes associated with an item.
· Items captured with a version prior to 1.1.0(25) have no extended attribute information. Restoring a previously captured item will not include any extended attributes, but nor will it erase the extended attributes when overwriting an existing item. In short, extended attributes are completely ignored.
· Items captured using 1.1.0(25) or later include extended attribute information. Restoring an item captured using 1.1.0(25) or later will restore the extended attributes of the item.
· For performance reasons, QRecall will only recapture an item when it changes. If QRecall has previously captured an item that had extended attributes, version 1.1.0(25) will not capture its extended attributes until the item changes and it is recaptured.
· Added code to the scheduler to make it more robust in the event of malformed or incomplete volume mount notifications. This should (hopefully) prevent the scheduler from terminating prematurely.
· Changed the file access mode of index files from shared read write to read-only.
· Samba (and potentially other network filesystems) don't translate/interpret the file access modes the same way that Apple File Protocol does, resulting in spurious access permission errors.
· There were issues with the User Logs In and User Logs Out event schedules when the "Start and run actions while logged out" option is not checked.
· With that option unchecked, the scheduler only runs while the user is logged in. This caused a problem with User Logs In event schedule: The log in event occurs before the scheduler starts running, so the event never triggers the action. Now, the logged in state of the user is saved by the scheduler so a log in event will occur when the scheduler restarts.
· The User Logs Out event will still never occur (for obvious reasons). A warning has been added to the actions window to indicate a User Logs Out schedule that will never run.
· If any component was unable to create or open its log file, the process would get into an infinite loop trying to log the error. Now, the process falls back to outputting all log message to the standard error console.
· Fast Change Detection (Leopard only)
· Changes that occur on an external volume might be ignored.
July 30th, 2008· The Repair command would randomly crash the QRecall application.
· Any QRecall component that failed to create or open its log file could crash. Now if the QRecall log file can't be created or opened, all log output is redirected to the console (which should include the reason the log file couldn't be opened).
July 14th, 2008· Self-Repair: Some actions would inadvertently modify the index files in a way that made automatic self-repair of the archive impossible.
· Merge and Delete Layers: A race condition could cause the action to crash.
· Running a previously saved merge action on an empty archive could result in an internal program error.
· Verify: Verify could report a duplicate directory record as an internal program error.
· The "Checking file lengths" phase of the Verify an Repair actions is now faster.
· Reindex and Repair action performace is now significantly improved for very large archives. In the past, disk thrashing would slow the reindex or repair actions as the amount of data grew. The larger the archive, the worse the performace, resulting in exponential repair times.
July 11th, 2008· A new search field in the archive window toolbar will quickly locate all item names containing the search term. Use the drop-down menu in the search field to customize the view while searching. If you've customized the toolbar and it doesn't contain the search field, choose View > Customize Toolbar and add it.
· Note: The real power of the search feature depends on the new names index (see Other Changes). The search will still work on archives that have not been reindexed, but the speed difference is dramatic; An unindexed archive that takes 5 minutes to search can be searched in as little as 10 seconds after reindexing.
· Send Report... Command - The new Help > Send Report command makes it easier to contact QRecall technical support with a problem. The command prepares a diagnostics report that consists of a system profile, copy of your recent log records, and any crash report files created by the operating system. The entire report is then uploaded to the QRecall support server. Send Report requires an active Internet connection.
June 17th, 2008· File Lengths: Neither the Verify nor Repair commands checked to see that all the data quanta of a captured file agreed with its total length. In extremely rare circumstances, the quanta list of a file would not add up to the file's total length. This wouldn't be a problem until the file was recalled; Recall does check that file's quanta agrees with its length and would fail if they didn't. Now, both Verify and Repair check the length of all files. If Repair finds a discrepancy, it correctly marks the file as corrupt and adjusts its length to match the actual data. If a verify fails using version 1.1b7 because of invalid file lengths, repair the archive to correct the problem.
· Repairing Duplicate Files, Folders, and Sessions: The Repair action is now much more robust when dealing with an archive that contains file, folder, or session records with duplicate identifiers. While this situation is highly unlikely to occur, it apparently has in at least one situation. Repairing an archive with duplicate identifiers will now correctly delete the offending records leaving a valid archive. Note: Be extremely leary of an archive that reports duplicate file, folder, or sessions. QRecall has no way of determining which of the two conflicting records contains the more accurate information. It simply preserves the oldest record and discards the most recent.
June 14th, 2008· Self-Repairing Archive - Archives are automatically repaired if damaged during an aborted capture, merge, or layer delete action. The capture, merge, and layer delete actions now record additional information in the archive which allows it to repair itself if the capture or merge is interrupted due to an unexpected termination (programmer speak for "crash") or a network or drive communications failure. When an archive is auto-repaired, it is restored to its last known valid state typically undoing all the changes made by the incomplete action. The next action to use the archive will first auto-repair the archive (if possible) and then continue normally. You can browse or recall items in a damaged archive that has auto-repair information without first repairing it. The Repair command has a new Use auto-repair information option. If selected, auto-repair information (if any) will be used to repair the archive before the normal repair procedure starts. If you only want to apply auto-repair information, use the Verify command; Verify first auto-repairs the archive if necessary. For the technically minded, auto-repair works by creating a map of the valid regions in the archive and those regions being modified by the running action. It also makes copies of key index files. If the action terminates prematurely, the map and saved index files are used to quickly restore the archive to a valid state. The disadvantages are that some QRecall actions now use more disk space (temporarily), and creating the auto-repair information takes time. The process is multi-threaded, so the overhead should be insignificant for most large captures (i.e. a daily capture of an entire hard drive). It may, however, slow down very small captures (i.e. an hourly capture of a project folder), espeically if the archive is large. Finally, an action that must first auto-repair an archive may take significantly longer than normal to finish. The compact action is not protected by auto-repair. If a compact action fails, the archive must be repaired using the Repair command. (If you are hosting an archive on a file server, install QRecall on the server and schedule it to merge and compact the archive locally. This will be faster and more reliable than doing it over the network.)
· Fast Change Detection (Leopard) - When running on Leopard, the capture action now queries the file system to determine what folders contain changes. This can dramatically improve capture performance as QRecall does not have to explore the entire drive to determine what has changed. In the archive, a new "bookmark" record is written at the end of each capture. It records both the scope and the point in time that the capture occurred. On the next capture, the bookmark is used to interrogate the file system to determine what folders changed between then and now. So be aware that the fast change detection won't be employed until the second time the capture is performed. Note: The new bookmark records will make an archive captured using QRecall 1.1 and OS X 10.5 incompatible with QRecall 1.0. Leopard's change detection is not foolproof. There a number of obscure situations where the file system will not accurately report the changes on a volume. To guard against this, QRecall won't trust bookmarked changes forever. After a certain period of time (approximately 7 days) the capture will ignore old bookmarks and perform a deep, exhaustive, scan of the entire directory structure looking for changes. Once the deep scan is finished, QRecall will return to using fast change detection for another 7 days. QRecall's tolerance can be altered by changing the QRAuditFileSystemHistoryDays advanced setting. This setting is a floating point value expressed in days, and currently defaults to 6.9. Setting it to 0.0 turns off fast change detection in Leopard.
· Improved Performance for Large Folders - Improved directory processing performance for large folders (those with more than 300 items).
· Activity Window Remembers Display Detail - The Activity Window now remembers the state of the disclosure triangle for actions. If you expand an action's progress display to show more details, the next time that action starts the display will still be expanded. The display state is remembered per action. The display of commands started interactively are still collapsed initially.
March 21st, 2008· The compact action will now do nothing if the amount of data the compact would have to move dwarfs the amount of unused space it would recover. It determines the ratio of unused space to the amount of movable data in the archive. If the ratio is less than 4%, the compact is skipped. This prevents QRecall from moving 200 Gigabytes of data to recover 1 Megabyte of free space (0.0005%) a gross waste of time and resources. Now, the archive would have to have at least 4GB of unused space before the compact action would do anything. This change only affects the compact action. The Archive > Compact command in the QRecall application will still reclaim all unused space in the archive.
· Worker thread switching is now more efficient. This improves the performance of parallel processing in capture, compact, verify, reindex and repair actions.
· Index construction is more efficient. This improves the performance of capture, verify, reindex and repair actions.
· A number of small user interface anomalies were corrected.
· QRecall Wakes the Display - While an action is running, it notifies the operating system that the file system is in use. This is to keep the system from going to sleep in the middle of the action. It has the unfortunate side effect of waking the screen. The new QRRunningMakesSystemActive advanced settting can be set to false to suppress this feature.
· Access Control Lists - Capturing an item with an ACL (Access Control List) and then attempting to restore that item to volume that does not support ACLs would result in an error.
· Mac OS X 10.4 (Tiger) to 10.5 (Leopard) Upgrade - Users that installed QRecall while running Mac OS X 10.4 (Tiger), then later upgraded to 10.5 (Leopard), may end up with two schedulers installed. The Leopard version of QRecall now checks to see if a Tiger-installed shceduler is present and removes it automatically. Note to downgraders: To downgrade from Leopard to Tiger, you must first uninstall QRecall in Leopard, downgrade to Tiger, then reinstall QRecall.
· The Log window is now faster, more responsive, and doesn't interfere with the rest of the application while it is loading.
· Fixed a bug under Mac OS 10.5 (Leopard) that would cause the window contents to "jump around" while it was loading.
· Scheduler and Multiple Volumes - While running Mac OS 10.4 (Tiger), connecting a hard drive containing multiple volumes would sometimes cause the scheduler to spontaniously stop or restart.
February 8th, 2008· General updates and corrections to the on-line help.
· The process that automatically upgrades QRecall shutting down and replacing old components with a newer version is a little more aggressive in Tiger.
· This should avoid a problem that would occasionally restart the old version of the QRecall monitor and/or scheduler before the new versions could be installed, leaving the old versions running instead.
· QRecallMonitor (the background process that provides the QRecall Activity Window) might incorrectly be restarted during a Log Out, Restart, or Shutdown. This will result a message that the selected action has been canceled by QRecallMonitor. Now whenever the monitor process is stopped for a Log Out, Restart, or Shutdown, the monitor signals launchd not to restart it.
· A valid Identity Key would sometimes display as "None" in the Identity Key Preferences.
· If a physical I/O error or erroneous end-of-file error occurred during a capture, the capture process could hang reading the next file. Note that an I/O error or end-of-file error should never happen, and either indicates a failing storage device or a corrupted file system. Nevertheless, QRecall shouldn't get stuck.
January 28th, 2008· QRecall has a new look.
· There are also a bunch of new toolbar icons for customizing your archive window toolbars.
· General updates and corrections to the on-line help to bring it up-to-date with recently added features.
· Includes a new keyboard shortcuts reference.
· Automatic Data Retry
· A number of users have complained that QRecall fails with data consistently errors. After some investigation, it has been determined that all of these have been caused to hardware problems most notably intermittent RAM failures.
· QRecall now attempts to re-read data blocks that appear invalid or fail their checksum verification. The data block will be read again into a new region of memory and the checksum verification performed a second time.
· If the second attempt is successful, a warning will be logged and the action will continue using the valid copy of the data.
· Stop a Repair - The final repair phase that copied valid data block from the damaged archive to the new one can now be stopped using the Stop button or command.
· Improved Action Communications - The scheduler, monitor, and QRecall application now do a better job of reconnecting to a running action if the communications between the two is interrupted for any reason.
· Typos - Corrected a number of spelling mistakes in the dialogs and menus.
· Fluctuating Directory Crash - QRecall could crash if the directory being captured was changing at the same instant.