jstanden
06-26-2008, 01:01 AM
* [Performance] Fixed a major design inefficiency in our SMTP mail service. The SwiftMailer library allows for persistent SMTP connections during a request cycle, but our getMailer() service was creating a new connection every call. This meant places that are very e-mail send heavy, like watcher notifications and e-mail parsing, were creating and closing (n) SMTP connections during those processes. Originally this was because our getMailer() service allows run-time changing of SMTP servers, for either testing or to let each 'Group' use different SMTPs when necessary. Now, internally, our getMailer() service will hash the server parameters and maintain persistent connections to various servers for each page cycle where SMTP functionality is required. This should also help address the "Too many messages in one go?" SMTP error popping up occasionally.
* [Performance] Added a new option to the 'Outgoing Mail' section of Helpdesk Setup->Mail Servers for setting the maximum deliveries to attempt per open SMTP connection. After this number, a new SMTP connection will be created in the background. The default is 20. Fine-tuning this option will depend on your MTA (Postfix appears to have no limit, but other MTAs will limit the number of messages sent per connection). If you have trouble with this, set it to 1.
* [Platform] Updated several dependencies to their latest stable versions: YUI, SwiftMailer, ADODB.
* [Platform] Removed many YUI packages that we weren't using. This should chop off another 10MB or so from the download and installation footprint.
* [Cron/Scheduler] You can now overload several /cron parameters at run-time. This is especially helpful if you're a host who is running multiple instances of Cerb4 for clients and you also manage their crons. On our machines at WGM, we have hundreds of hosted helpdesks firing up their maintenance job at the same time (midnight, the default). We also have some clients who "helpfully" set their max parses or POP3 downloads to '999' while having a very slow POP3 server they're pulling mail from. These new overloads are added to the URL you're pinging with something like 'wget'. An 'ignore_wait' flag has also been added to force a scheduled job to run if it's unlocked and enabled, regardless of when it's scheduled to run. The new parameters are: &ignore_wait=0/1; &pop3_max=n; &parse_max=n; &maint_max_deletes=n;
* Added fulltext searching to the message content field: booleans, boosting, wildcards, phrases.
* Fixed wiki links in the app from wiki.cerberusdemo.com to wiki.cerb4.com
* [Localization] Added per-worker timezone support. Workers can set their timezone from the 'My Account' link at the top right. Timezones will continue to default to the server time if not set. This should cover all date/time entry and displaying, such as entering "5pm" on a "Next worker until" date entry box.
* [Scheduler] When you click 'Run Now' on a scheduled task (from 'Helpdesk Setup' on the 'Scheduler' tab), it will now run without regard for the current waiting time (but not if locked or disabled). This is the expected behavior.
* [Platform] Updated the 'Smarty' dependency to the latest stable version.
* [Performance] Fixed another minor issue in the cache manager that was expiring file system caches (the default) too early. This should boost page load times all around.
* [Performance] Added worker preferences to the cache manager.
* [Performance] Added ticket fields to the cache manager.
* [Performance] Added group memberships to the cache manager.
* [Performance] Added support for persistent MySQL connections in framework.config.php -- by default persistent connections are disabled.
* [Performance] Added more database indexes where they were needed.
* [Performance/Platform]: Optimized how Devblocks loads plugin-based controllers. This should give another small performance boost to everything.
* [Platform] Fixed a tight coupling between DevblocksPlatform::getMailer() and CerberusSettings. The platform is now properly abstract and 'share nothing' again. As a consequence, a new method for loading the default mailer settings has been added to CerberusMail::getMailerDefaults(). This should be passed to getMailer() when the SMTP defaults are preferred.
* [Performance] More optimizations on the nightly maintenance job.
* CHD-716: Empty Date-type custom fields are prefilled with current datetime on display (fixed)
* CHD-714: Deleted worker does not update Inbox rules (fixed when deleting workers, and added to nightly maintenance to fix any broken record relationships)
* CHD-717: Headers that are duplicated cause problems when adding requesters (fixed, applied Hildy@WGM's patch)
* CHD-719: Support Center - Checkbox custom fields submitted unchecked result in values being saved for the wrong fields (fixed)
* CHD-721: [Send Mail] Template tokens are not replaced (fixed, the token dropdown options in compose templates were flipped with reply tokens)
* CHD-631: POP3 Mail Checker scheduler job name can be misleading if helpdesk only checks IMAP mailboxes (renamed the scheduled jobs so they're more descriptive)
* CHD-580: [Custom Fields] One more tiny place they are still referred to as Ticket Fields (renamed)
* CHD-596: [inbox mail rules] 'No training data available' has an outdated reference to Super Sort (renamed)
* [Performance] Added a new option to the 'Outgoing Mail' section of Helpdesk Setup->Mail Servers for setting the maximum deliveries to attempt per open SMTP connection. After this number, a new SMTP connection will be created in the background. The default is 20. Fine-tuning this option will depend on your MTA (Postfix appears to have no limit, but other MTAs will limit the number of messages sent per connection). If you have trouble with this, set it to 1.
* [Platform] Updated several dependencies to their latest stable versions: YUI, SwiftMailer, ADODB.
* [Platform] Removed many YUI packages that we weren't using. This should chop off another 10MB or so from the download and installation footprint.
* [Cron/Scheduler] You can now overload several /cron parameters at run-time. This is especially helpful if you're a host who is running multiple instances of Cerb4 for clients and you also manage their crons. On our machines at WGM, we have hundreds of hosted helpdesks firing up their maintenance job at the same time (midnight, the default). We also have some clients who "helpfully" set their max parses or POP3 downloads to '999' while having a very slow POP3 server they're pulling mail from. These new overloads are added to the URL you're pinging with something like 'wget'. An 'ignore_wait' flag has also been added to force a scheduled job to run if it's unlocked and enabled, regardless of when it's scheduled to run. The new parameters are: &ignore_wait=0/1; &pop3_max=n; &parse_max=n; &maint_max_deletes=n;
* Added fulltext searching to the message content field: booleans, boosting, wildcards, phrases.
* Fixed wiki links in the app from wiki.cerberusdemo.com to wiki.cerb4.com
* [Localization] Added per-worker timezone support. Workers can set their timezone from the 'My Account' link at the top right. Timezones will continue to default to the server time if not set. This should cover all date/time entry and displaying, such as entering "5pm" on a "Next worker until" date entry box.
* [Scheduler] When you click 'Run Now' on a scheduled task (from 'Helpdesk Setup' on the 'Scheduler' tab), it will now run without regard for the current waiting time (but not if locked or disabled). This is the expected behavior.
* [Platform] Updated the 'Smarty' dependency to the latest stable version.
* [Performance] Fixed another minor issue in the cache manager that was expiring file system caches (the default) too early. This should boost page load times all around.
* [Performance] Added worker preferences to the cache manager.
* [Performance] Added ticket fields to the cache manager.
* [Performance] Added group memberships to the cache manager.
* [Performance] Added support for persistent MySQL connections in framework.config.php -- by default persistent connections are disabled.
* [Performance] Added more database indexes where they were needed.
* [Performance/Platform]: Optimized how Devblocks loads plugin-based controllers. This should give another small performance boost to everything.
* [Platform] Fixed a tight coupling between DevblocksPlatform::getMailer() and CerberusSettings. The platform is now properly abstract and 'share nothing' again. As a consequence, a new method for loading the default mailer settings has been added to CerberusMail::getMailerDefaults(). This should be passed to getMailer() when the SMTP defaults are preferred.
* [Performance] More optimizations on the nightly maintenance job.
* CHD-716: Empty Date-type custom fields are prefilled with current datetime on display (fixed)
* CHD-714: Deleted worker does not update Inbox rules (fixed when deleting workers, and added to nightly maintenance to fix any broken record relationships)
* CHD-717: Headers that are duplicated cause problems when adding requesters (fixed, applied Hildy@WGM's patch)
* CHD-719: Support Center - Checkbox custom fields submitted unchecked result in values being saved for the wrong fields (fixed)
* CHD-721: [Send Mail] Template tokens are not replaced (fixed, the token dropdown options in compose templates were flipped with reply tokens)
* CHD-631: POP3 Mail Checker scheduler job name can be misleading if helpdesk only checks IMAP mailboxes (renamed the scheduled jobs so they're more descriptive)
* CHD-580: [Custom Fields] One more tiny place they are still referred to as Ticket Fields (renamed)
* CHD-596: [inbox mail rules] 'No training data available' has an outdated reference to Super Sort (renamed)