Skip to content

Releases: online-go/gtp2ogs

9.0.0

10 Dec 18:09
33e5d6c
Compare
Choose a tag to compare

Release overview

9.0 adds support for specifying limits on the new rapid time control system with the allowed_rapid_settings option in your config file:

    allowed_rapid_settings: {
        simple: {
            per_move_time_range: [5, 30],
        },

        byoyomi: {
            main_time_range: [0, 3600],
            period_time_range: [5, 30],
            periods_range: [1, 10],
        },

        fischer: {
            initial_time_range: [5, 600],
            max_time_range: [5, 7200],
            time_increment_range: [3, 30],
        },

        concurrent_games: 3,
    },

Additionally, the fischer options now include an initial_time_range field to specify custom limits on the initial time for Fischer games.

Breaking changes:

If your config file includes a limit for fischer time control systems, you will need to add the initial_time_range field to those settings.

8.0.4

01 Mar 21:51
f1ed999
Compare
Choose a tag to compare

Fixed issue where ending bot state would diverge from the primary bot state if persist mode was set for the ending bot.

v8.0.0

13 Jun 16:38
8ad30ce
Compare
Choose a tag to compare

Release overview

This release is the culmination of an overhaul of the gtp2ogs system to modernize it's interface to OGS, add support for long requested features like bot pooling and signaling to the server about what what kinds of challenges are acceptable so that those options can be reflected in the bot selection user interface.

Migrating from prior versions

Prior to v8, configuration was managed through a ton of command line options. Now configuration done through a config.json5 file, please see example_config.json5 for more details on all of the configuration options. To migrate, you'll need to create a config.json5 file for your bot and configure it accordingly, and remove the use of most if not all of the command line options you were previously using.

Release candiate 6

24 May 17:36
51ffa39
Compare
Choose a tag to compare
Release candiate 6 Pre-release
Pre-release
  • Fix repeated clock warnings
  • Fix move errors after reconnects
  • Add player name and link for challenge reject messages
  • Proper promise handling to prevent crashes

Release candiate 5

19 May 02:56
84802a7
Compare
Choose a tag to compare
Release candiate 5 Pre-release
Pre-release

Changelog

  • Removed unused min_rank field from example_config.json
  • Renamed and documented disable_status_updates to status_update_frequency, which now takes a number of milliseconds to wait between status updates

Release candiate 4

18 May 14:55
33b23d2
Compare
Choose a tag to compare
Release candiate 4 Pre-release
Pre-release

Changelog

  • Renamed allow_handicap to allow_ranked_handicap option for clarity
  • allowed_rank_range now takes and expects rank strings like youd expect, example ["20k", "3d"]
  • Added --engine and engine config option to specify the engine being used. This is a free form text field to describe the engine, network, and any other relevant paramters or information. It will be displayed in chat. when the bot greets the players.

Release candiate 3

17 May 19:12
eae45e0
Compare
Choose a tag to compare
Release candiate 3 Pre-release
Pre-release

Changelog

  • Add a new manager option to switch between "persistent" and "pool" modes, depending on whether you want one bot per game or bots handling all games.
  • NOTE: The manager option defaults to "persistent", which is a change from the default "pool" behavior from beta.6. If you like the "pool" behavior, add manager: "pool" to your bot, opening_bot, and ending_bot configs as desired.
  • Add quit_grace_period to the bot configs to configure how long to wait after a "quit" is sent before forcefully killing the bot.
  • Add persistent_idle_timeout option to the bot config to configure how long to wait before killing a bot that has been idle for too long. This is only applicable in "persistent" mode.
  • Add support for { width_range: [min, max], height_range: [min, max] } in allowed_board_sizes to have greater control over allowed non square board sizes

v8.0.0-beta6

17 Apr 19:47
f9ad3b3
Compare
Choose a tag to compare
v8.0.0-beta6 Pre-release
Pre-release

Changelog

  • Fixed pause_control null check
  • Change time control restrictions to be per time control system instead of generic
  • Removed reference to unused min_rank field, use allowed_rank_range instead
  • Modified allowed_rank_range to be an exact range instead of +- range
  • Add decline_new_challenges option
  • Config files is reloaded on change, allowing changes to hidden status, time controls, white/black list, etc without restarting the service.
  • Allow unranked only
  • Add per user cap with max_games_per_player option
  • Add separate option to allow handicap for unranked games
  • Add support for restricting komi settings
  • Add bot affinity for games and board sizes

v6.0.1

04 Jul 22:56
24c9e5b
Compare
Choose a tag to compare
update package-lock.json to 6.0.1 (#344)

v6.0.0

13 Jun 19:45
865b516
Compare
Choose a tag to compare

New changes after gtp2ogs 5.3

Covering main changes, not exhaustive

For users (OGS players):

Reject messages from challenges are clearer and more precise, for example “Allowed boardsize are 9,13,19” is now “Board size 18x18 is not allowed on this bot for ranked games, please choose one of these allowed Board sizes: 9x9, 13x13, 19x19."
Also we now display parsed of rank (17 -> “13k”), time (300 -> “5 minutes”) in reject messages
Adding more chat messages from the bot to the user using sendchat, for example “Waiting for opponent to place all handicap stones”: if bot is waiting for opponent to place all other stones, while player placed only one handicap stone and forgot there are more to place, it would result in a resign from the confused player, so this message sent to the user fixes it: b5bf604
Bot is automatically set to --hidden if --rejectnew is used, since we will never accept games from the user, no need to appear on the dropdown: c758f32
Greet as soon as bot connects to a game, to avoid impatient or confused user from wrongly resigning: fe11699

For users (botadmins):

New wiki readme and documentation b6b5be2
Install method in instructions is not global using -g but local using npm install, which should be run at every gtp2ogs branch change if dependencies are missing
New options-list page where all gtp2ogs options are listed: https://github.com/online-go/gtp2ogs/blob/devel/docs/OPTIONS-LIST.md
Add general/ranked/unranked options for some options such as boardsizes, nopause, minrank, etc: it is possible to either set a common setting for ranked and unranked games (ex: --boardsizes 9,13,19) or specific settings for ranked games different from the ones for unranked games (ex: --boardsizesranked 19 --boardsizesunranked all)
More talkative console, that tells the botadmin about the errors
Add defaults, to make it easier (ex: boardsizes, komis, etc) but also safer (ex: maxconnectedgames, etc) for botadmin. Full list can be found here: https://github.com/online-go/gtp2ogs/blob/devel/docs/OPTIONS-LIST.md#default-values-summary
Add --maxconnectedgames and --maxconnectedgamesperuser to cap max bot load (initally in bbc7d85, has been enhanced since that time)
Clickable variations with winrates, moves, etc: native support for most famous AI: leela zero (ex: --ogspv LeelaZero), katago, sai, etc: https://github.com/online-go/gtp2ogs/blob/devel/docs/OPTIONS-LIST.md#ogspv
--logfile option: you can save console debug output in a log file for future reference if we encounter errors: https://github.com/online-go/gtp2ogs/blob/devel/docs/OPTIONS-LIST.md#logfile
Hide apikey in debug logging: 46f1e84
Kill bot in case of crash and automatically try to restart. At 5th crash automatically resign to avoid gtp2ogs being stuck: 126a997
Handle blitz live correspondence time settings individually based on speed: for example --minmaintimelive 60 (1 minutes) --minmaintimecorr (259200) (3 days)
Display bot command at greeting (ex: show resign rate, network, visits, etc.) https://github.com/online-go/gtp2ogs/blob/devel/docs/OPTIONS-LIST.md#greetingbotcommand
Warning at console start if nopause setting is missing. Pausing during games can make many games stack potentially indefinitely, and it is an option we may forget
Dropped some options and aliases: --botid, --id, --bot (only --username is possible now), using plurals for allowed families (arguments with one or many allowed values ex: --boardsizes 9,13,19) with a deprecation message if they are used, in console
Automatically handle minhandicap > 0 rejecting automatic handicap (-1) (because 0 > -1 so we reject based on minimum required 0 stones higher than -1 stones), by automatically enabling noautohandicap if minhandicap > -1
Add notes about “Submit Move” button to prevent from accidental clicks on the board while logged on the bot account on ogs website game page: https://github.com/online-go/gtp2ogs#submit-move-button
Fixed multiple corrqueue bugs
Add discord and various links
Many other options such as komis, nopauseonweekens, fakerank, snowboard (now optional), etc.

For developers:

Gtp2ogs is now split in modules (config.js, bot.js, game.js, connection.js, etc.): 90c5636
Added basic unit testing: cff3577
Added travisCI testing on the github repo, successfully tested in fe114f9
Added checkChallenge.test.js unit testing: #287 and 310ce13
Updated testing infrastructure (config is now a global let, not a local const, uncached require, added nyc,) #287
0f29e41
Fixed gamedata crashloop in devel (due to server inconsistency, see #296 and #301
Fix double genmove sent at the same time if one is already processing: d71fb14
Added non square boardsizes support in bot.js and game.js: 5bade48
Add some dependencies: mocha, nyc (as seen above), split2 cd4e61d, markdownlint, ESLint (in e8dd6bb), etc.
Added /utils to store functions shared in several modules
Replace != and == with !== and === (avoids some unexpected javascript behaviour) in a8ea184
Replace let with const as much as possible, started in: 5114d9c
Do not use var
Check explicitly for undefined for valid values such as 0 and null which are tested false
Disable no-console eslint rule in config.js, in #287
Added /docs/DEV.md
Commit package-lock.json at every new structure update
Many other fixes and tweaks

Contributors for this release: @anoek @roy7 @lemonsqueeze @wonderingabout @windo @Dorus @eatnow @sanderland , as well as all people who use gtp2ogs and give feedback

Patch notes by @wonderingabout