Skip to main content

Changelog 100-149

  • version 149

    • all listctrls with an attendant delete button will now support the same action with the delete key
    • several normal tag boxes will support the delete key as well
    • added a temporary service cache to the client db to speed up service fetching until I can figure out a yaml replacement
    • cleared out inefficient tag and hash database fetching and generation code
    • tag parent dialog will now ask for an action/reason for every ( children, parent ) pair rather than every ( child, parent ) pair
    • fixed an error with collecting by rating
    • fixed the 'fix' to the gui_colours db update problem
    • the autocomplete dropdowns in the paths-to-tags dialog will no longer produce errors when tags are submitted
    • improved accuracy of taglist scroll-to-selected scrolldown calculation
    • collapsed some of the helter-skelter db code in prep for future improvements
    • moved daemon code to separate files
    • silenced server upnp errors
    • all except: continue lines are banished!
    • cleaned up some miscellaneous exception code
    • cleaned some ugly behind the scenes a/c dropdown button code
    • did some general code cleanup
  • version 148

    • rewrote thumbnail canvas and scrolling code from a crashtastic monolithic bmp to a lighter, faster, and more flexible page buffer
    • all custom gui elements should be less flickery
    • the manage tags dialog will now grow significantly taller if its parent window is also tall
    • dialogs launched by the media viewer will initially position themselves according to that, rather than the main gui
    • dialogs launched by controls will initially position themselves according the control's toplevelwindow, as originally intended
    • thumbnail download (for file repositories) no longer happens silently in the background; it will now occur in the repository sync daemon, reporting its progress in the normal repo sync popup
    • missing thumbnails are now replaced with the hydrus psi symbol silently, with a simple statement written to the log
    • fixed a tiny typo in update error code that was reporting version wrong
    • fixed a typo bug in gettagarchivetags
    • fixed a typo that had broken namespace sorting
    • numerous other single-line miscellaneous bug fixes
    • fixed a bug with displaying media with size (0,0)
    • fixed a bug with zooming in flash files
    • improved some buggy tag selection logic that was sometimes desyncing indices between menu popup and selection
    • tags will now stay selected even through changes to the tags list
    • any attempt to close the autocomplete dropdown floating frame should now bump the close event up to the whole program
    • linux release now includes source code alongside executables
  • version 147

    • fixed a problem when trying to do a multi-release update that contained the v146 update
    • fixed the 'canvas not resizing after media removal' bug
    • when an autocomplete appears in a dialog, the dropdown window will integrate into the dialog (rather than being a popup), allowing mouse interaction
    • refitted the paths-to-tags dialog so the different static boxes and newly embedded A/C dropdowns fit better
    • fixes to and cleanup of sibling tag retrieval code
    • fixes to and cleanup of sibling tag filter code
    • fixes to and cleanup of sibling tag search code
    • fixes to and cleanup of sibling tag display code
    • fixed a couple bugs in READ autocomplete tag search caching that was stopping namespaced queries searching properly if typed in manually rather than pasted
    • fixed a similar bug in WRITE autocomplete tag search
    • fixed a bug that was ignoring namespace entirely in WRITE autocomplete
    • synchronised subscription popups' new file buttons with the text
  • version 146

    • manage tags and ratings dialogs will now OK on F3/F4, not CANCEL
    • zoom switch (default shortcut 'z') will now work for images smaller than the media viewer's canvas
    • in the media viewer, the canvas-fitting zoom value is now inserted into a media's scrollable zooms
    • added 'tags box background' gui custom colour
    • volume, chapter, and page tags will sort properly again in thumbnail view, including last week's improvements
    • the thread watcher will no longer break its checking loop on non-404 http request or parse errors (i.e. the manual 'check now' button will still work after a misc error)
    • to remove clutter, the preview window will no longer show tags and file information like the normal media viewer
    • subscriptions will now show a live 'show files' button as they process
    • the copy and 'open new page' right-click menu options on tags will now work on more controls
    • cleaned quite a bit of tags box code
    • cleaned up and unified a lot of miscellaneous canvas zoom and display code
    • fixed an error when trying to upload a file petition without any accompanying file uploads
  • version 145

    • added custom gui colours for thumbnail backgrounds and borders, the autocomplete background, and media background and text
    • added <- and -> arrows to manage tags dialog launched from navigable media viewer
    • on empty input in the manage tags dialog, page up and page down work as shortcuts for the new <- and -> buttons
    • fixed the media height calculation for animations, so when they are vertically scaled, the total height including scanbar won't overflow off screen
    • allowed non-integer page, chapter, volume tags in display and sort calculations
    • semi-integer tags will sort along with integer tags and string tags like so: 0 < 0a < 0b < 1 < 2 < 22
    • improved the old tag/media sorting code
    • removed loli and shota from hentai foundry filter options
    • patched old db-stored predicates to attempt to convert to the new format when queried for _inclusive
    • this _should_ have fixed the recent export folder problems
    • created an 8chan board, and updated my various links, including in the client, to migrate from my old forum to this
    • added a 'fit to canvas' checkbox in file->options->media that will zoom small images to the full size of the media viewer
    • misc code improvements
  • version 144

    • files named 'Thumbs.db' will now be skipped in the import files dialog
    • fixed wildcard searches, which last week's predicate rewrite broke
    • fixed a typo that was showing namespace predicates as exclusive (-series:*) when they were actually inclusive (series:*) and vice versa
    • added wildcard namespace searching for database autocomplete queries
    • fixed database wildcard autocomplete searching when wildcard match is not the first word in a tag
    • fixed database file searching when wildcard match is not the first word in a tag
    • added a comprehensive suite of predicate-unicode conversion tests
    • cleaned and improved some of the downloader code
    • added five second per-gallery-page delay to subscription daemon
    • added three second per-file-delay for regular gallery downloads and subscriptions, just to be polite to those web services
    • added three second per-file-delay to the thread watcher for the same reason
    • added a 'check now' button to the thread watcher
    • fixed a problem that was sometimes causing subscriptions, when paused, to continually restart
    • removed unnamespaced tag parsing from deviant art
    • fixed creator parsing for deviant art, which was formerly cutting off the first character
    • patched an account sync problem in the manage tags dialog
    • in add tags by path dialog, tags are now sorted before being added to the file list
    • in add tags by path dialog, the regex sections now generate tags for every match in the string, not just the first
    • stopped collapsible panels resizing dialogs to minsize on collapse or expand
    • added shortcut for 'open externally', default Ctrl+E
    • moved 8chan to new 8ch.net domain (old domain still works)
  • version 143

    • when making a READ autocomplete tag query, instances of tags that only have a count in a single namespaced domain will no longer accumulate helper results in the non-namespaced domain i.e. no more 'blah (1)' 'title:blah (1)' dupes
    • improved the way the above results are calculated
    • pixiv artist downloading now correctly asks for numerical artist id
    • reworded some of getting started with files help page to better explain multiple selection
    • widened the splash screen a bit so db update messages have more space
    • all frames and dialogs now have an explicit minimum size that is usually far smaller than their initial size
    • the dialogs with listctrls (import files, manage custom filter actions, and so on) now start a little shorter in height
    • fixed some bad sizer flags in dialogs with listctrls
    • rebalanced content update throttling for quicker correction under heavy load
    • moved the new 5 second break in the gallery parser to a position for quicker status updates
    • the gallery parser will report total urls found when it is finished (even if that is zero) and wait a bit to let you read that
    • fixed services->news to hide if you aren't connected to any repositories
    • autocomplete boxes are now a very slight shade of blue, see if you like it
    • fixed 'launch file externally' for linux and os x
    • fixed 'launch directory externally' for linux and os x
    • fixed 'set up server for me' for linux and os x, I think
    • improved some general external-process-launching code
    • cleaned and improved some of the predicate code
  • version 142

    • added wildcards to autocomplete results and file queries
    • autocomplete results will match your wildcard _exactly_
    • a new predicate type will appear at the top of wildcard queries; selecting it will search files with that wildcard
    • the new wildcard predicate can be prepended with a minus sign to exclude from results just like normal tag and namespace queries
    • in wildcard predicates, namespace and/or tag can contain wildcard characters
    • added some wildcard help
    • putting in '***' as an autocomplete query is now a pretty bad idea!
    • fixed some logic in how tags are matched against unusual search input in the db
    • sped up and cleaned how tags are matched against search input
    • fixed some namespace logic in how tags are matched against search input
    • below-character-threshold autocomplete queries will now return all applicable namespace results (e.g. putting in '1' will return [ 1, page:1, chapter:1, volume:1 ], not just [ 1 ])
    • added 'open externally' to launch the file in default external program to thumbnail and media viewer menu
    • added a five second delay between gallery-page fetches in the downloader to reduce chance of 429 errors (this was affecting big sankaku searches)
    • added danbooru webm downloading
    • fixed a typo in the thread watcher
    • fixed a bit-rot bug that was stopping the 'like' ratings filter from launching
    • fixed right click menu in custom filter
  • version 141

    • combined mappings are no longer calculated and stored
    • recalculate combined mappings obviously removed from database menu
    • combined mappings no longer have to be recalculated on a service deletion; the accompanying 'this could take a long time' warning dialog is gone as well
    • combined mappings autocomplete counts are now calculated on-the-fly
    • combined mappings tag queries are now performed on-the-fly
    • combined mappings namespace queries are now performed on-the-fly
    • combined mappings zero/non-zero tag count queries are now performed on-the-fly
    • combined mappings regular tag count queries are now performed on-the-fly
    • corrected some logic with regular tag count queries, I think
    • autocomplete tag cache dirties and culls itself more efficiently on tag update
    • autocomplete tag cache dirties and culls itself more efficiently on file import/delete
    • removed a couple of non-useful AMP tests that were breaking due to a previous change in connection code
    • improved how popup messages give the gui permission to update; hopefully the gui will lock up less when big jobs with popups are happening
    • improved some misc timing logic
    • improved some repo sync timing logic
    • added simple emergency throttling to the repo sync daemon when the CPU/HDD is getting hammered
    • improved some repo sync text number-grammar and timing
    • added sankaku channel booru, including flash
    • the booru downloading code that discovers image urls is more flexible
    • improved my job pause/cancel logic so paused jobs, when cancelled/completed, will report themselves as no longer paused (this was affecting the downloader page, with paused jobs not dismissing themselves on a subsequent cancel)
  • version 140

    • if a repository or subscription popup message has nothing to report, it will dismiss itself
    • fixed handling of text popup display when the object passed was not text
    • delete orphans is now cancellable
    • vacuum, deleted orphans, and upload pending popup messages will dismiss themselves an hour after they are done
    • tightened the subscription final state popup message to just a title and a button
    • removed much of the very expensive autocomplete tag cache maintenance code, which seems not to be worth the effort
    • culled the autocomplete tag cache in prep for new maintenance cycle
    • fixed a resize timing bug that was causing large images to scale in an ugly way when the media viewer was launched in a borderless state
    • 'open selection in new page' will no longer default focus on the sort dropdown; it'll go to the media panel (this was causing scrolling confusion)
    • fixed a non-updating display bug when resizing frames/dialogs with auto-resizing listctrls on linux
    • cleaned up a wall-of-text error when closing the client immediately after deleting a tag service
    • filled a gap in static text image object cleanup
    • cleaned up some thumbnail waterfall/fade code
    • filled several gaps in thumbnail object cleanup
  • version 139

    • cleaned up all the old popup message code, and fully integrated the new
    • moved repo sync to the new popup messaging system
    • moved normal errors and db errors to the new popup messaging system
    • improved some error handling code
    • reintroduced message printing
    • improved subscriptions messaging
    • added cancel button to:
      • check file integrity
      • export to tag archive
    • added pause and cancel buttons to:
      • repository sync
      • subscription sync
      • pending upload
      • regenerate thumbnails
    • improved how jobs' pausability and cancelability are spawned
    • improved and harmonised a lot of pause and cancel and general shutdown-job-interaction logic
    • pausable and cancellable popups can only be dimissed with right click once they are done or cancelled
    • improved some more pause logic in the subscription and repository sync daemons
    • improved popup pause responsivity
    • added comprehensive cancelled/finished log statements for the newly pausable and cancellable operations
    • 'just woke from sleep' calculation will no longer evaluate to true on application start
    • deleted the old broken message log page, which I had forgotten even existed!
    • fixed a bug stopping adding tag repositories in the manage services dialog
    • fixed a bug that was hiding the 'name and credentials' panel in the manage services dialog
    • improved some kinds of thumbnail error reporting
    • sped up client boot by one second
  • version 138

    • created new 'maintenance and memory' options page in the manage options dialog, and moved some things over from 'files and memory', which is now 'files and thumbnails'
    • added options for idle, vacuum, and delete orphans periods to the 'maintenance and memory' page in the manage options dialog
    • fixed the incredibly annoying animated scanbar delayed-frame bug, where a click on the scanbar would not draw the new frame until the old frame's expected delay was complete. scanbar scanning is a lot smoother all around, now
    • animations now show their current frame number in the animation scanbar
    • status bar now shows inbox/archived counts on any selection
    • reworked static image zoom code so they resize beautifully, without jaggies, at the cost of a bit of CPU and memory
    • created new flexible message pathway
    • moved most messages to new pathway
    • improved a bunch of message and job_key related code
    • btw: messages will no longer close themselves; their end state is now to report what happened until you dismiss them. if this turns out to be annoying, I'll change it
    • fixed the pending menu not updating its count when files imported and added tags via archive sync
    • improved the logic behind the 'computer just woke from sleep' calculation
    • improved the accuracy of the 'client is currently idle' calculation
    • improved database vacuum so the .db-wal file is flushed afterwards, for both client and server
    • because of better vacuuming, server db backup no longer needs to create a bloated .db-wal backup
    • removed a very common superfluous empty tag upload packet in normal tag uploads
  • version 137

    • eliminated a loophole in the tag-pending process that allowed zero-length subtags through during archive sync
    • improved the way tags are cleaned and checked, no matter their source
    • added zero-length subtag (e.g. 'character:') checking and exclusion to the server
    • removed erroneously pending or current tags that have a zero-length subtag
    • added 'copy bitmap' option on still image right-click menu
    • harmonised a whole bunch of clipboard code
    • added a check file integrity db function, with quick filename existence and thorough content hashing modes
    • added clear service info cache debug function to database menu
    • added regenerate combined mappings debug function to database menu
    • added a primary key to the hydrus tag archive db to save some space on duplicate mappings
    • added AddMappings to the hydrus tag archive to make mass mapping-adding a bit more efficient
    • added DeleteTags to the hydrus tag archive
    • added Get/DeleteMappings convenience synonyms for Get/DeleteTags for the hydrus tag archive
    • added an 'export to hydrus tag archive' button in the advanced content update dialog
    • renamed the db tag archive sync methods to better reflect what they actually do
    • massively simplified how cursors are referenced inside the client and server databases
    • cleaned up some db cursor code
    • fixed a critical error in the database test code that was spawning a double db mainloop
    • improved error handling when regenerating thumbnails
    • fixed error handling when waterfalling thumbnails
    • fixed a typo in export tags process
    • improved the way the client flushes its buffered log data to disk
    • added log buffer flushing to the server
    • added a confirm dialog to advanced content update dialog's powerful 'go' button
    • added custom titles to many co-opted yes/no dialog boxes where the default 'Are you sure?' didn't make sense
    • cleaned up some misc code
    • cleaned up some misc bitmap language
  • version 136

    • added tag archives
    • added tag archive sync initialisation on all existing local files
    • added tag archive sync maintenance on newly imported files
    • added a new db directory, client_archives
    • added tag archive sync options to tag services in manage services dialog
    • added local tags service to manage services dialog
    • added sha512 to local hash cache
    • added tag archive hash_type guessing
    • added a new dialog for selecting n arbitrary strings
    • got testing to work on all platforms
    • fixed the hydrus server for linux and os x; it now has a stay-alive frame rather than a taskbaricon
    • improved some dialog testing code so it would work on all platforms
    • fixed a deffered problem that was causing the server AMP test to hang on Linux and OS X
    • neatened and harmonised a bit of common file and network streaming code
    • improved some misc manage services dialog code
    • fixed a critical bug that was meaning certain service changes were not being saved to the database, so were being forgotten on restart
    • fixed some select-string code that wasn't taking sets of strings for a weird wx reason
  • version 135

    • added a menu option to any tag's right-click menu to open a new search page for that tag
    • added a subscription cache to the client database to speed up subs checking
    • added a filter to the message popup system so those annoying and 99% pointless PyDeadObjectErrors will not display. they will still be written to the log
    • cleaned up a couple of temporary file deletion errors
    • improved some more temp file deletion error handling
    • fixed a bug that I think was stopping file repositories from being deleted
    • improved the manage services db edit log
    • fixed a bad comparison that was causing superfluous edit actions after a manage services dialog ok
    • fixed a new bug related to displaying non text in the popup system
    • added a 'just woke from sleep' check to all daemons, so CPU heavy stuff like repository sync will not initialise if you just woke your computer. the grace period lasts about ten minutes
    • retuned the way the subscrption daemon initialises (it'll now wait two minutes after startup before firing)
    • fixed a typo that was causing fatten service info to fire more often than it should
    • added a yes/no warning to options ok when the thumbnail dimensions have been changed
    • added a popup message when thumbnail dimensions have been changed to report on deletion progress
    • added account testing to my server db testing suite
    • improved the security of the registration_key->access_key transaction; it'll now generate a new access_key with every call
  • version 134

    • updated to wx 3.0.1.1
    • fixed a critical media scrolling bug due to the wx update
    • improved some bad media scrolling code, sped things up a bit
    • fixed 'top' and 'bottom' media scrolling events
    • fixed a typo that meant the default fullscreen media browsing shortcuts were ctrl+ appended rather than working on their own
    • overly-verbose errors and other text popups are now cropped to 1KB for gui display, with a notice. the full message will be printed to the log as usual
    • improved how severe boot crashes are reported
    • fixed a bit of text-reporting code that wasn't handling non-text very well
    • improved handling of a weird popup message manager error
    • fixed an occasional overhasty cleanup error in the checkimportfolders daemon
    • added options for default values for the thread watcher's number of times to check and check period
    • fixed the thread watcher complaining about closing when the checking was finished
    • optimised some id generating code to stop spamming the id cache, which I think was overloading after a while and causing weird PyAssertionErrors
    • neatened autocomplete dropdown service storage and menu id generation
    • improved menu id generation for tagbox
    • fixed opening new petition page from view menu
    • added a 'this might take ages' warning yes/no dialog when trying to delete a tag service
    • added a little popup message info to report on progress when deleting a tag service
    • added some server db testing
    • fixed an error when double-clicking a tag in a page without search predicates
    • updated some help links from mediafire to the new github releases page
    • fixed a typo bug in server db's account flushing code
  • version 133

    • reworked the add file process to correct file repository file counts
    • made add file process to calculate inbox and local thumbnail count more efficiently
    • fixed a critical bug in server db creation that was stopping file repository service from working
    • added go/exit fullscreen options to fullscreen right click menu as alternative for default shortcut 'f'
    • improved fullscreen position, size, maximised, and borderless state memory
    • removed old 'fullscreen_borderless' option in local options
    • thread checker now supports 8chan urls
    • thread checker now has 'number of checks still to do' spin control so you have more options to fire and forget
    • improved how the thread checker constructs and passes url information around
    • improved some thread checker timing logic which _might_ have been causing problems
    • improved some thread checker error reporting
  • version 132

    • merged two complicated serverside account tables into two simpler tables
    • with this action, was able to clean out a lot of rubbish old server account code
    • made it so accounts can only be on one service. existing (admin) accounts that straddled sevices will have new access keys printed in a text file in the base installation directory on server update
    • rewrote the account object to be simpler and easier to maintain
    • swapped the old rubbish 'account_id' identifier in the account object for the much better 'account_key' identifier
    • harmonised some conflicting account-related variable names
    • refined the way the unknown account is stored and identified
    • split serverside account verification and identification into two separate paths, to reduce chance of security problems
    • reworked account identifiers (a general purpose account identifying object that is used in admin-server interactions) and their associated db functions to be more secure and reliable
    • simplified account data use checking
    • simplified and harmonised the way used bytes and used requests are stored and retrieved in the account and account type
    • with guarantee of account_key uniqueness across entire server, I have simplified session code in several places
    • updated help to reflect the new relationship between access keys and account keys
    • added 'copy account key' button to review services, which will now be the thing for users to use if they need an admin to modify their account
    • fixed serverside credential verification for non-instantiated (still have a registration key) access keys
    • added a bit of explaining text to the 'waiting' autocomplete state
    • fixed a typo that caused errors when deleting files from a file repo
  • version 131

    • removed tag service precedence and its various expensive and overly complicated effects
    • recalculated combined tag mappings using new simple union based merge
    • cleaned updatemappings code, and I think fixed some tiny count logic bugs
    • refactored eight overly complicated sub-functions of updatemappings down to two simpler ones
    • fixed up a mention of tag service precedence in help
    • deleted a bunch of old client update code
    • added adaptive throttling to tag updates, so they'll speed up and slow down based on current CPU load
    • refined a bunch of the parent and sibling code, given the new changes
    • updated and cobbled back together a host of finicky parent and sibling and regular tag test code, given the new changes
    • fixed a bit of logic in the censorship code that was causing overly broad namespaced matches
    • fixed error when selecting a specific tag service in a normal search
    • deleting a service no longer throws an extraneous error after it is complete
    • fixed danbooru large pngs, which were being resized in a way that broke some of the downloader's url prediction code and caused 404s
    • fixed a bug in the input custom filter action dialog
    • fixed a misc clientserviceidentfier bug in custom filter initialisation
    • fixed setting numerical ratings from a custom filter (I think) and I think fixed many other custom filter operations
    • fixed several text-entry-dialog-launched-from-dialog bugs
    • fixed, I really think for real this time, the serverside account desync bug. it was in session init, where I had not previously looked
    • improved some popup messages' text
    • improved the way some exceptions are reported
    • cleaned some error reporting code
    • silenced the more-annoying-than-useful account sync failure popups
    • fixed and cleaned server start/stop/restart code a bit more
    • reduced regular CPU hit from resize thumbnail daemon and made it more polite in starting
  • version 130

    • fixed youtube downloads
    • fixed remote services not showing in OS X manage services dialog
    • updated 'running from source' help page with some new info for Linux
    • cleaned a little more code
    • fixed bug that was stopping new/modified serverside services booting immediately
    • improved the server-client service key translation code on serverside service modification
    • fixed test credentials button in manage services dialog for unsaved services
    • fixed bandwidth tracking errors for unsaved services
    • deleted some old unused server options code
    • improved server services start/stop code a bit more
    • massively rebalanced the autocomplete maintenance routine after a tag service deletion or tag service precedence change
    • made a mess of some of the deleted tag update processing code, I'll fix it next week
  • version 129

    • fixed a typo in launching the ratings dialog
    • did some important code cleanup re a common ambigious variable name
    • improved serverside account tracking in a way that will help future user management clientside too
    • improved serverside session code a bit more
    • improved general serverside login
    • improved serverside access key verification
    • aligned server db update code with the client's only-update-up-to-50-versions rule
    • fixed some buggy repository test code
    • fixed some buggy local booru test code
  • version 128

    • fixed right click on thumbnail error
    • improved assumed permission defaults on tag dialogs and right click download/upload actions (i.e. tag dialog's entry A/C will no longer disappear when you desync from tag service)
    • removed account desync on network version mismatch, to stop this problem anyway
    • fixed tag parents not showing in autocomplete dropdowns
    • added sqlite3 command line tool to db folder for convenience
    • fixed a typo in manage server's services dialog
    • some misc code cleanup
    • added default advanced tag options pane to manage options dialog
    • added default advanced tag options to manage subscriptions dialog
    • fixed booru namespaces in manage subscriptions dialog to be booru-specific
    • added default advanced tag options to normal download pages
  • version 127

    • finished service_identifier rewrite, phew
    • added an exception catch for full program crashes; big errors will now be written to crash.log
    • added a shutdown check to make sure popup message manager closes properly when certain weird errors occur
    • 'files_service_identifiers_cdpp' is now renamed to the vastly less insane 'locations_manager'
    • removed db update code older than 50 versions
    • a new error message will display if trying to update more than 50 versions in one go
    • many other small fixes I didn't keep track of
  • version 126

    • restored a dll that I thought was no longer needed, but was actually doing some weirder gif rendering
    • added 'remove' to fullscreen menu
    • harmonised thumbnail and fullscreen right click menus a bit more
    • added pause button to popup messages for repo update and subscription processing
    • moved service_identifier switchover forward
    • moved all service fetching to streamlined and non-laggy manager
    • changed client options to store default tag repository in a better way
    • changed subscriptions to store their advanced tag options in a better way
    • fixed a 'missing service' bug in advanced tag options
    • remade idle calculation into a much better gui-based rather than db-based test
    • fiddled more with maintenance timing, hopefully for the good
    • new screenshots in the help index pages!
    • improved how auto repo and server setup work and report their status
    • the client's UPnP daemon will no longer spam errors if your IGD doesn't support UPnP
    • fixed a bad db call in server's UPnP daemon
  • version 125

    • moved client splash screen and client boot to application event loop (i.e. your mouse won't hourglass over it now)
    • splash screen is now draggable
    • added splash screen for client shutdown
    • cleaned up shutdown procedure
    • added detailed A/C timing options
    • created a new text entry dialog that won't allow ok on empty text
    • hence fixed a startup bug when a session was created with no name (and likely others!)
    • further tweaked idle calculation to improve maintenance routine
    • revised a bunch of the maintenance timer logic
    • fixed some bugs in the maintenance timer logic
    • fixed a daemon error reporting typo
    • fixed another way session data usage tracking could split, server-side
    • brushed some more dust off the server-side session code
    • improved some bad image processing nomenclature
    • took first steps in service_identifier replacement rewrite
  • version 124

    • fixed some more broken gifs (those with funky transparency, I think)
    • fixed a critical bug in the subscriptions dialog that was causing subscriptions to be deleted
    • reintroduced old locale code, with minor improvement, to fix number grouping (123,456,789) issue
    • added a short pre-activation wait to all daemons to reduce more wake-from-sleep problems like the UPnP issue last week
  • version 123

    • rewrote the old gif rendering code to the new system, so gifs with variable framerates now work again!
    • fixed a bug that was stopping the first zoom of an image from showing if it took more than a frame to render
    • webms are now zoomable beyond frame border
    • webms will now respond to keypresses and mouseclicks when cursor is inside their border
    • added service select to import metadata
    • if repo sync is paused, either globally or individually, repo will no longer try to regularly sync their accounts
    • fixed individual repository pause sync
    • I think I fixed a serverside session synchronisation bug that was causing too-small data usage reports
    • improved complicated tag action descriptions in manage tag dialog
    • hastened initialisation of subscriptions daemon
    • hastened initialisation of subscriptions dialog
    • neatened all object declarations
    • fixed a menu bug in OS X
    • added put a little delay in the upnp daemon, hopefully to stop the error popups after waking from sleep
    • updated an old hacky bit of locale code that was breaking certain platforms of wx 2.9.5.0
    • improved animation and other rendering timings on non-windows platforms
    • improved media focus on non-windows platforms
  • version 122

    • fixed server upnp daemon to use correct port, I think
    • added client upnp daemon for local booru; it'll update upnp mappings as soon as they are changed
    • added bandwidth tracking for local booru; it'll even magically update before your eyes in review services
    • bandwidth limits are tested, so exceeding data usage will result in 403 errors until the next month
    • moved local booru css to an external file any user can edit
    • added 'open share in new page' button to local booru review services
    • fixed local booru display for video, flash, audio, pdf and miscellaneous
    • fixed local booru render resolution for all media
    • fixed local booru thumbnails for video, flash, audio, pdf and miscellaneous
    • added caching headers to static file requests to reduce browser-hydrus bandwidth
    • fixed local booru page text's newline formatting
    • added local booru unit tests
  • version 121

    • first version of local booru
  • version 120

    • improved quality of downsized animation rendering
    • sped up downsized animation rendering in this case
    • neatened animation code
    • fixed a mid-animation resize parameter bug
    • I think I fixed an animation scan bug that was sometimes giving the wrong frames
    • added thumbnails for all video formats
    • fixed an off-by-one framecount bug for certain videos, and retroactively fixed counts for existing videos
    • fixed a couple harmless width/height numpy.shape switcharounds
    • cleaned up some file parsing code
    • added a pixiv unit test
    • fixed a bug when servers were returning unusual relative redirect urls (gelbooru)
    • semi-fixed a bug when servers were returning unescaped redirect urls (gelbooru)
  • version 119

    • fixed an overzealous error in v118 update code
    • new direct ffmpeg video decoder for webm
    • new system takes advantage of multi-core processors, increasing render speed
    • improved animated frame timings
    • fixed a number of gifs that were causing the "None has no 'shape' attribute" error
    • sped up memory and subprocess cleanup after video playback
    • added some new ffmpeg instructions to the running from source help page
    • added client and server startup and shutdown statements to the log
    • improved some idle time logic, which should improve maintenance timings
    • fixed a critical idle timing bug that was adding 1s to many actions, including file queries!
    • fixed a pubsub testing bug that was preventing daemons from quickly closing after a unit test
  • version 118

    • improved animated frame buffer size calculation, saving memory and improving smaller animation performance
    • improved quality of static image thumbnail generation
    • fixed webm mouse event propagation
    • updated and improved perceptual hash code
  • version 117

    • fixed the gif rendering error that was causing threading lockup
    • fixed a bug in the animated drawing code that was causing +5ms duration on every frame
    • improved frame duration checking code
    • lowered quality of animated frame resizing to improve effective framerate for previews
    • fixed a problem with pixiv session management
    • fixed a problem with pixiv tag subscriptions
    • neatened an error with pixiv manga download failures
    • corrected reviewservices hyperlinkctrl initialisation
    • improved the wording for the 'port already bound' error message on client startup
    • improved hydrus network session error handling
    • cleaned up some old gui messaging code
    • some general image/video code nomenclature cleanup
    • changed http connection maintenance daemon to be snappier on client shutdown
    • subscription minimum check period is now 1 time unit, not 0!
  • version 116

    • gifs now render their frames as needed, rather than building a giant memory-hogging cache of all of them
    • webms now have thumbnails!
    • refactored important hydrus threading code to a separate module
    • added new 'call-to' worker threads for snappier job-thread behaviour
    • fixed a typo that was stopping new repositories being entered in the manage repositories dialog
  • version 115

    • moved review and manage services windows to a local/remote dichotomy
    • moved local booru service code generally forward
    • added local booru service to db init/update
    • added booru to review services
    • added booru to manage services
    • neatened some misc client code
    • improved static/animated image rendering code in general
    • added some cv stuff to gif rendering code
    • cleaned up gif rendering code
    • sped up animated gif rendering by about 5-10 times!
    • added some cv stuff to static image rendering code
    • cleaned up static image rendering code
    • sped up static image rendering up to 4 times!
    • image import should generally be faster
    • pulled animated images off the image cache, reducing memory usage
    • added some clever compression that cuts image cache memory usage in half!
  • version 114

    • gif rendering seems to be fixed in all cases! hooray!
    • fixed 'pop from empty list' popup error spam in the new cache clearing system
    • fixed weird behaviour on right-clicking 'dismiss all' popups button
    • added a unit test for perceptual hash generation, with an eye to moving the delicate code from cv to cv2
    • updated opencv to 2.4.9
    • updated pyinstaller, so frozen releases may be a bit more stable!
    • moved webm and mkv info parsing over to cv, which allows num_frames
  • version 113

    • added mkv+webm support!
    • fixed some system:mime selection stuff
    • fixed a missing db call in the server upnp daemon
    • fixed upnp dialog's edit button
    • cleaned up upnp dialog's post-button refreshing logic
    • fixed getupnpmappings to deal with >10 mappings
    • fixed fullscreen_switch for custom filter
    • fixed a late canvas drawing exception when fullscreen window was closing due to being media-empty
    • rolled back to wx 2.9.5 for windows again. not worth the trouble, right now
    • hydrus caches should now clean up anything older than twenty minutes
    • 'last session' will now be saved every five minutes, rather than only on a successful close
  • version 112

    • A/C dropdown is fixed on linux!
    • wrote new UPnP library based on miniupnpc multiplat executables
    • integrated new UPnP library into existing client code
    • upnp management dialog should now work for os x and linux
    • integrated new UPnP library into existing server code
    • added UPnP unit tests
    • fixed a bug when upnp executable path had whitespace
    • renamed 'add, remove or edit services' to 'manage services'
    • fixed some review services frame text display issues for restricted non-repository services
    • optimised review services frame initialisation db requests
    • added a database maintenance routine that should help review services launch a bit faster on average
    • improved manage services layout a little bit
    • removed initialise server button when it is invalid
    • updated 4chan thread url parser to handle new 4chan thread urls
    • redirected 4chan thread downloader to new api address
    • fixed an error reporting problem in repository sync
    • fixed my linux dev environment, so linux executable is back
    • changed wx requirement to 2.9 on linux, due to bugs in linux 3.0.0.0 release
    • fixed a typo in repository deletion
    • added repository deletion to unit tests
    • added num_base and num_step to file path regex dialog
    • fixed popup display of certain exceptions, including file parsing exceptions
    • cleaned up os x and linux build scripts, added static&help sync
  • version 111

    • fixed booru searches that include unusual characters like '&'
    • added pause synchronisation to individual repositories in the manage services dialog
    • fixed gui_sessions with predicates (again!)
    • added a unit test for gui_session storage, shouldn't get problems with that again
    • fixed a getcountlesscopy predicates bug
    • first step in multi-platform upnp support is DONE, phew
    • harmonised subscription file import errors with normal hdd import errors. they nshould be a bit clearer
    • corrected how popup text width is enforced
    • added a warning to the reset cache button in the manage subscriptions dialog
    • os x autocomplete dropdown seems to be magically fixed, not sure how or when that happened
    • started HydrusBooru
    • fixed some problems with twisted startup/shutdown in unit testing
  • version 110

    • fixed a variable overwriting issue in the subscription daemon error reporting code that was causing error spam
    • fixed more actual and potential instances of this error elsewhere
    • fixed a bug in the import file error system for non-local files
    • fixed url parsing for urls lacking 'http://' or 'https://'
    • fixed hentai foundry image parsing for two different cases
    • fixed client gui-initiated db backup to also backup client_updates folder
    • A/C dropdown now shows current and pending counts separately!
    • fixed display of uncaught database exceptions
    • new version of sqlite for windows, might speed some things up a bit
    • upgraded a bunch of other libraries, look forward to mysterious new bugs!
    • I _think_ some transparency support is improved
    • moved messaging forward
    • dropped processed_mappings experiment
    • removed a bloated mapping index, hopefully speeding a couple things up
    • fixed an erroneous error message in hydrus network session manager
  • version 109

    • started processed_mappings table. for now, it mirrors normal mappings table
    • improved manage tags dialog logic
    • fixed only_add issue for parent tags
    • fixed an important tags box surplus tags display bug when focus repository was changed
    • fixed petitioned tag counts in tag boxes, as long as 'all known tags' is not selected
    • fixed occasional zero tag count in tags box
    • added petitioned tags to normal media fetch, not sure why they were missing
    • fixed a random error when trying to refresh a 'open selection in new page' page
    • improved help to reflect new manage tags dialog
    • cleaned up an annoying spam-text-to-console issue when running test.py
    • reworked the way the server clean/create update daemons interface with the database
    • improved how updates are stored and fetched in the server db--no longer needs a db hit to fetch
    • harmonised client db's update naming convention to the server's
    • improved server db to update the same new-ish way client db does it
  • version 108

    • added 'database->delete orphan files' for manual firing of this maintenance routine
    • improved redirect location parsing--should fix the booru 'Could not connect to None!' errors
    • fixed 4chan thread downloader's erroneous 'still working' warning when trying to close while paused
    • added multiple additions to manage tag parents dialog
    • added multiple additions to manage tag siblings dialog
    • generic improvements to both dialogs
    • manage tags dialog now shows all the selection's tags combined, not just the tag intersection
    • multiple improvements to manage tags dialog
    • reworked some tagsbox classes to be more flexible
    • improved dialogsetupexport's use of tagsbox
  • version 107

    • converted 'namespace blacklists' to more general 'tag censorship'
    • tag censorship now accepts unnamespaced tag bans
    • tag censorship now accepts all namespaced tags bans
    • tag censorship now permits bans for all tag services
    • fixed several small bugs carried over from the namespace blacklists code
    • added a bit about tag censorship to help, under advanced.html
    • fixed youtube downloading
    • file import dialog now ignores dupe paths
    • improved update status text in review services window
    • fixed erroneous capital P on pending menu
    • fixed shortcut input dialog's ok button
    • fixed modify tags dialog's admin modify button
    • added several bits of explanation text to advanced dialogs
    • added more helpful timestamp to news dialog
    • neatened export dialog's layout
    • corrected some double-escaped backslashes in the export filename pattern button menu
    • fixed modify accounts dialog's http request
    • improved grammar in db pubsub code
  • version 106

    • download by raw url now sends the correct text to the popup on successful import
    • first step in peer-to-peer repository sync is complete
    • repository updates are now stored as local yaml, in the new client_updates folder
    • repository reset keeps the downloaded updates, only does a reprocess
    • all repository updates should process faster, especially if you have saved sessions
    • a lot of misc gui lag should be reduced, especially if you have saved sessions
    • the way the gui's menubar is updated is massively improved
    • os x and linux menubar should be less spastic
    • several improvements to daemon pubsub workflow
  • version 105

    • complete rewrite of message data handling and display
    • hidden gauge messages will now display correctly
    • fixed error-display bugs in the log page
    • massively improved how database errors are generated and displayed
    • improved and streamlined how other errors are generated and displayed
    • improved the way all gui elements are deleted from memory
    • fixed the frequent segfault in os x and linux when closing popup messages
    • fixed the common segfault in os x and linux when refreshing a query
    • fixed the occasional segfault in os x and linux when closing a page
    • fixed pattern shortcut buttons
    • the 'show deleted' checkbox on manage tags dialog makes a return
    • neatened several checkboxes so clicking the label text clicks the checkbox
  • version 104

    • first version of export folders is ready
    • cleaned up all ok and cancel dialog behaviour
    • cleaned up some misc dialog button code
    • fixed up some ugly db yaml pubsub stuff
    • fixed a juddering 100% CPU loop in the subscriptions code
    • subs and repo sync will now put up a popup gauge
    • repo sync will now pause mid-update on repository pause
    • services->pause->stuff will poke daemons to restart more reliably
    • removed the service status area of the statusbar
    • fixed 'subscriptions forgetting their tag options' bug
    • added select invert, thanks to @fluffy_cub for contribution
    • fixed a slight logic bug with display of select archive/inbox
    • added better instructions on how to run in OS X from source, thanks to user steenuil for contribution
  • version 103

    • fixed a virtual size issue with expanding collapsible panes inside scrolling windows :S
    • fixed images not showing on first zoom switch
    • improved touch and feel of image/flash scanbar
    • subscriptions dialog is now flattened
    • reworked advanced_tag_options to be more efficient and flexible
    • fixed a couple bugs in advanced_tag_options
    • moved fake http unit tests to a fake version of the new networking system (so much better, now!)
    • moved real http unit tests to new networking system (so much better, now!)
    • fixed up a last couple network things
    • I probably fixed some file upload code, as well
    • cleared out old network code
    • fixed a fake pubsub problem in unit tests
    • made a single new db table for consolidating:
      • 4chan_pass
      • pixiv_account
      • boorus
      • favourite_custom_filter_actions
      • gui_sessions
      • imageboard_sites
      • imageboards
      • import_folders
      • subscriptions
    • couple small help edits
    • fixed view->new booru download page
    • started export folders
  • version 102

    • initial linux release
    • rewrote running_from_source.html
    • altered some service object and db stuff to look after null access keys and temp services a bit better
    • key registration works on new network system
    • all downloaders use new network system
    • A/C timer tweaked a little more
    • did some timer event grammar improvements
    • improved button behaviour in import files dialog
    • backing up a server no longer causes a timeout problem
    • prototype export/import tag metadata is done
    • rewrote the way animated gif frames are navigated and thrown to screen
    • fixed an issue that was causing some dialogs to OK when escape was pressed or the close cross was clicked
    • this above issue included the enter system predicate dialog
  • version 101

    • fixed another update problem for clients <v95
    • uploading pending content should be less gui-blocking
    • fixed numpad navigation of page chooser to work for qwerty rather than dvorak as default
    • os x page picker now obeys arrow and numpad keys for navigation
    • os x command key should be treated as ctrl now, for better cross-platform compatibility
    • a couple more cmd/ctrl confusions cleared up
    • os x menubar disappearing after fullscreen problem fixed
    • added stateless http connection manager
    • simplified how http works in hydrus
    • http connections now used more efficiently
    • better cookie parsing
    • better http application shutdown handling
    • some misc http bugs fixed
    • new http error handling should limit occasional spam-errors
    • moved all hydrus http connections to new manager
    • moved many non-hydrus http connections to new manager
  • version 100

    • MVC import_controller system created
    • download gauges lag reduced
    • download cancel button desync bug fixed
    • download error code harmonised
    • download async code pushed to threads
    • download job key checking and management improved
    • download queue feed timer will obey page-hidden pause status
    • download success and exception handling harmonised
    • download on-close thread-signalling much improved
    • download pages now take responsibility for download code factories
    • download management panel code harmonised
    • download management panels made much more MVC
    • download error reporting is much improved
    • download fail management is much improved
    • download button response is much faster
    • download progress display is split into the easier to read file/queue/builder trichotomy
    • download display indices are less schizophrenic
    • lots of misc improvements to download code and nomenclature
    • thumbnail page's refresh and select menu items now only appear when appropriate
    • thumbnail page's select menu will only show inbox/archive sub-items when appropriate
    • thumbnail page's menu is less buggy generally
    • db updates are now parcelised into each version, rather than one big job
    • improved db version update notification
    • a problem with updates from ~v70 to >v95 is fixed
    • fixed a bug in popup message dismissal
    • database exception formatting improved
    • database exception display spam reduced
    • database exception redundant traceback removed
    • autocomplete character-search-delay time extended from 150ms to 250ms
    • async wx window destroy code improved in certain places
    • improved non-wx-thread popup error reporting
    • some other bugfix, grammar and nomenclature stuff I can't remember