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: 20059
get_player_name() will now do a /whois if the name is not currently known by the ContactManager

Revision: 20060
Left Hand Man dropped equipment powers

Revision: 20061
Item drop rates thanks to Ryo Sangnoir

Revision: 20062
plit "Potions" and "Avatar Potions" into their own sections in modifiers.txt, rather than
dumping them in to "Everything Else". Fix checkitems to output those sections.

Revision: 20063
Done hardcode Linebreak in stack trace.

Revision: 20064
Restore the 2 NBSP and the "at " that was accidentally removed from ASH stack trace lines.

Revision: 20065
Guzzlr items

Revision: 20066
Guzzlr shop

Revision: 20067
Few more trivial things to make the Guzzler shop work correctly.

Revision: 20068
Java strings take Unicode. Use it.
Fix use link when you get Guzzlrbucks to go to shop

Revision: 20069
You can disambiguate item names with item id when setting goals. Therefore, when displaying the goal -
including as one of the results of ASH get_goals() - include the item id if the name is ambiguous

Revision: 20070
Add Buttery Boy and Guzzlr cocktail set

Revision: 20071
Since GenieRequest requires that the genie bottle be "accessible", use retrieveItem to
pull it into inventory, if needed, before trying to use it.

Revision: 20072
Add rest of Guzzlr cocktails, effects, recipes

Revision: 20073
Fix capitalization of X-dimensional horror

Revision: 20074
Fix Daily Deed check for vote monsters. Untested.

Revision: 20075
Guzzlr item plurals. Count daily uses of Expert Corner Cutting

Revision: 20076
You can walk away from talking to the Meatsmith, Doc Galactic, and the Armror

Revision: 20077
Remove duplicated code when accounting for free crafting turns

Revision: 20078
Add monster aliases to monster id sets so that ASH can find them.

Revision: 20079
When searching for a function with a particular match type, search parent scope with the same match type

Revision: 20080
When searching for matching functions, go all the way up the scope tree for a particular
combination of matchType/varArgs before moving to next combination

Revision: 20081
Disambiguate Spookyraven library key in default goals for the Haunted billards room

Revision: 20082
Allow autoCoercion to basic types as well as typedefs and records

Revision: 20083
Roll back coerceon to base types, since it doesn't work well in expressions

Revision: 20084
o a better job of auto-coersion in string concatenation

Revision: 20085
Guzzlr tablet is now an accessory that you can tap (redirecting to a choice)

Revision: 20086
Tracking for Guzzlr Tablet quests

Revision: 20087
Plumbers don't drink booze, so don't show them booze in the booze panel of the item manager.

Revision: 20088
Fix spoiler for getting Fantasy Realm arrest warrent

Revision: 20089
Fix location matching for Guzzlr quests

Revision: 20090
Fix some bugs with Guzzlr choice and quest tracking

Revision: 20091
Fix autoCoercion when assigning into a typedef.
Fix multiply defined function error for functions with different typedefs with the same base type

Revision: 20092
Typedef types are equal only if they have the same name.
"validate" now prints the raw type f function parameters not the base type.

Revision: 20093
Adjust opening Relay Server to not exit if can't bind a socket to listen on per patch from Ryo_Sangnoir

Revision: 20094
Lighter defeats the protester being attacked as well as a nearby group. Not tested.

Revision: 20095

Revision: 20096
Further simplifications for auto-coercion

Revision: 20097
Track resolution rare summons

Revision: 20098
oasis monster is an elemental. Nogs-on-the-Cobs

Revision: 20099
Add 17 keys from spreadsheet. Guzzlr zap group

Revision: 20100
Low Key Summer recognition

Revision: 20101
Manual of Lock Picking item and Lock Picking skill

Revision: 20102
Refactor: move all Tower Door support from SorceressLairManager to new TowerDoorManager

Revision: 20103
Add reset of Low-Key lock data from spreadsheet

Revision: 20104
Fix platinum guzzlr quest regex

Revision: 20105
Add actions for all Tower Door locks in Low-Key

Revision: 20106
Add "tower" or "lowkey" command to print the lock/key status of the tower door in the Sorceress's Lair

Revision: 20107
Supposedly finish support for Low-Key tower door

Revision: 20108
Powers for low-key path keys. Fix typo in help text of timespinner command

Revision: 20109
Further improvments to lock data for Low-Key tower door

Revision: 20110
More Tower Door fixes

Revision: 20111
Fix actions for low-key locks. Add "tower needed" to list only needed keys

Revision: 20112
Add Encounter to get each Low-Key key into the Lock database

Revision: 20113
Recognize unlocking of a Low-Key lock. Thwaitgold keyhole spider statuette. Manual of Lock Picking

Revision: 20114
Lock Picking can be cast once per ascension. track in "lockPicked" property

Revision: 20115
Use singular when defining Guzzlt token.

Revision: 20116
KoL modifier changes. Recignize Low-Key Summer image in ascension record. Fix comments.

Revision: 20117
Make Tower Door script use Lock Picking, if available and needed

Revision: 20118
Use GET to open locks

Revision: 20119
Premium Guzzlt cocktails need a coctail crafting kit

Revision: 20120
Add marshroom and Extra Spongy

Revision: 20121
When obtain last of Lady Spookyraven's dancing items, update quest to step2

Revision: 20122
Set Black Forest quest to tep1 when you get the black map.
Modernize code in FloristRequest

Revision: 20123
Don't generate error messages if KoL returns an obsolete adventure location in the Florist's watering schedule.

Revision: 20124
Add some images for monsters with variable images

Revision: 20125
Experimental: Perform monster disambiguation via images using image => monster lookup in a map,
rather than via a long change of string operations.

Revision: 20126

Revision: 20127
Add preference for whether the strange leaflet has been completed (via mafia's leaflet automation)

Revision: 20128
The Drip: New setting "dripAdventuresSinceAscension". Setting "drippyBatsUnlocked" is now
an integer, not a boolean. Each time you disturb bats in the Drippy House, add 7. Each
time you fight a bat, subtract 1. Set combat percentage of The Dripping Trees to 100,
which is correct, since the single non-combat is on a schedule, not random.

Revision: 20129
Adjust dripAdventuresSinceAscension, if necessary, when you encounter the Drippy House on the Prairie.
Combat rate for The Drippy Trees is 100% except when the non-combat is next, at which point it is 0%
Add .combat_percent proxy record field for a $location object in ASH.

Revision: 20130
WHen looking up adventure names supplied by KoL itself, do not do fuzzy matching.

Revision: 20131
Add property - frenchGuardTurtlesFreed - for tracking turtles freed during the Nemesis quest

Revision: 20132
Reverse order of checks for freeing guard turtle vs. French guard turtle, since Wiki seems
to say that a reugular guard turtle gets both messages.

Revision: 20133
Only increment one of guardTurtlesFreed and frenchGuardTurtlesFreed

Revision: 20134
semirare encounter in the Red Zeppelin is "Red Fox" (the actual name of the monster) rather than
The Red Fox (the supposed name of the encounter.

Revision: 20135
DOn't parse equipment on equipment.php?which=2 if ajax=1 or ftext=

Revision: 20136
Remarkable Elba Kramer appears Inside the Palindome. Add monster ID for ultra-rare monsters from Wiki.

Revision: 20137
About those ultrarare monster ids: they were on the WIki, with no explanation about where
they came from. Not Manuel, obviously. I just noticed that two monsters had duplicate IDs.
I conclude that somebody just pulled the IDs out of their ass.

Revision: 20138
Add paraffin pseudoaccordion as a buff tool for casting AT buffs

Revision: 20139
bag of Iunion Stones and Iunion Crown

Revision: 20140
Track started gold and platinum guzzlr quests on start, track total number of completed quests for the day, fix abandoning quests not resetting props

Revision: 20141
Include default for _guzzlrDeliveries

Revision: 20142
Add new type of script (spadingScript). Replaces meatDropSpading. Includes events for meat drop, combat rounds and all three consumption types

Revision: 20143
Add SpadingManager class that somehow wasnt included in the last commit

Revision: 20144
Updated drop rates thanks to Ryo Sangnoir

Revision: 20145
Add additional param for spadingScripts (string of metadata, content of which is dependent on event type

Revision: 20146
Fix some Spookyraven combat rates (thanks to Aenimus LAR spading)

Revision: 20147
Add spadingScript events for using (and multiusing) items, as well as for choice adventures

Revision: 20148
Update some effect quality and attributes from excavator data

Revision: 20149
If timing in recognizes it is now the next day, turn it into aa regular login.
If you try to logout during rollover - every request will redirect to main.php - skip the logoutScript

Revision: 20150
When looking for an exact no-substring monster-name match, allow for KoL
including "the " in fron of the monster name, even though that is not actually
part of the monster name.

Revision: 20151
AscensionPath.Path is now an object that has a name, id, image, isAvatar, and description.
KoLCharacter uses this rather than String path names. AfterLifeRequest and AccountRequest
use this to map from path IDs to path objects.
ASH now has int my_path_id(), string path_Id_to_name(int), int path_name_to_id(string)

Revision: 20152
Fix some formatting. path_name_to_id() now returns -1 if given bogus path name.

Revision: 20153
Add missing switch case break to Guzzlr quest abandonment

Revision: 20154
Guzzlrbucks now have both "Lets Guzzle!" and "tap" links

Revision: 20155
Don't prematurely set kingLiberated as Ed

Revision: 20156
Item drops for haunted nursery. More refactoring using AscensionPath.Path

Revision: 20157
Record maximizer string to gCLI and session log.

Revision: 20158
Add new consume type to SpadingManager (CONSUME_REUSABLE) and update statuseffects attributes based on Excavator data

Revision: 20159
Update some item and effect data based on KoL changelog. Debatably not worth my time, but apparently it was worth theirs so seems sensible

Revision: 20160
Fix strings matched to detect clover adventures to not trigger simply on "puff of smoke"

Revision: 20161
Track daily volcoino drop from lucky gold ring in _luckyGoldRingVolcoino, thanks to Miser

Revision: 20162
KoL includes MONSTERID in fight response text. Use it!

Revision: 20163
Guzzlrbuck and pirate fork are not consumed when "used". Semi-tested.

Revision: 20164
Fix use links for Guzzlrbucks

Revision: 20165
No more gaudy key from the gaudy pirate

Revision: 20166
If we can't find MONSTERID but there is no darkness.gif, print response text to DEBUG log

Revision: 20167
Monster ID for X-32-D Combat Snowman. We no longer have/need DUMMY monsters.

Revision: 20168
Attempt to look up monster by name if MONSTERID is not present in a fight.

Revision: 20169
If we are currently in a fight, do not register requests other than fight.php, since
they will immediately redirect to fight.php.

Revision: 20170
When parsing store inventory, don't skip past the (nonexistant) header if your store is empty.

Revision: 20171
Don't set daily elemental airport properties to true if you fail to visit the
airplane or an adventuring location.

Revision: 20172
Add missing choice option in GUI configuration for choice adventure 670

Revision: 20173
Add autoscend to SVN repository for Script Manager

Revision: 20174
When we learn a new monster or a changed monster ID via MONSTERID, register the
new monster or changed id for the rest of the session, as well as logging it
to the gCLI and session log

Revision: 20175
WHen we initially parse a combat encounter and create a MonsterData, set the lastMOnster
in the MonsterStatusTracker immediately, rather than waiting for it to be re-created
later from the monster name.

Revision: 20176
Some more drippy items

Revision: 20177
Add new secondary item attributes: paste, smith, cook, mix. Add new item proxy
record fields: pasteable, smithable, cookable, mixable. Fix checkitems to check
crafting item properties, Backfill all items with crafting properties from their
item descriptions. Add drippy orb.

Revision: 20178
Seven more drip items and 2 drip status effects

Revision: 20179
Add some drippy concoctions

Revision: 20180
Trigger SpadingManager after all processing is done on item use

Revision: 20181
The Drip is now a zone. The Dripping Trees and The Dripping Hall are locations in The Drip.
drippy reveler is a monster in The Dripping Hall. Track asdventures since ascension sperately
for trees and hall: drippingTreesAdventuresSinceAscension & drippingHallAdventuresSinceAscension.
Spoilers for The Hall in the Hall. More items and concoctions.

Revision: 20182
Create trans-ascension counter for Mmmmmmayonnaise

Revision: 20183
Add use link decorator to fizzing spore pods when appropriate

Revision: 20184
End Mmmmmmayonnaise counters when you hit the choice

Revision: 20185
Don't validate battleAction if we're using a combat filter

Revision: 20186
add lustrous drippy orb. fix choice # for The Hall oin the Hall. fix some equipment powers

Revision: 20187
ince KoL is now providing MONSTERID with every round, we shouldn't need to look up
monsters by name if it is not present. Keep that code, just in case, but log the
fight responseText if we get no MONSTERID and it is not the darkness.

Revision: 20188
If automating an adventure leaves you in a choice, automate the choice

Revision: 20189
Don't set spookyraven tracking for locations we've already cleared in that quest

Revision: 20190
fix dripping meat staff image. fix spookyraven library choice spoiler

Revision: 20191
gooey drippy candy bar

Revision: 20192
drippy bromide and gory dripping orb

Revision: 20193
Add Excavator to SVN script repository director.
When sending image files from image cache to browser, include an Access-Control-Allow-Origin header field.

Revision: 20194
Add drippingHallUnlocked property, set when you visit Jeremy with the fingernail or when you see The Hall in The Drip
CoinmasterFrame will not show you the drippy shield unless you have unlocked it and don't already have one.
Add _drippingHallDooRevision 1 (2, 3, 4) properties to track which doors you have been through today.

Revision: 20195
Allow "iii/" as well as "images/" to start a file in the KoL images directory

Revision: 20196
Experimental features:
suppressPowerPixellation will cosnetic effects on monster image from PowerfulGlove
extraCosmeticModifiers will add OCRS cosmetic modifiers to monster images

Revision: 20197
gory dripping orb -> gory drippy orb. bitterskin is a neutral effect.

Revision: 20198
Add modifier formulae for MP and Booze Drop on Guzzlr tablet. HP is still a mystery (and its always possible we find out that MP has a higher cap)

Revision: 20199
Add spadingScript hook for PvP fights

Revision: 20200
Adventure validation: Dripping Hall must be unlocked. The Drip requires a Drip harness.
Equip Drip harness if you have one but equipped, when automating any adventure in The Drip.
Add choice configuration for Revolting Venting.
drippingHallAdventuresSinceAscension only increments if you defeat a drippy reveler or take
The Hall in the Hall NC.
If you get a drippy pilsner from the NC, remve a drippy stein.
If you buy a drippy candy bar, subtract 10000 Meat.

Revision: 20201
Add dynamic choice spoilers for The Hall in the Hall

Revision: 20202
Log Turn # when you visit Dr. Awkward's Office.

Revision: 20203
When checking Limitmode zones for Batfellow and Spelunky, check root zone of the location, rather than simply parent zone.

Revision: 20204
Add KoLCharacter.estimatedPoolSkill, which takes equipment, training, semirares, and inebriety into account.
Use this for the choice spoiler for The Hall in the Hall.

Revision: 20205
When you transform a monster, next time we parse a fight page, extract the new monster using the new MONSTERID comment.

Revision: 20206
Once you transform a monster, reparse it using MONSTERID, etc. every round for the rest of the fight
since ocrs modifiers, etc. do not appear the very next round, but a later one. This is bug reported.

Revision: 20207
Fix checking zones in Limitmode

Revision: 20208
When you transform a monster via CLEESH or Macrometeorite or CHEAT CODE: REPLACE ENEMY, attempt to
figure out what the new monster is by looking at the name and perhaps image in the newpic()
Javascript function. We'll know for sure when you submit the next action, since the response
text will have the MONSTERID, but this will usually let you know what it is before submitting an action.

Revision: 20209
Sometimes a ten-leaf clover "vanishes" in a puff of smoke.

Revision: 20210
If a combat filter aborts, that aborts the combat and the enclosing script.

Revision: 20211
If a combat filter does an "exit", exit from script after combat completes

Revision: 20212
It does not take turns to adventure in Spelunky or Batfello

Revision: 20213
New property - drippyOrbsClaimed - incremented when you laim a drippy orb in The Hall in the Hall

Revision: 20214
Possibly adjust drippyOrbsClaimed based on current pool skill if you fail to claim a drippy orb.

Revision: 20215
Add "test choicespoilers CHOICE" command

Revision: 20216
Fixes from checkitems

Revision: 20217
test choicespoilers works only on choices with dynamic spoilers. Don't NPE if given a
choice without dynamic spoilers

Revision: 20218
Update mallprices.txt

Revision: 20219
Bump version to 20.6