Starting with tag: [TAG 0.5.0 Evan Prodromou **20080731050646] [add edo's tagcloud code Evan Prodromou **20080731132302] [extend length of source for notices Evan Prodromou **20080731152731] [added conneg for action/userbyid so that foaf can be delivered to clients that want application/rdf+xml ehs@pobox.com**20080801164623] [update .pot from source code Evan Prodromou **20080803232102] [change no-such-user error to a 404 instead of a 400 Evan Prodromou **20080804132001] [use an outstanding unconfirmed email address for password recovery if available Evan Prodromou **20080804130914] [better handling of unconfirmed email addresses Evan Prodromou **20080804133253] [use noreply address as fallback if no incoming email address exists Evan Prodromou **20080804133933] [add commands to turn sms notification on and off Evan Prodromou **20080804190749] [ignore OTR messages over Jabber (I think) Evan Prodromou **20080806002134] [make init of lang environment happen earlier, or when user language may have changed Evan Prodromou **20080806034515] [Set the C locate to avoid tr_TR php bug see http://www.topolis.lt/php/#35050 mikec@mikenz.geek.nz**20080804133727] [Add other languages to drop down Mike Cochrane **20080805020520] [fixup locale stuff from mikenz Evan Prodromou **20080806040433] [fix config global Evan Prodromou **20080806122119] [update French translation with msgmerge Evan Prodromou **20080806161748] [LOG_ERROR -> LOG_ERR (again) Evan Prodromou **20080807234227] [emergency fixup for bad notices in notice search Evan Prodromou **20080811175318] [make tag dropoff configurable Evan Prodromou **20080811175820] [Twitter-compatible API - /statuses/update.format now decodes HTML chars, such as & zach@copley.name**20080731224911] [Twitter-compatible API: filled in the source attr for notices accessed via API zach@copley.name**20080809001240] [fix problem with new notices Evan Prodromou **20080811181158] [correct sitemapindex output Evan Prodromou **20080811200058] [fix some errors in sitemaps Evan Prodromou **20080812011600 Only show notices that don't have a remote URL. That should include only local notices. Also, don't do an avatar sitemap; apparently nobody indexes these anyways. ] [correctly show URL for rare notice without an URI Evan Prodromou **20080812121832] [get rid of dataobject.ini -- again Evan Prodromou **20080813180239] [auto-load OAuthRequest Evan Prodromou **20080813195408] [move user registration to a single static method Evan Prodromou **20080814002038] [Twitter-compatible API: removed redundant decoding step; already taken care of by util.php's common_render_content() zach@copley.name**20080813193327] [Twitter-compatible API: support for new in_reply_to_status_id in statuses/update zach@copley.name**20080815185317] [name omb_listener param so we can refer to it in error msg Evan Prodromou **20080816151057] [make settings and search menus localisable Evan Prodromou **20080817150244] [move command-line scripts to their own dir Evan Prodromou **20080813154603] [accept 140-character UTF-8 strings to content Evan Prodromou **20080817151751] [debug for content too long Evan Prodromou **20080817152419] [use UTF-8 as the internal encoding Evan Prodromou **20080817153024] [remove hack to count bytes, not chars, in JS, since we now use chars Evan Prodromou **20080817153143] [typo in forgotten password string Evan Prodromou **20080817163324] [accept 140 chars in API, too Evan Prodromou **20080817192710] [use mb_substr for xmpp daemon check Evan Prodromou **20080818025549] [first step towards adding favorites to the system Evan Prodromou **20080813142637] [Database uses UTF-8 by default Evan Prodromou **20080817151728] [restore fave table lost when doing utf8 upgrade Evan Prodromou **20080817152108] [trim whitespace in laconica.sql Evan Prodromou **20080817152133] [set internal encoding in XMPP daemon Evan Prodromou **20080818033049] [broadcast remote notices Evan Prodromou **20080819182724] [add remote flag to broadcast of notices Evan Prodromou **20080819182824] [add database tables for foreign services Evan Prodromou **20080819221214] [Twitter-compatible API - running all strings through gettext() now zach@controlyourself.ca**20080819002903] [Twitter-compatible API - moved show() to the right file zach@controlyourself.ca**20080819003931] [Twitter-compatible API - /statuses/destroy method implemented zach@controlyourself.ca**20080819194610] [Twitter-compatible API - Added /statuses/followers to methods that zach@controlyourself.ca**20080819195431 require bareauth only if no nickname/id is supplied. ] [Twitter-compatible API - /statuses/show - better err msg if notice doesn't exist zach@controlyourself.ca**20080819202318] [Twitter-compatible API - RESTfulness checks as per Twitter zach@controlyourself.ca**20080819214923] [add Cincinnati Bell Wireless Evan Prodromou **20080821125306] [include external libs in a subdir to make install easier Evan Prodromou **20080822131714] [local-only is optional on public timeline Evan Prodromou **20080822210307] [add note to config.php.sample about localonly Evan Prodromou **20080822210415] [fix include path bug Evan Prodromou **20080822210654] [better error reporting in user authorization action Evan Prodromou **20080822212111] [XMPP bounce message when too long (ticket #112) CiaranG **20080818213031] [Fix bug in xmpp on/off (ticket #528) CiaranG **20080819071321] [Define xmpp daemon claim timeout time CiaranG **20080822185955] [XMPP sub/unsub and help commands CiaranG **20080822191032] [Fixed attempt to read nonexistent match in JID regex CiaranG **20080822191751] [Escape profile url in xmpp in case fancy urls off (Ticket #521) CiaranG **20080823052534] [Prevent jabber.php error by checking key exists CiaranG **20080823053548] [request token is not readonly Evan Prodromou **20080824011706] [be a little more liberal for sites that accidentally put whitespace before the xml decl Evan Prodromou **20080824013803] [move README to main dir Evan Prodromou **20080824113719] [big scarygram warning in config.php.sample about using DB_DataObject's debug mode Evan Prodromou **20080824171202] [notify user of remote subscriptions Evan Prodromou **20080824200517] [use mb_strlen instead of strlen in xmpp daemon Evan Prodromou **20080825173105] [use common_sql_now() instead of DB_DataObject_Cast Evan Prodromou **20080825182338] [change DataObject_Cast to use sql_now Evan Prodromou **20080825183005] [use better SQL date, fix security problem with OpenID logins Evan Prodromou **20080825184104] [never allow blank passwords Evan Prodromou **20080825185245] [optionally turn encryption on or off in the XMPP connection Evan Prodromou **20080826131814 For identi.ca, we had some problems with the XMPP daemon getting "stuck" in I/O through the encrypted (by default) XMPP socket. Turning off encryption helped. So, now it's an option. ] [only send local messages to public XMPP stream Evan Prodromou **20080826205341] [use notice URI if it's not local and it's an HTTP URL Evan Prodromou **20080826210314] [fix error storing uris of remote notices Evan Prodromou **20080826211108] [import upstream XMPPHP with @ciarang's fix Evan Prodromou **20080827124430] [fixup whitespace Evan Prodromou **20080827131603] [don't show unknown (debug) errors Evan Prodromou **20080827132346] [XMPP daemon that doesn't eat messages - note change to XMPPHP as well (Ticket #551) CiaranG **20080826200057] [restoring upstream XMLStream.php after pulling ciarang's patch Evan Prodromou **20080827133048] [add back in a session start handler Evan Prodromou **20080827135422] [don't do too many broadcasts or confirms before checking the message queue Evan Prodromou **20080827142336] [get language before setting it. Evan Prodromou **20080828005323] [add session token check to password change Evan Prodromou **20080829014515] [code for session token Evan Prodromou **20080829015304] [fix random function name Evan Prodromou **20080829021854] [return after failed token Evan Prodromou **20080829023731] [add CSRF protection to avatar Evan Prodromou **20080829023919] [CSRF protection in deletenotice Evan Prodromou **20080829025127] [show error in delete notice Evan Prodromou **20080829025559] [add a token for CSRF avoidance Evan Prodromou **20080829034854] [CSRF protection for OpenID form Evan Prodromou **20080829035934] [swap around some stuff to show the form correctly on a CSRF error in openidlogin Evan Prodromou **20080829040925] [CSRF protection in openidsettings Evan Prodromou **20080829042908] [add csrf protection to profile settings Evan Prodromou **20080829043909] [CSRF protection in smssettings.php Zach Copley **20080829035118] [CSRF protection in imsettings.php Zach Copley **20080829035707] [CSRF protection for subscription/unsubscription Evan Prodromou **20080829051104] [better client error on CSRF problem with subscribe/unsubscribe Evan Prodromou **20080829051628] [csrf protection in userauthorization Evan Prodromou **20080829052732] [session token in userauthorization form Evan Prodromou **20080829052847] [CSRF protection in recoverpassword Zach Copley **20080829052824] [CSRF protection in user registration Evan Prodromou **20080829054017] [CSRF protection in emailsettings Zach Copley **20080829053337] [CSRF protection in remotesubscribe Zach Copley **20080829054038] [clean up username entered at login Evan Prodromou **20080829225258] [break up monolithic xmppdaemon into multiple queue handlers Evan Prodromou **20080827205407 Eventually, the poor xmppdaemon has become overloaded with extra tasks. So, I've broken it up. Now, we have 5 background scripts, and more coming: * xmppdaemon.php - handles incoming XMPP messages only. * xmppqueuehandler.php - sends notices from the queue out through XMPP. * smsqueuehandler.php - sends notices from the queue out over SMS * ombqueuehandler.php - sends notices from the queue out over OMB * xmppconfirmhandler.php - sends confirmation requests out over XMPP. This is in addition to maildaemon.php, which takes incoming messages. None of these are "true" daemons -- they don't daemonize themselves automatically. Use nohup or another tool to background them. monit can also be useful to keep them running. At some point, these might become fork()'ing daemons, able to handle more than one notice at a time. For now, I'm just running multiple instances, hoping they don't interfere. ] [remove unimplemented methods from XmppDaemon Evan Prodromou **20080827210429] [change queue_item to use a compound primary key Evan Prodromou **20080827211239 Breaking up to use multiple queue handlers means we need multiple queue items for the same notice. So, change the queue_item table to have a compound pkey, (notice_id,transport). ] [got two lines reversed Evan Prodromou **20080827211940] [change return in queue function Evan Prodromou **20080828001414] [correct presence in jabber function Evan Prodromou **20080828001936] [don't clear claims immediately Evan Prodromou **20080828002610] [correct return values from start() in queue handlers Evan Prodromou **20080828003013] [extend QueueHandler Evan Prodromou **20080828003829] [XmppQueueHandler extends QueueHandler too Evan Prodromou **20080828004224] [$this->log to common_log in Queue_item Evan Prodromou **20080828004503] [return correct values for success in handling messages Evan Prodromou **20080828011002] [misprint of omb as oms Evan Prodromou **20080828012619] [return results of broadcasting by sms Evan Prodromou **20080828012635] [add a bash script to start all the daemons Evan Prodromou **20080828134856] [add a script to stop daemons, too Evan Prodromou **20080828135011] [harmonize csrf and queues Evan Prodromou **20080829174012] [split public stream to its own queue handler Evan Prodromou **20080829181702 Add another queue handler for the public stream. Should further parallelize the work of sending out messages. ] [fix name of instantiated class Evan Prodromou **20080829182112] [a little more robust confirm handler Evan Prodromou **20080829182349] [many jabber queue management changes Evan Prodromou **20080829200352 Added a method to QueueManager to let subclasses do stuff when idle. Needed so that XMPP queue manager can service its message queue. Cleaned up jabber_broadcast_message quite a bit. Use custom joins instead of loop-and-query, should fix some problems with users who are getting messages even after turning off notification. Only build $msg and $entry once, and use the XMPPHP function for messages with a payload, rather than rolling our own. ] [lost $sent_to in jabber_public_notice Evan Prodromou **20080829200859] [strip script ending from end of xmppdaemon Evan Prodromou **20080829202613] [add 'raw' to payload to allow getting to the raw xml Evan Prodromou **20080830000314] [forward messages from queuehandler to listener Evan Prodromou **20080830040717 The queuehandler sends messages to the user. If the user replies, the messages are typically sent directly to the queuehandler (including resource), not the default bot JID. We add a little code for the xmppqueuehandler to periodically service its queue of received messages. Received messages are forwarded to the listener to deal with. We use XEP 33, 'addresses', to note the original sender. The xmppdaemon checks to see if the 'from' on a message is the daemon address. If so, it looks for a XEP 33 'addresses' stanza, with an 'ofrom' address, which shows who it was originally is from. This should let us send from one resource ID and still process incoming messages in a different connection. ] [strtolower jids for comparison Evan Prodromou **20080830052143] [typo preventing detection of addresses Evan Prodromou **20080830052810] [use common log in error handler rather than echo Evan Prodromou **20080830053052] [log transport when claiming a notice Evan Prodromou **20080830054933] [better logging in ombqueuehandler Evan Prodromou **20080830055416] [get address from addresses Evan Prodromou **20080830055640] [better debugging output for forwarded messages Evan Prodromou **20080830055938] [debug xml input Evan Prodromou **20080830060732] [log fetch Evan Prodromou **20080830062246] [correctly use attrs array rather than nonexistent attunction Evan Prodromou **20080830062744] [less sleeping, slightly Evan Prodromou **20080830064431] [don't clear old claims Evan Prodromou **20080830070135] [require mail for sms, not omb Evan Prodromou **20080830070309] [sms handler was handling omb wrongly Evan Prodromou **20080830071007] [forgot to get the profile in public queue handler Evan Prodromou **20080830071232] [some fixes from on the jabber server evan@controlezvous.ca**20080830083502] [get rid of Laconica_XMPP and ignore priority Evan Prodromou **20080830084423] [check for self in forwards, too Evan Prodromou **20080830085607] [eliminate loops in forwarding Evan Prodromou **20080830090148] [make XMPP take a priority for presence Evan Prodromou **20080830091430] [use priority in connection Evan Prodromou **20080830091522] [forgot to use the array for avoiding dupes Evan Prodromou **20080830094252] [check the state of the queue before diving in to process it Evan Prodromou **20080830095709] [better check for ready state on connection Evan Prodromou **20080830171441] [public queue handler and xmpp confirm handler service their message queues Evan Prodromou **20080830172217] [add initialization info to the queue handlers Evan Prodromou **20080831020325] [add some sanity-check stuff for long-running daemons Evan Prodromou **20080831023844] [halt sending HTML in Jabber Evan Prodromou **20080831114642] [separate out presence from connection, send different presence types from queuehandlers Evan Prodromou **20080902012604] [slightly more robust connection code Evan Prodromou **20080902030331] [restore HTML in output, remove rump pubsub event code Evan Prodromou **20080902030403] [dnd -> available, just looks bad as dns Evan Prodromou **20080902030910] [switch around how XMLStream does processing Evan Prodromou **20080831003210] [debug logging in __process Evan Prodromou **20080831012136] [floor Evan Prodromou **20080831013132] [int div games Evan Prodromou **20080831013603] [slightly better int math Evan Prodromou **20080831014404] [use updated xmpphp library Evan Prodromou **20080902163718] [add reconnect handlers to main XMPP-handling scripts Evan Prodromou **20080902165319] [better connection handling in scripts Evan Prodromou **20080902165735] [set the reconnect timeout Evan Prodromou **20080902171740] [variable name conflict on reconnect Evan Prodromou **20080902172039] [reconnect timeout Evan Prodromou **20080902172256] [license block on util.js Evan Prodromou **20080827013835] [try to make the reply button do the right thing if there's no notification box. Evan Prodromou **20080827015010] [move broadcast in OMB postnotice for bad case Evan Prodromou **20080828221420] [Tags_without_fancy Garret Buell **20080831233401 Change common_tag_link to format the tag link based on the setting of $config['site']['fancy'] ] [Allow_multicase_tags Garret Buell **20080901001241 Make "#test", "#Test", and "#tEsT" all preserve appearance but link to the same tag ] [Elide_Tags Garret Buell **20080901025932 Make "#sanfrancisco", "#SanFrancisco", "#san_francisco", "#San.Francisco", and "#SAN-FRANCISCO" all link to http://identi.ca/tag/sanfrancisco but preserve appearance ] [RequirePassword Garret Buell **20080830195036 Require a password with at least 6 characters when registering. ] [Resolve remote subscribe and omb problems with quotes (Tickets #604 and #567) CiaranG **20080904065504] [Fix typo in presence message (x3) CiaranG **20080904081542] [Some Notice::saveNew cleanups. Ori Avtalion **20080902173804 * No need to check $source's value before inserting * No need to update the notice if the $uri was known in advance ] [fix bad args in postnotice for new notices Evan Prodromou **20080904195720] [Fix typo in finishremotesubscribe CiaranG **20080904201921] [scripts daemonize themselves Evan Prodromou **20080904184031] [add .pid to pidfile names Evan Prodromou **20080904190254] [more robust code for setting daemon uid/gid Evan Prodromou **20080904191031] [add newline at the end of pidfile Evan Prodromou **20080904191517] [new format for startdaemons; not sure how to do stopdaemons so punting Evan Prodromou **20080904192220] [better feedback when starting daemons Evan Prodromou **20080904192851] [make confirmhandler a subclass of queuehandler Evan Prodromou **20080904193118] [abstract XMPP-related queue handling to a common superclass Evan Prodromou **20080904194035] [change xmppqueuedaemon to jabberqueuedaemon in startdaemons Evan Prodromou **20080904194346] [require xmppqueuehandler in jabberqueuehandler Evan Prodromou **20080904194456] [better logging for confirm handler update Evan Prodromou **20080904203502] [add some processTime() to the send loops to avoid filling the buffer Evan Prodromou **20080904213257] [better @ links Evan Prodromou **20080904224129] [use a join for omb broadcast Evan Prodromou **20080905004701] [change sms broadcast to use a join Evan Prodromou **20080905022019] [return in the status textarea will submit the form Evan Prodromou **20080905045415] [do submit on keydown Evan Prodromou **20080905045736] [stop default handling of return in browser Evan Prodromou **20080905050356] [set focus to status text area Evan Prodromou **20080905050824] [free and unset DB_DataObjects after we're done with them Evan Prodromou **20080906015501] [free memory in SMS daemon, too Evan Prodromou **20080906015621] [debugging for omb Evan Prodromou **20080907193402] [lots of debugging code in OMB send Evan Prodromou **20080907195242] [remove some debugging code from omb.php Evan Prodromou **20080907200344] [error checking in subscriptions Evan Prodromou **20080908201020] [Disallow 'tag' and 'tags' as usernames. Fixes ticket #584 Ori Avtalion **20080905114534] [Fix for reply arrow in profile page Michael Landers **20080905090848] [Fix confusing comment in config.sample.php (Ticket #616) CiaranG **20080905162732] [add a sample RewriteBase Evan Prodromou **20080910180050] [add a line for mail domain Evan Prodromou **20080910154632] [update information about queues Evan Prodromou **20080910154754] [reverse order of queries for galleries Evan Prodromou **20080911144742] [LOG_ERROR -> LOG_ERR Evan Prodromou **20080913161107] [duplicate confirmation to avoid where clause Evan Prodromou **20080913164333] [only use MyISAM for tables with fulltext indices Evan Prodromou **20080915053955] [cache noticesWithFriends in memcached Evan Prodromou **20080915065616 noticesWithFriends is turning out to be one of our most expensive queries. The join is costly, and this method is hit over and over and over by desktop clients and other API users. So, I've added a first pass at caching the results. I store a "window" of notices -- equal to the first 3 pages of notices, plus one for pagination -- in the memcached cache. If with-friends notices are requests, I fetch the whole window out of the cache and grab the slice requested. If the requested notices are outside the window, we just do the query. If there's nothing in the cache, we request the window and store it, then return a slice. I had to add a NoticeWrapper class that works like DB_DataObject (well, just the fetch() part...) but just holds an array of notices instead of a DB cursor. Finally, saving a new notice blows away the caches for subscribed users. ] [$INSTALLDIR -> INSTALLDIR Evan Prodromou **20080915070413] [array_count -> count Evan Prodromou **20080915070951] [subscriptions clear user with-friends cache, too Evan Prodromou **20080915071500] [compress window-getting to one function Evan Prodromou **20080915071835] [misused instance attribute in noticewrapper Evan Prodromou **20080915072553] [another attribute error Evan Prodromou **20080915072738] [make NoticeWrapper extend Notice so methods work Evan Prodromou **20080915073006] [fix cache deletion code Evan Prodromou **20080915073215] [fixup SQL code Evan Prodromou **20080915073412] [can actually take all the data in the window Evan Prodromou **20080920174700] [blow subscriptions cache when the user deletes a notice Evan Prodromou **20080920175339] [use common-config instead of $config in common_language Evan Prodromou **20080922172631] [data classes for invitations Evan Prodromou **20080823191015] [start the invite form Evan Prodromou **20080825192946] [add invite to htaccess.sample Evan Prodromou **20080825193149] [add invite to the nav menu Evan Prodromou **20080825193235] [invite fancy url Evan Prodromou **20080825193333] [fix the invite url Evan Prodromou **20080825193450] [fix instructions Evan Prodromou **20080825193738] [skip preview, just send the darn thing Evan Prodromou **20080826021227] [added a created timestamp to invitations Evan Prodromou **20080826023116] [clean up some whitespace in DB script Evan Prodromou **20080826024015] [helper functions that take a user object Evan Prodromou **20080827001348] [updates for invitations Evan Prodromou **20080827001927 Add the code to registration to handle invitation codes. Some edge cases on invitations: is the user already subbed to this person? Tell them. Is the person already on the system? Sub the user to them, then, and tell the user. Add some code to User to auto-sub invitees whenever the email address changes. Call it from a new registration with an invite code, and also from confirmaddress. Some whitespace cleanup in the files touched. ] [correct output on invitations Evan Prodromou **20080827003529] [save invitation code and improve format of outgoing mail Evan Prodromou **20080827004410] [fix format for subject Evan Prodromou **20080827004755] [fix runon string in invites format Evan Prodromou **20080827004854] [send personal message through to send_invitation function Evan Prodromou **20080827005155] [lost the names when making a new function send_invitation Evan Prodromou **20080827005418] [fix format string, again again Evan Prodromou **20080827010138] [Invite -> Invitation Evan Prodromou **20080827010515] [removed the preview, so use "Send" for the button Evan Prodromou **20080827011921] [add a foreign_link table with prefs for the link Evan Prodromou **20080827032423] [update to translation Evan Prodromou **20080827185817] [Bounce oversized XMPP messages back to user (Ticket #112) CiaranG **20080814083856] [XMPP daemon updates including help, sub and subsub commands, plus subscribe/unsubcribe logic broken out into standalone module for sharing CiaranG **20080816083422] [Added missing subs.php CiaranG **20080816153917] [remove custom xmppdaemon error handler Evan Prodromou **20080830162128] [merge in changes for CSRF, too Evan Prodromou **20080830162223] [initial non-Ajax version of favorites Evan Prodromou **20080908181624] [change input buttons to submit buttons Evan Prodromou **20080908182353] [fix requires in dis/favor and correct url in form Evan Prodromou **20080908182559] [correct action for showfavorites in disfavor Evan Prodromou **20080908182716] [better styling for favor/disfavor buttons Evan Prodromou **20080908183515] [styling on the favor/disfavor forms to show inline Evan Prodromou **20080908201751] [write our own submit so there's no

Evan Prodromou **20080908202226] [move fave form, float right Evan Prodromou **20080908202717] [make favorites form use Ajax Evan Prodromou **20080908211610] [missed a closing curly Evan Prodromou **20080908211656] [enjitqueuehandler added Evan Prodromou **20080916174105] [rationalize with repository version Evan Prodromou **20080916174400] [change some more tables to InnoDB Evan Prodromou **20080916174515] [Database and classes for direct messages Evan Prodromou **20080916185126] [inbox and outbox for direct messages Evan Prodromou **20080916195346 Added an inbox and outbox for direct messages. Factored common code to mailbox.php. Factored common code with stream.php to personal.php. ] [fixup CSS for messages Evan Prodromou **20080916195620] [correctly show top Evan Prodromou **20080916200445] [instructions for inbox and outbox Evan Prodromou **20080916200703] [correct title on inbox and outbox Evan Prodromou **20080916200942] [Twitter integration - SQL ref data for Twitter zach@controlyourself.ca**20080822034054] [Twitter integration - Oh look, a Twitter settings tab. zach@controlyourself.ca**20080822034157] [Twitter-integration - Twitter settings tab now saves Twitter credentials zach@controlyourself.ca**20080826225615] [Twitter integration - Add and remove Twitter accnt now working Zach Copley **20080827000327] [Twitter integration - Foreign_user::getForeignUser() to retrieve Zach Copley **20080827005444 Foreign_user by multi-part key: user_id + service ] [Twitter integration - decided to change Twitter to service ID #1 Zach Copley **20080827021635] [fork daemon Evan Prodromou **20080626224011] [fork daemon Evan Prodromou *-20080626224011] [translation updates Evan Prodromou **20080817160451] [Twitter integration - support for new foreign_link table and prefs now save/update Zach Copley **20080828072205] [Twitter integration - Notices now broadcast (directly) to Twitter from linked accts. Zach Copley **20080828192509] [CSRF protection for invites.php Zach Copley **20080829045441] [CSRF protection in twittersettings.php Zach Copley **20080829045724] [Conflated Avatar and Profile settings + removed a bunch of unnecessary whitespace Zach Copley **20080905194732] [Moved avatar upload down below timezone on profile settings Zach Copley **20080906070651] [Fold password form into profile settings Zach Copley **20080907053604] [Twitter integration - added $config option for source attribute when posting to Twitter Zach Copley **20080907062118] [Twitter integration - wording change Zach Copley **20080907063339] [Disallow 'api' nickname Zach Copley **20080909000650] [Twitter-compatible API - JSONP callbacks for all methods emitting JSON Zach Copley **20080910025013] [integrate local changes with Zach's Evan Prodromou **20080916210813] [Initial support for PostgreSQL CiaranG **20080909072224] [Fix remote sub when redirected via login (Ticket #618) CiaranG **20080909202259] [PostgreSQL - reply.modified needs a default CiaranG **20080910073741] [Fix unquoted array key, causes b0rkage on some php setups (via @bopuc) CiaranG **20080911163558] [PostgreSQL: Make tag cloud query work - also fixes what is surely an ignored error in the mysql query CiaranG **20080911192348] [PostgreSQL: support for full text searching (notice and people) CiaranG **20080914201744] [PostgreSQL: Quote table name in manually formed query - fixes profile settings update CiaranG **20080915070256] [Further updates to sample config CiaranG **20080915081246] [Fix missing nickname in rss replies to title CiaranG **20080915190953] [Get correct configured language when all else fails CiaranG **20080916172706] [rationalize with ciarang's pgsql changes Evan Prodromou **20080916214134] [add in ciarang's changes to config.php.sample Evan Prodromou **20080916214206] [use common_local_url() in tagging, add canonicalization function Evan Prodromou **20080917112234] [move rendering stuff that doesn't depend on notice to a separate function Evan Prodromou **20080917112730] [newmessage and showmessage Evan Prodromou **20080917174741] [add new message link to showstream Evan Prodromou **20080917175356] [don't show message link on your own page Evan Prodromou **20080917175512] [fancy urls for show message, new message Evan Prodromou **20080917180244] [to parameter is an ID not a nickname Evan Prodromou **20080917185142] [not a nickname so don't canonicalize Evan Prodromou **20080917185723] [correct urls from fancy url for show-message Evan Prodromou **20080917185950] [fix missing variable in save-new-message Evan Prodromou **20080917190306] [skip over Mailbox::handle to Action::handle Evan Prodromou **20080917190445] [fix titles in showmessage Evan Prodromou **20080917190745] [save created date Evan Prodromou **20080917191652] [some minor fixes for new messages Evan Prodromou **20080917192121] [style for message form Evan Prodromou **20080918021421] [rearrange paragraphs in message form Evan Prodromou **20080918021727] [change id of message textarea Evan Prodromou **20080918021926] [no instructions for 'to' dropdown Evan Prodromou **20080918022410] [set message form label to display inline Evan Prodromou **20080918022558] [try to move the message box up a bit Evan Prodromou **20080918022756] [scootch it down a bit again Evan Prodromou **20080918022841] [return correct data structure for messages in showmessage Evan Prodromou **20080918023032] [fetch -> find Evan Prodromou **20080918025232] [fix htaccess so pass message param correctly Evan Prodromou **20080918025428] [more id -> message shenanigans Evan Prodromou **20080918025543] [remove tabs from showmessage Evan Prodromou **20080918025713] [split favor forms code Evan Prodromou **20080918032048] [big changes to the README, part 1 Evan Prodromou **20080918135502] [if favor/disfavor submitted through ajax, return micro-html of form Evan Prodromou **20080918135608] [Gee, maybe I shouldn't try to write DOM code from memory Evan Prodromou **20080918140533] [ah, turns out each() stuff is called as a method Evan Prodromou **20080918140756] [get the zeroth form in the returned array Evan Prodromou **20080918145545] [replace -> replaceWith Evan Prodromou **20080918150120] [ajaxForm on returned forms Evan Prodromou **20080918150438] [have to add the ajaxHidden thing, too Evan Prodromou **20080918150753] [dis -> fav Evan Prodromou **20080918151642] [correct background of dis/favor form on hover Evan Prodromou **20080918151907] [input changes Evan Prodromou **20080918152124] [add favor/disfavor to profile Evan Prodromou **20080918152612] [don't notify you favor your own notice Evan Prodromou **20080918152823] [correct a couple of bugs Evan Prodromou **20080922190937] [clear and rebuild db scripts Evan Prodromou **20080922195824] [add additional licenses into extlib subdir Evan Prodromou **20080922212120] [hide IM settings if xmpp disabled Evan Prodromou **20080922214003] [finish the README file Evan Prodromou **20080922223239] [A working stopdaemons.sh, and no parameter needed for startdaemons.sh CiaranG **20080906202242] [merge CiaranG's changes for subs Evan Prodromou **20080922225031]