• v0.4.0-rc.4 81a4467666

    rb14060 released this 2026-11-01 00:25:03 -04:00 | 1 commits to main since this release

    Kudos Release Candidate 0.4.0 includes the following changes:

    Behavior changes to check before upgrading

    • The welcome bonus now requires a correct answer. A new player gets kudos.newPlayer.amount only if they answered at least one question correctly in the cycle.
    • Permission is checked on the channel the command acts on. init, rollover and config check MANAGE on their target channel, not the channel the command was typed in. retry checks the channel stored with the rollover. Every check fails closed if permissions can't be looked up.
    • kudos config set validates values. A value of the wrong type, out of range, an unknown mode, a bad URL or a bad reason template is now rejected instead of being stored. The ranges were declared in 0.3.0-rc.3 but never enforced.
    • The rollover cooldown uses the database's UTC clock, not the bot host's local time. Before, a host outside UTC could get the wrong cooldown.

    Added

    • kudos.api.extraFields: fixed form fields sent with every API request, written as URL-encoded name=value pairs joined by & (e.g. action=send). They can't override the username, amount, reason or CSRF fields.
    • Transient API failures are retried up to 3 times, with waits of 2, 5 and 10 seconds. Permanent failures and auth failures are not retried.
    • A redirect away from the API URL (usually a bounce to a login page) is treated as an expired session. The rollover stops and tells you which credentials to update and the kudos retry command to run.
    • kudos retry accepts the 8-character rollover ID shown in replies, or any longer prefix of it. A prefix that matches several rollovers is refused.
    • kudos retry refuses a rollover from another network.
    • kudos config reset removes a channel's own value for a setting, so the network, global or default value applies again.
    • kudos config list marks stored values that are invalid, and so ignored, with an INVALID marker.

    Changed

    • Enforced ranges: kudos.newPlayer.amount and kudos.activity.amount 0-2000000 (declared as 0-100000 in 0.3.0-rc.3), kudos.activity.threshold 1-10000, kudos.multiplier.rate 0.0-5000.0 (declared up to 10.0).
    • Each multiplier payout is capped at 2000000, so a large point delta can no longer overflow the payout record and roll back the rollover.
    • Replies show the 8-character rollover ID. Logs keep the full UUID.

    Fixed

    • A bad value stored in the settings table (including NULL) no longer breaks a command. It is ignored, reported once with the value masked, and the next scope or the default is used.
    • Reason templates are validated when read as well as when written. Templates with nested placeholders in a format spec (e.g. {amount:{date_iso}}) are rejected.
    • Unexpected errors in rollover, retry and config produce a short reply and a log entry, without exception text that could contain credentials.
    • Config-change log lines mask sensitive values the same way replies do.

    Docs and tests

    • README and UAT guide match the shipped replies, and document reset, validation rules, backoff, the welcome-bonus rule and the test recipe.
    • The test suite has grown to 232 tests.
    Downloads
  • v0.3.0-rc.3 9ec581afd6

    rb14060 released this 2026-08-30 13:25:17 -04:00 | 116 commits to main since this release

    Kudos Release Candidate 0.3.0 includes the following changes:

    • A rollover now properly re-captures channel baseline to avoid duplicate payouts
    • Payouts in API mode now validate proper API configuration before attempting a rollover
    • !kudos retry now also retries pending payouts, not just failed
    Downloads