Here it is, finally!

What's new in Chax 3?
Due to the nature of a near-complete rewrite, most of the effort for Chax 3.0 was just in making sure the most important existing features in Chax made a smooth transition over to Snow Leopard. Apple makes significant changes under the hood with every major system update, which means each feature in Chax has to be manually reviewed and tested to make sure everything works. This took significantly longer than I had expected, in part because of the limited amount of time I've spent working on Chax.

The primary new addition to Chax 3 is a completely rewritten log viewer that takes advantage of Grand Central Dispatch and blocks in order to run faster and more smoothly. In addition to a revamped UI (thanks to Michael Simmons for his help with the UI), the new log viewer allows you to quickly browse images and links in past conversations without having to manually look through individual logs. I've found the new browsing modes to be very helpful when looking for something in a previous conversation, so I'd encourage everyone who installs Chax 3 to at least check out the new log viewer.

What's not in Chax 3 that was in Chax 2?

  • Automatic message history (iChat on 10.6 now has this feature built-in)
  • Automatically go away when the screensaver starts
  • Undimming the screen on incoming messages and AV chats
  • Moving contacts from one group to another in the unified list does not work

How does Chax 3 load into iChat, and how does this differ from Chax 2?
The short answer is that Chax 2 used an Input Manager and Chax uses a Scripting Addition.

Before 10.6 came out, Input Managers were generally the most popular method of hacking and extending the functionality of applications such as iChat and Safari. However, Input Managers have been slowly phased out by Apple; first heavily restricted in 10.5, and completely inoperable under 64-bit in 10.6.

The removal of Input Managers meant another way of getting into iChat was necessary. Initially the method I used was a separate loader application. This cleanly separated Chax from iChat, but it also proved to have some deficiencies that could not be worked around. The loading mechanism that Chax 3 uses now is a Scripting Addition. The technical details on exactly how Scripting Additions can be used to load into another application was described by Kevin Ballard a few months ago.

What's coming next?
My main priority is ironing out any remaining bugs that are still lurking in this release. Past that, I'd also like to reimplement the remaining features that were in Chax 2 that didn't make it into this release. Past that, the future is hazier. The feature set of Chax has been mostly stagnant over the past few years, as Apple has slowly added more functionality to iChat. This is great for all of us who use iChat every day, but the utility that Chax adds is becoming more and more marginal. It could be in the next major release Chax will be obviated completely, but that time is not here yet.

There is also the fact that Chax is now over four years old, and my ability to continue to devote as much time as I have in the past to support and development will likely not be able to continue indefinitely. At the moment, I plan to continue to make minor improvements to Chax time allowing, as well as ensure that it is as bug free as possible.

Changes from Chax 3.0b2:

  • (New) Dutch localization (thanks to Martijn Körvers)
  • (New) Polish localization (thanks to Pawel Labunko)
  • (Bug) Can now delete contacts from the unified list when groups are enabled
  • (Bug) Fixed Growl notifications not appearing for some people in rare circumstances
  • (Misc) Localization updates

Download Chax 3.0

33 comments:

Andreas at 2010-02-06 17:56:48 -0500

Thanks for all you work on Chax, don't want to use iChat without it :-) Well done!

Chip at 2010-02-06 19:14:57 -0500

^^^ Ditto what he said! ^^^ THANKS!!!!!!

Baback Shahriari at 2010-02-06 19:28:26 -0500

Found a bug that was in b2 and final release. When you have the combined contacts window open and try to change the status, it does not change. The only way to do it would be to open the iChat AIM window to change your status.

dgk at 2010-02-07 09:38:11 -0500

[MacBook Pro2,2, OS 10.6.2] 1. As another point of reference: I’m not having Baback Shahriari’s problem; the Status in my combined Contacts window readily changes using the pop-up menu. (Although I usually don’t use Groups, I did temporarily enable Groups to see whether that had any effect on changing Status, but it didn’t—the Status still changed OK for me in my Contacts window.) 2. In the process of doing #1, I did find, however, that my account is displayed as Name in my combined Contacts list regardless whether the selection in that pop-up menu is for it to be View as Name or to be View as Handle. (That account display does change properly in my AIM Buddy List window, but changing it there to View as Handle has no effect on the display in the Contacts window.) Notwithstanding #2, thanks for getting us to v3.0. iChat without Chax isn’t good enough.

Jason Wagner at 2010-02-07 14:09:28 -0500

Thanks so much for the hard work. Chax is one of the most useful programs I have on my Mac.

Vynce at 2010-02-07 17:30:22 -0500

Thanks for continuing to work on Chax. It provides some really useful enhancements. Two ideas/issues: 1. I really miss the idle timer. On Leopard/Chax 2, idle contacts used to display a timer that kept track of how many minutes they had been idle for. 2. Sometimes when I wake up my machine, iChat gets stuck in Offline mode and doesn't automatically connect. I don't know if Chax can do anything about this. Its automatic reconnect feature works great though.

Simon at 2010-02-07 18:16:40 -0500

Excellent add-on. I have a suggestion: I have 3 accounts and use iChat/Chax on a MacBook connected wirelessly. When I close the Macbook then later open it, often only some accounts go back online/available. If at least 1 gets available the Chax window shows "Available". Which (if any) accounts make it to available is random. All the "Reconnect on ..." enabled. Problem looks due to the wake from sleep being done and apps active before the wireless is restored. So, maybe add functionality to re-try the reconnect/set available (or whatever status) several times at maybe 1 min intervals (I'm sure you would have more sensible ways of doing it but hopefully you get the idea).

Bosco at 2010-02-07 19:08:38 -0500

Hey Chax team! Thanks for all the hard work. I would being using Adium if it was not for you guys, so many thanks. Anyhow, congrats on the 3.0 release! The only issues that I still see are as follows: The buddy list. I can't move around my buddies, even after I change the set my "sort buddies by" manually setting. I have to get rid of Chax in order to do so. The only other issue that I have found was the handle/name function. When Chax is installed it will not change to your handle. Thanks again!

Kent Sutherland at 2010-02-08 14:29:42 -0500

dgk, Bosco: The handle/name pop-up in the unified contact list does nothing because there is potentially more than one handle to display there. The built-in contact lists in iChat have exactly one handle per list, so there is something to toggle there. This isn't the case with the unified list.

Andrew at 2010-02-08 22:20:43 -0500

Thank you for your continued work on Chax, it makes my (and many others) iChat experience worlds better. One bug that I seem to have been experiencing is that sometimes after a while the iChat icon in the dock will stop being badged with the number of new IMs waiting. Growl notifications will still show and the dock icon will bounce, but it does not get badged. Restarting iChat fixes the problem. I'm not sure during which beta version this started, and I apologize for not reporting it earlier.

Joshua M at 2010-02-10 10:19:35 -0500

Great... awesome that this is back. iChat can stand on it's own, but chax makes it much better... My -ONLY- complaint is the log viewer... searching just feels clunky... if you're on a user it seems like it should limit search to that user.. and scroll to (if not highlight as well) the first searched term it finds... But that's a minor one... overall chax is amazing!

Ivan at 2010-02-10 12:35:03 -0500

Hi, your program is awesome add-on for iChat but there are one irregular issue, that Chax can't be installed for network user in domain with home directory located on 10.6 server. I've got message that file or directory doesn't exist.

Tyler at 2010-02-10 22:20:02 -0500

I've been getting 100% CPU spikes from iChat since installing Chax 3 =\

Jonathan Hubartt at 2010-02-11 02:48:15 -0500

I just added Facebook Chat to iChat (which became available yesterday via XMPP) and I'm having some issues with the unified contact list. If I log out of a service and log back in, the unified list is blank while both Google Talk and Facebook Chat's individual lists are populated.

degreecy at 2010-02-12 11:59:35 -0500

chax 3b2 was working great. installed release of v3 and it completely screwed ichat up. Now I have no ability to login, show the buddy lists, except for overall contract list which is blank - even the icon. I seem to recall this bug previously ?

Perry at 2010-02-13 18:28:24 -0500

Oh wow! It works again. I believe every aspect of it! Sign on, off, messages, status changes. All the notifications. Thanks Kent! -Perry

Zigor at 2010-02-15 05:52:34 -0500

Is Chax expected to remember chat window positions/sized in future releases? That would be awesome. Keep up the good work! Zigor.

Ovis at 2010-02-16 19:13:15 -0500

A system similar to CoverSutra to notify about contacts status change; no growl!

Brian at 2010-02-17 19:18:52 -0500

Since the chax betas started, I'm having the issue that others report about being unable to reconnect after sleep (or in my case, fast users switching).... the signs of this are: 1. I'm in my account, ichat is connected and working. 2. I switch to my wife's account. 3. I switch back... the iChat window enlarges... chax says 'connected' but nothing is connected, no buddies show up. 4. To fix i have to manually select "offline" then pick "online again". Sometimes it will reconnect fine, but usually I get a 'dead' ichat account and have to do the offline/online toggle.

Andrew at 2010-02-20 21:07:30 -0500

Hello, Thanks a lot for all your work on Chax. I have absolutely no complaints, except for a small issue that has been annoying me for a while now. When I open iChat, tooltips will not show up in the unified contact list unless I close the contact list window and reopen it through Window --> All Contacts. There doesn't seem to be this issue with the separate contact lists.

Tim at 2010-02-21 12:41:34 -0500

PS: I noticed that this Always on Top feature in the Window has to be reset every time you launch iChat. Is there a way to save the setting? Thanks again, Timothy

Amanda at 2010-02-22 09:20:34 -0500

Hey Chax team! I have to say that I love chax and was excited to see when I got Snow Leopard, there was a version compatible. I only have one problem I keep running into and maybe its something I am doing wrong. Everytime I restart my computer I have to reinstall version 3.0. Anyone have suggestions on how to correct that? Thanks Amanda

remi at 2010-02-22 10:37:29 -0500

Hi I am having the same problem as Simon above. If I am connected and put my MBP to sleep, when waking up from sleep later, some accounts automatically reconnect (generally my AIM accounts) while my other Jabber accounts remain disconnected. I noticed that this does not happen if I uninstall Chax. My guess is that for some reason Chax tries to reconnect the Jabber accounts too early, before the Wireless network interface is restored. anyway, thanks for all the work on Chax.

chaos at 2010-02-23 10:13:07 -0500

Hi there, Chax is awesome. Just one little bug: Everytime I restart my macBookPro, chax is gone and I have to reinstall it again :-/ I've seen, that some had this problem with a previous beta version, I have it with the current one. And only on my MacBookPro (with 10.6.2). On my MacBook (10.6.2) it works perfectly fine! Any ideas?

Antonio at 2010-02-23 18:05:42 -0500

I'm having the same problem as Tyler, 100% CPU spikes. In particular, when iChat loads and signs in, as soon as it starts to load the buddy list, CPU usage spikes and iChat remains unresponsive for several minutes (!). This is an 8-core Mac Pro w/8GB RAM, so resources are not an issue. The same unresponsiveness occurs if a video chat fails. Disabling Chax returns iChat to its usual chipper self. Any ideas?

Antonio at 2010-02-23 18:07:48 -0500

Oh yeah, I did a Sample in Activity Monitor during such a spike, and found that a thread called "Chax_PeopleListController chax_resizeWindow" was chewing up 87% CPU.

Kent Sutherland at 2010-02-24 11:16:38 -0500

Antonio: This problem should be fixed in the next release.

Kent Sutherland at 2010-02-24 23:20:59 -0500

remi et al.: I've made some changes that should fix some accounts not coming back as expected when waking from sleep, so hopefully this will be fixed for the next release.

Kent Sutherland at 2010-02-25 00:09:17 -0500

For anyone who is having trouble with Chax not working after restarting or logging out and back in, make sure that the ChaxHelperApp application is listed in your account's login items in the Accounts preference pane. If it is not, you can manually add it by doing the following: - Navigate to ~/Library/ScriptingAdditions in the Finder (~ is your home folder). - Show Package Contents on ChaxAddition.osax navigate into Contents/MacOS. - Launch ChaxHelperApp, and add ChaxHelperApp to your list of login items in the Account preference pane. That should ensure that Chax works across restarts. I'm hoping to get this fixed in a future release.

Dori Smith at 2010-02-25 17:07:03 -0500

I just switched over to using iChat with Chax due to Adium constantly crashing. Chax is 99% of what I want, and if these two features are added, it would be 100% (if this isn't the right place to request features, I'd appreciate it if someone could point me to it). 1. Combine accounts in the unified window. Currently, .Mac accounts are combined with AIM accounts, and GTalk with Jabber, but if a single account has both AIM and Jabber accounts, I'd like to see them as a single item. 2. Sort by name in the unified window. Sorting by first name isn't sufficient; I want (for example) Jeff A to sort before Jeff B. The two in combination are the big issue: Currently, my combined window often has: Jeff A (on AIM) Jeff C (on GTalk) Jeff A (on GTalk) Jeff C (on AIM) Jeff B (any acct) Where I'd like to see: Jeff A (all) Jeff B (all) Jeff C (all) If some of this functionality is already in Chax and I'm just doing it wrong, let me know what I need to change. If it's not there, it would be great to see it added. And if any of the above isn't sufficiently clear, please let me know. Thanks!

MysticalOS at 2010-02-26 17:51:06 -0500

Chax is working but it's putting stuff in console of note 2/26/10 5:47:52 PM ChaxHelperApp[133] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: dlopen(/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found. Did find: /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: no matching architecture in universal wrapper 2/26/10 5:47:52 PM [0x0-0xd00d].com.ksuther.chax.helperapp[133] ChaxHelperApp: OpenScripting.framework - scripting addition "/Library/ScriptingAdditions/Adobe Unit Types.osax" declares no loadable handlers. 2/26/10 5:47:56 PM Yahoo! Messenger[169] Initializer-based scripting additions have been deprecated. Please update this addition: "/Library/ScriptingAdditions/Adobe Unit Types.osax" 2/26/10 5:47:58 PM iChat[166] [Warning] rectOfRow: height of row 0 not in cache of size 0 2/26/10 5:47:59 PM com.apple.launchd.peruser.501[100] (com.apple.AddressBook.abd) Throttling respawn: Will start in 8 seconds

Kent Sutherland at 2010-02-28 00:11:06 -0500

MysticalOS: Those messages are coming from Adobe Unit Types, not Chax.

Kopecc at 2010-02-28 06:43:46 -0500

Hi, I use Chax only 4 few days, but I have little problem, everytime I set sending just plain text, works everythink good, until I shutdown MB. After next start when I write to somebody with adium or QIP there are html tags, so I must reinstal CHAX and restart iChat. Anybody know whats wrong?? I have MB with MacOS 10.6.2 THX