The following is an abbreviated version of the Subversion commit message logs. Please keep in mind that these messages are intended for other developers and they take the files which were modified into context in order to limit the amount of verbage. In general, they are not intended for general audiences and should not be treated as "official" documentation -- they are informal and abbreviated, at best.

If you do not understand what something says, try looking at the full version of the revision by following the accompanying link for the revision. The only difference is that the files which were modified will be listed, and sometimes, you can guess what happened from file names (though not always). If you still have no idea what happened, that's okay -- it probably doesn't relate to what you're doing with KoLmafia. ^_~

Furthermore, not everything marked as "fixed" is guaranteed to be fixed, not all changes are guaranteed to have a change. This is due the fact that both time and turns are finite and only a limited number of things can be tested. Some changes go in untested, assuming they would work, when they actually don't due to erroneous assumptions; alpha testers occasionally will be able to give feedback, but it's not always possible.

For example, if you read the revision logs for what changed between 10.2 and 10.3, the plus sign choice adventure was meant to get a use link. Something as seemingly insignificant as KoL using two spaces instead of one space in the sentence "It's actually a book. Read it." would mean the change didn't actually work -- anyone can verify that, in fact, the change didn't work for this very reason. If you ever encounter something like that, a non-accusatory mention of it (non-accusatory meaning anything that neither implies "ZOMG FALSE ADVERTISING" nor "You guys said this was fixed, but...") somewhere will usually result in the problem getting addressed.

Finally, if you've got a bug to report, make sure you read up on how to post a detailed bug report. While the rules outlined apply specifically to bugs related to scripting, many of them are applicable to KoLmafia bug reports in general. Most importantly, I hate the words "annoying" and "frustrating". Never use them when describing a bug/feature. Ever. Thanks. The abridged revision logs follow.

Revision: 17194
Fix a typo

Revision: 17195
Move Hippy quest tracking to QuestManager.

Revision: 17196
Fix tracking of started and step 2 in Hippy Quest.

Revision: 17197
Try to fix noticing completion of Hippy quest. Untested (and a bit of a punt).

Revision: 17198
Refresh consumption data after gaining/losing Drunk and Avuncular and Record Hunger. Getting a junk junk does not immediately give Island access

Revision: 17199
Was my last commit insane? Just possibly. Try fixing Hippy quest tracking again.

Revision: 17200
Finishing the Hippy quest unlocks the Island

Revision: 17201
If we see Hippy quest is complete in log, island is available.

Revision: 17202
Don't cast Internal Soda Machine past the point of filling MP

Revision: 17203
Recognize the end of a Community Service ascension

Revision: 17204
When transforming equipment, properly add the new item to outfit checkpoints

Revision: 17205
When autoequip an item in Spelunky, set it in implicit checkpoint.
When thrwo an item in Spelunky, discard it from implicit checkpoint
Parse equipment approriately from api.php in Spelunky

Revision: 17206
The adventurer bobblehead's modifier doesn't reset at rollover

Revision: 17207
Holo-records are multi-usable

Revision: 17208
Time-Spinner consumable spading.

Revision: 17209
Time-Spinner tracking : _timeSpinnerMinutesUsed, _timeSpinnerReplicatorUsed

Revision: 17210
Don't display Soulsauce or Disco Momentum in Nuclear Autumn

Revision: 17211
Don't remove items from inventory when Traveling back to a Delicious Meal

Revision: 17212
Track food consumed today in _timeSpinnerFoodAvailable

Revision: 17213
Holo-record effects are shruggable

Revision: 17214
Let the maximizer know that some effects can't be applied at the same time as other effects

Revision: 17215
Track Time Spinner Medals (timeSpinnerMedals)

Revision: 17216
Revert some mutex entries, since it's easy to replace one effect with another in many cases

Revision: 17217
Adventure goals for getting wine bomb the long (read Nuclear Autumn) way.

Revision: 17218
Don't let listeners get added to deferred list while another thread is operating on that list

Revision: 17219
Print stack trace if we try to defer listeners from within the same thread that
is firing listeners

Revision: 17220
When firing deferred listeners, copy set into an array and iterate over that.

Revision: 17221
If you fail to use a holo-record, don't remove it from inventory

Revision: 17222
Not everything that you eat gets added to the Time-Spinner's list

Revision: 17223
time-spinner prank is free (and doesn't belong in combat queues)

Revision: 17224
Recognize when you break your hippy stone

Revision: 17225
Log Nuclear Autumn correctly upo ascension

Revision: 17226
Properly track things when eating with the Time-Spinner

Revision: 17227
Clear Clan Rumpus Room contents when switching characters

Revision: 17228
Correct some consumption spading

Revision: 17229
Fix limit for Internal Soda Machine

Revision: 17230
The Biggest Barrel has slightly different HTML for its choice.php link

Revision: 17231
time-twitching toolbelt is a free pull if the time tower is available.

Revision: 17232
Twitch locations and monsters

Revision: 17233
Twitch items

Revision: 17234
more twitch items

Revision: 17235
item. familiar. no familiar item or arena parameters yet.

Revision: 17236
Don't disambiguate gumshoes when giving a wiki link

Revision: 17237
Don't do fuzzy matching when looking up wiki name, since we will always have
the full actual name available.

Revision: 17238
New tattoo item

Revision: 17239
Add KoL Con 13 Merch Table

Revision: 17240
forgot to commit a file

Revision: 17241
sixgun recipes

Revision: 17242
Consumables in the Neandermall now cost 25 Chroner, not 5
tiny baby scorpion is familiar item for Bark Scorpion
If you successfully visit the Time-Twitching Tower or any of the shops in it,
mark the time tower as available.
The Merch Table uses "rows". Build the map of rows when you visit it.

Revision: 17243
When you try to visit a Twitch store after the tower is gone, KoL says "That
store isn't there anymore.". Recognize and mark tower unavaliable.

Revision: 17244
Trick-or-Treating Tot

Revision: 17245
More Trick-or-Treating Tot

Revision: 17246
Performance improvements for Maximizer (and all other Modifier checks). Check for time-twitching toolbelt text rather than doing lookup against item in Modifiers.override() to avoid unnecessary lookups. Move lookup of name to after check whether it is an item, as it is only needed in that case.

Revision: 17247
Fix tot familiar syntax

Revision: 17248
Faustbot seems to be gone for good

Revision: 17249
Modifiers.override only looks for hard-coded items if they are marked Variable

Revision: 17250
You can only buy Trick-or-Treating Tot items if you have the familiar

Revision: 17251
More tuning for "Variable" modifiers

Revision: 17252
Track hoarded candy wad drops

Revision: 17253
Tiny elegance tweak

Revision: 17254
KoL Con 13 Snowglobe drops should not increment normal daily drop tracking

Revision: 17255
Track cuppa sobrie tea usage

Revision: 17256

Revision: 17257
Arena parameters for Bark Scorpion and Trick-or-Treating Tot

Revision: 17258
Fix line breaks in pre-ascension reminder list

Revision: 17259
New item, effect.

Revision: 17260
Reset turns_spent to 0 in Batfellow zones after finishing to allow tracking of noncombats

Revision: 17261
Recognize when a digitized monster shows up in The Deep Machine Tunnels

Revision: 17262
Add "counters warn [countername]" and "counters nowarn [countername]" as counter options.
As examples, "counters warn Digitize Monster" would make those counters stop you when they expire. Using "counters nowarn Semirare window begin" will remove the abort from that counter.
If there are multiple counters with the same label, all of them will be changed. The counter name is case sensitive.

Revision: 17263
Add warning in Nuclear Autumn if you have access to +adv% food and booze buffs, but haven't got them active when you try to eat or drink.

Revision: 17264
In Batfellow, detect loss of fingerprint dusting kit after a win.
Don't try to look at standard.php when in a limitmode
Fix choices for low-level Batfellow areas

Revision: 17265
When rescuing king, visit campground interior locations in Nuclear Autumn (and Ed) as we haven't seen them before. Untested.

Revision: 17266

Revision: 17267
Untested, if we're in a fallout shelter, there must be nothing left of our campground!

Revision: 17268
Handle alternative familiars using switch statement when it's the familiar equipment that makes them preferred.

Revision: 17269
Also recognize when an arrowed monster shows up in DMT. Recognize which is being fought if both are possibilities.

Revision: 17270
Fix [read it] link in Relay Browser when learn new Tale of Dread

Revision: 17271
Pandemonium Slums - deleted fraudwort as a goal and added 3 hot wings.

Revision: 17272
Handle totes

Revision: 17273
A couple of extra default goals.

Revision: 17274
New passive skill, Eldritch Intellect.

Revision: 17275

Revision: 17276
Improve handling of mail contacts when you log in during a fight or choice
Rad-Pro is multiusable

Revision: 17277
You can't buy antidotes in Nuclear Autumn

Revision: 17278
In Area Combat Data, when reporting drop rates, take account of Food Drop, Booze Drop, Candy Drop, Gear Drop, Hat Drop, Weapon Drop, Offhand Drop, Shirt Drop, Pants Drop and Accessory Drop.

Revision: 17279
ChoiceManage.CHOICE_HANDLER overrides shouldFollowRedirect itself rather than
depending GenericRequest kludging it for it.

Revision: 17280
Add debugging and error checking for unhandled redirects

Revision: 17281
Don't report unhandled redirects from Relay Requests

Revision: 17282
Log a few more places - including certain Fallout Shelter visits.
Don't log "unhandled redirect" for fight.php and choice.php redirects that we
"handle" by passing them to a different request.

Revision: 17283
Add "timespinner" command courtesy of lost.
timespinner list food -> list available foods
timespinner eat FOOD -> Spin and Munch on the specified food

Revision: 17284
Allow pranking with timespinner

Revision: 17285
Handle an empty Time-Spinner food list

Revision: 17286
Add "timespinner list monsters [filter]". This will show all monsters that should be available in the Time-Spinner, optionally filtered (case-insensitive).

Revision: 17287
When we automatically follow a redirect, register the request after setting
the new URL.

Revision: 17288
Barrel of Laughs and Beer Barrel Polka update adventures granted by consumption. Untested.

Revision: 17289
Add new buttons for barrel prayers in booze/food panels. Also have both glorious lunch and milk buttons available in Boris (potentially handy in Softcore). Largely untested.

Revision: 17290
When tracing show start and end of relay script invocation.
Add traceprint( string) ASH function

Revision: 17291
Restore inadvertently deleter variant of ASH "print" command.
Trace 302 directs more clearly: show source -> destination URLs

Revision: 17292
Handle extruding in NA

Revision: 17293
remove extra line break after developer gifts in gap decoration

Revision: 17294
When tracing, log bytes retrieved from server and sent to browser

Revision: 17295
Quest Log requests can come in the middle of a choice.
Don't set ChoiceManager.lastResponseText for unknown non-choices that can
come in the middle of a choice.

Revision: 17296
Add "test cookies" command to see values of the "special" cookies we track.
GenericRequest saves only the "special" cookies. RelayRequest saves only
non-"special" cookies.
When passing cookies to KoL, for internal request, send only the "special"
cookies. For external (browser) requests, sent browser-specified cookies too.

Revision: 17297
Move code that resets whether we are handling a choice.

Revision: 17298
Add a link to go "Back to your Time-Spinner" following Way Back in Time fights.
Do a better, but not yet perfect, job of logging Time-Spinner fights that take
a turn.

Revision: 17299
Fix logging fr fighting monsters Way Back in Time

Revision: 17300
When getting breakfast, iterate through equipment in the Clan Rumpus Room and
use things that are usable

Revision: 17301
Nuclear Autumn skills cannot be permed

Revision: 17302
Look for the correct image for the Palindome

Revision: 17303
School of Hard Knocks Diploma does something now

Revision: 17304
Update datafiles.

Revision: 17305
Replace most instances of parseItemValue() with makeItemValue().
This should address a bug involving identifying items with the same name in
various locations, such as inventory.

Revision: 17306
Properly supprt Unleash Your Inner Wolf

Revision: 17307
null check

Revision: 17308
Eldritch Incursion

Revision: 17309
A couple more Eldritch Fissures

Revision: 17310
Account for a KoL typo

Revision: 17311
Stats for Eldritch Tentacle

Revision: 17312
When we use a queued drink helper, decrement the remaining queued count.

Revision: 17313
Add alternate area unlockers as goals to Haunted Pantry, Sleazy Back Alley, and
Outskirts of Cobb's Knob

Revision: 17314
Add "floundry fish" as a possible goal.

Revision: 17315
Remove DOS linebreaks from the handful of files that have them.
Five items in the Internet Meme Shop have 1/day purchase limits:
- add _preference for each of them
- show only available items in Meme Shop coinmaster panel

Revision: 17316
Disambiguate Eldritch Tentacles based on image

Revision: 17317
meme generator can't have an in-line use link.
Do not replace links to generated memes with pointers to image cache

Revision: 17318
More Eldritch Fissures

Revision: 17319
A few more eldritch items

Revision: 17320
Official Council Aide Pin

Revision: 17321
Add An Eldritch Fissure as an adventuring location. eldritch effluvium is

Revision: 17322
Treat all Eldritch Fissures as being the "An Eldritch Fissure" adventuring
location (wve though when you automate that location you always go to Town).

Revision: 17323
Since all Eldrich Fissures now are recognized as the adventuring zone, don't
need special handling in PlaceRequest; AdventureDatabase handles it all.

Revision: 17324
COmbat data for An Eldritch Fissure. Drops for Eldritch Tentacle.

Revision: 17325
If effects can't be produced by a skill, or visa versa, don't report that they can be matched by a skill of the same name.

Revision: 17326
Additional Eldritch Fissures. Null check looking up skill by effects

Revision: 17327
Stop error message "Unknown Item: Floundry Fish"

Revision: 17328
Two new Eldritch item recipes and items.

Revision: 17329
Trap NPE in DeckOfEveryCards request.

Revision: 17330
Some Thanksgarden items

Revision: 17331

Revision: 17332
A few more Thanksgiving items.

Revision: 17333
Add link on cashews to ThankShop, untested.

Revision: 17334
Start of recognizing Thanksgarden crops.

Revision: 17335
Whoops, added ThankShopRequest. Add Thanksgarden to Valhalla Decorator.

Revision: 17336
Add School of Hard Knocks Diploma to once-per-day breakfast items

Revision: 17337
Give a link to the cashew shop

Revision: 17338
Some more Thanksgarden items.

Revision: 17339
More Thanksgarden items

Revision: 17340
Quartet of Flare Masters Jacket

Revision: 17341
Morr itemz

Revision: 17342
Eldritch pants and hat no longer zappable.

Revision: 17343
Science Notebook. eldritch essence is a COOK_FANCY recipe. Science Tent.

Revision: 17344
You can explore Eldritch Fissures while falling down drunk

Revision: 17345
2 more Eldrich Fissures. eldritch plural

Revision: 17346
Remove duplicate entries.

Revision: 17347
Untested, recognise all Thanksgarden images.

Revision: 17348
More Eldritch Fissures. Allow multiple castings of Ancestral Recall and Dark
Ritual (non-combat spells which use blue mana and green mana respectively).
If number of casts is decreased becasue of a per-spell maximum. give an
informative message.

Revision: 17349
More Thanksgarden stuff

Revision: 17350
eldritch concentrate is multi-usable. Eldritch Fissure in The Sea. Log the
message uttered by a time prank when you first meet it.

Revision: 17351
inert eldritch matter

Revision: 17352
Modifiers for The Good Salmonella

Revision: 17353
Add "eldritchFissureAvailable" setting to control whether we can automate
adventures in An Eldritch Fissure. Behaves like "timeTowerAvailable": defaults
to false, but if you visit the Town and the Eldritch Fissure is there, gets
set to true.

Revision: 17354
Fix typo

Revision: 17355
Correctly detect Thanksgarden at the astral gash

Revision: 17356
If two of the same free kill item is used in a round, don't count both uses as successful when the first one ends the fight

Revision: 17357
bomb of unknown origin

Revision: 17358
Only set the appropriate setting for tracking Intergnat daily items when making a purchase

Revision: 17359
When unequip a familiar via the terrarium, parse the response correctly and
put the item into inventory.
When "retrieving" an item from your active equipment, take from the offhand
slot before the weapon slot, so that both slots do not get emptied if you are
dual wielding the sae weapon.

Revision: 17360
megacopia and giant pilgrim hat. Warn when replacing any "special" housing with any other housing, regardless of which one is newer.

Revision: 17361
Resting HP/MP from giant pilgrim hat

Revision: 17362
Track turkey blaster uses

Revision: 17363
It's 3 turkey blasters per day, and they are spleen. Also some food spading.

Revision: 17364
"distend", "dog hair", and "flush mojo" buttons on the item manager now consider
all "accessible" places for the required item and "retrieve" it before using.
When you have consumables queued, if you use an item or skill that changes the
number of adventures granted, the displayed range will change on the queued
items as well as on unqueued items.

Revision: 17365
KoL fixed the plural for the chocolate stolen accordion.

Revision: 17366
Fix use link for tomb ratchet

Revision: 17367
airplane charters and one-day passes may or may not be removed from inventory
when you try to use them. Account for the possibilities and remove them iff
KoL removed them.

Revision: 17368
Proof of concept for a "monster" section in the Encyclopedia

Revision: 17369
Few tweaks to the monster section of the Encyclopedia. Especially, show the
"raw" Attack, Defense, and HP - which will evaluate expressions, handle scaling, and so on.

Revision: 17370
Register the DescriptionFrame with the ToolTipManager so that that "alt" text
of images will show up as tooltips.

Revision: 17371
Treat Unidentified Drink like Thermos, as it is so unpredictable.

Revision: 17372
Some Thanksgarden food spading.

Revision: 17373
Allow auto-harvesting of megacopia. Track daily use of confusing LED clock.

Revision: 17374
Improvements to monster section Encyclopedia: hover text for Attack, Defense,
and HP now indicates if the monster scales and, if so, the scale, floor, cap

Revision: 17375
Show full-sized images in the Monster section of the Encyclopedia

Revision: 17376
Encyclopedia uses an HTMLEditorKit that goes through KoLmafia's image cache

Revision: 17377
If a choice adventure has a "Go To Goal" button, give that name to the "auto"
button as well, since that is what it will do.

Revision: 17378
Assign negative monster IDs for real KoL monsters with unknown ID.
Add a NOMANUEL attribute to monsters known to not have Manuel entries,
even if we know their monster ID.
Add a Wiki: attribute for monsters whose Wiki page is not directly
derivable from the monster name.
Add $monster.wiki_name proxy field to get it.
The popup menu in the Monster section of the Encyclopedia now only has
two options: Show Game Description (same as you get via double click)
and Show Wiki Description.
Only show list of factoids for monsters that might have factoids.
Add a section for forthcoming "Other stuff" at bottom of page.

Revision: 17379
A few more tweaks, bug fixes, improvements to monsters

Revision: 17380
Revert erroneous change to MonsterData.getBaseInitiative()

Revision: 17381
Fix a lot of monsters: get Wiki: attributes as needed, fix some capitalizations
Rename slime1-5 to Slime, Slime Hand, Slime Mouth, Slime Construct and Slime
Colossus. assign each of those a negative monster ID so we can look at them in
the Encyclopedia.

Revision: 17382
Monster capitalization

Revision: 17383
Color monster names in encyclopedia accoring to monster defense element

Revision: 17384
In the monster section of the Encyclopedia, for any monster:
Say f the monster is a wanderer or where it appears.
Say if it is a Boss, is Ultrarare, or is Semirare.
List Meat Drop range
List item drops.

Revision: 17385
Work around issue with table columns not rendering correctly

Revision: 17386
Add megacopia to CampgroundRequest.CROPS so we can use that as the deired goal
in your garden for breakfast.

Revision: 17387
Using a megacopia leads to a fight.

Revision: 17388
Allow "cheat stat mainstat" to cheat your mainstat (from Deck of Every Card) regardless of class

Revision: 17389
Handle error messages from Ancestral Recall if you don't have blue mana or if
you have already cast it enough times today.

Revision: 17390
Default for choice 1085 is 1, so "use gift card" works as expected.
The "Floundry Fish" AdventureResult has ITEM_PRIORITY
Synchronize on GenericRequest.serverCookies when reading or setting them.

Revision: 17391
Setting _deckCardsSeen has every card you've seen today

Revision: 17392
Thanksgolem. megacopia cannot have an in-line use link since it leads to
a fight. Normalize "Seven of Salads" to "X of Salads" when storing card
names in _deckCardsSeen. Floundry Fish is a pseudo-item. Log "A Recent
Fight" from time-spinner better.

Revision: 17393

Revision: 17394
Ghost Dog Chow can be not-consumed. If so, ASH use() returns false.

Revision: 17395
Gallon of Milk and Unidentified Drink adv/stats (Unidentified Drink is pretty random, though, so have given average stat values). Stats for Thanksgolem (not got cap or floor yet, if it has them).

Revision: 17396
Fix typo

Revision: 17397
Bypass most of processResults() for a chat, desc_, or questlog request.

Revision: 17398
The Armory & Leggery is a Coinmaster which sells some items for Meat but also
will trade wickerbits and bakelite bits for previous year standard ascension
rewards. When visiting that store, parse the items on offer and if they are
not priced for Meat, add them (and the currency) to the list of coinmaster
buy items for this store.

Revision: 17399
Remove items from the store list when they are removed from the store while in ronin/Hardcore

Revision: 17400
You can buy a Red Zeppelin ticket at the Black Market using either 5,000 Meat or
1 priceless diamond.

Revision: 17401
Recognize the Meatsmith being started even if you already used bone with a price tag on it to unlock The Skeleton Store

Revision: 17402
When choosing name for shopId "bartlebys", choose correct name depending on
whether or not you are in Bees Hate You.
Certain quest items can be purchased - exactly once - from an NPC shop or a
Coinmaster. Set the available quantity in the appropriate PurchaseRequest
for such to be 1.

Revision: 17403
Row for spare kidney

Revision: 17404
Add a currencies() method to CoinmasterData which returns a Set of all the
currenicies used to buy currently available things for that Coinmaster
ArmoryAndLeggery no longer have a hard-coded list of currencies to show in the
title of the panel in the CoinmasterFrame

Revision: 17405
Add support for banishers that end after some number of turns or at rollover. No banishers are currently marked to work this way.

Revision: 17406
Whack Coinmasters to eliminate subclassing CoinmasterData. Instead, simply
override specific methods for specific instances. Move a lot of special code
from the CoinmastersFrame to individual Coinmasters so that the same
restrictions etc. are available to scripted access to those Coinmasters.
Three items from The Terrified Eagle Inn are one-time purchases. Add settings
to track whether you have bought them: hasTalesOfDread, hasBrassDreadFlask,
hasSilverDreadFlask. Remove "Conditional" items from coinmasters.txt.

Revision: 17407
Wrap table cells for the "prefref" command in paragraph tags so they don't end
up as super long lines.

Revision: 17408
abridged dictionary is not available if you have completed the Baron's quest.

Revision: 17409
sewing kit can only be purchased if not already in inventory.
UV-resistant compass can be purchased once per ascension.

Revision: 17410
Rename/add a few settings:
itemBoughtPerAscension637 (cheap toaster)
hasTalesOfDread -> itemBoughtPerCharacteRevision 6424
hasBrassDreadFlask -> itemBoughtPerCharacteRevision 6428
hasSilverDreadFlask -> itemBoughtPerCharacteRevision 6429
mayoWhipRented -> itemBoughtPerAscension8266

Revision: 17411
Alphabetize settings

Revision: 17412
You can only buy a folder (tranquil landscape) from The Terrified Eagle Inn if
you have the folder holder equipped.

Revision: 17413
Don't give a "Back to your Time-SPinner" link on the end-of-fight unless the
fight actually came from the Time-Spinner.

Revision: 17414
Put an HTL base tag of "/" into the reponse to a specialCommand so that
javascript functions that generate URLs will not submit them relative to

Revision: 17415
Add option for harvesting your garden: in addition to cornucopia and megacopia,
allow cornucopia (3), cornucopia (5), cornucopia (8), cornucopia (11), and
cornucopia (15).

Revision: 17416
Attempt to update war progress after using a stuffing fluffer

Revision: 17417
According to Manuel, One Thousand Source Agents never wins initiative.
If Manuel says Attack or Defense is 0, believe KoLmafia's values.
If Manuel says image is noart.gif, it's OK if KoLmafia has something else

Revision: 17418
Add fancy beer label (2) and fancy beer label (3) as crop options in garden

Revision: 17419
Check for potential quest updates even when adventure.php redirects (to fight.php or choice.php, probably)

Revision: 17420
Only ignore special encounters after a deck draw if the deck draw can actually lead to a special combat

Revision: 17421
Fix data errors revealed by checkitems. Update mallprices.txt

Revision: 17422
Bump to 17.5