Repository navigation
chore(release): v1.3.0 - #116
Merged
Merged
Conversation
Report de `v1.2.0` (#111) de `main` vers `dev`. L'auto-merge est activé : la PR se fusionne d'elle-même (commit de merge) dès que les checks passent ; tant qu'elle est ouverte, la promotion depuis et vers `dev` est refusée.
Java schemas are generated at build time from the bgs.desc descriptor set, with the outer class names and Java packages patched where files would collide.
BgsClient runs the session sequence on an open BgsChannel: Connect, ticket mint between Connect and Logon, Logon, minimal account subscribe, game account selection, friends subscribe and paged sync, then the presence watch once the self presence push arrives. The friends list and the invitations survive across sessions and each resync reports the diff. Friend actions fail at once outside a ready session and never change the local state on their reply.
A sent invitation that vanished while offline is reported with REASON_GONE_WHILE_OFFLINE (-1) instead of 0, which means accepted. A close requested by the client reports CloseReason.LOCAL instead of IO. BgsSession reads static fields through AccessFlag, which the English conventions check accepts.
…detect games Sessions open only with battlenet.sessions.enabled on the active site, close on standby and reopen when the site becomes active. Presence pushes feed the Battle.net game getter; friend events are republished off the session loop. Replaced sessions and sessions needing an admin are logged and counted.
Version column on the service account; the login coordinator reloads and retries its auth state and storage state writes once when an admin edit raced them.
Admin service and REST endpoints to enrol, re-authenticate, edit and delete the Battle.net bot accounts; the BGS session restarts once an interactive login is ready.
Enrol streamers on the first ready bot with room and have it invite them; move links with the bot's friend events (accept, reject, remove), answer received invitations, mark a bot full on a friend cap failure and announce every change as a battlenet.link.changed channel event. Link lookups by BattleTag or account id now return lists, since nothing makes them unique per bot.
…or full links Send the accept/decline of a received invitation once the event's transaction is committed, accept the invitation of a streamer whose link was rejected, and move a link off a bot found full to the next bot with room (deleting it when none is left).
…d OAuth Secondary OAuth link on the signed-in Twitch user: the userinfo id and BattleTag enroll the account with a bot, no token is kept. Adds the connect endpoints (state, leave) and the Battle.net data on the channel dashboard.
Live-updated from BattleNetLinkChanged, with a case per link status, the OAuth connect button, a disconnect action and mock data for the mock channel page.
Adds the bot pool section to the Keys tab: list, add, 2FA code entry, reauth, enable/disable, lift full, change password and delete. The tab refreshes every 3 s while a login is pending. Includes the mock store.
Polling only runs while the Keys tab is shown, including after an in-flight tick. Each bot row can now rename the bot and change its fill order.
The admin bot list now says whether a login waits for the 2FA code. A bot left CODE_REQUIRED by an automatic login shows a hint to re-authenticate instead of a code field that could only answer 409, and the Keys tab stops polling for it.
Deleting a bot now disables the Battle.net getter of every streamer linked through it, as unenrolling does, and tells their dashboards the link is gone once the bot is deleted.
…k controller Controllers hold no repository (ControllerConventionsTest): the Battle.net link controller now reads the caller like the other user routes.
Battle.net game detection through BGS bot accounts (catapult-bgs module, bot pool admin, Blizzard OAuth link, channel card).
Bindings pages whose bindings have no Twitch category no longer fail with a 500 (shown as a 404).
IgdbService.resolveDetected is the single entry point turning a detected game into its IGDB game: the game mapping's IGDB id first, nothing for an unmapped Battle.net game (never searched by name), else the platform id then the name. The binding, game context, game info, dashboard and DTDD resolutions all go through it.
An admin mapping can name an IGDB game. With no Twitch category typed, the category is deduced from that game (400 when none, unless the mapping is ignored by default). The suggestions applied in the same write now come from the request's IGDB game. Adds the admin IGDB game search endpoint.
Add an IGDB game picker to the game mappings form (search as you type, clearable, emptying the Twitch category it deduces), an IGDB column in the list, the igdb-games proxy route, and the Blizzard presets in the mock.
Suggestions were resolved before the write through the stored mapping row, so an update clearing the IGDB game still applied the old game's CCLs/TWs, and a mapping moved to another game re-resolved the old game's bindings through its IGDB game. Both now resolve the game with its mapping left aside (IgdbService#resolveUnmapped): nothing for Battle.net, else platform id then name.
IGDB ids are parsed as numbers: a non-numeric one made a save with a typed category fail with a 500, and an ignored mapping holding one failed on every detection. It is now refused with a 400 before anything is stored.
The category and 400 errors only mentioned picking a Twitch category: they now also say an IGDB game can be picked instead, its category deduced, and that one must be entered when it has none.
…data The budget fixture's game was never resolved before: IgdbService is mocked and the assembler called methods the mock did not stub, so these routes were measured without their IGDB details and DTDD data. Resolving through resolveDetected now runs those reads.
Detected games resolve through an IGDB game pinned on their mapping; Battle.net games are never searched by name; Blizzard titles seeded.
A Minecraft service account is now shown by its Minecraft username: the label column is dropped (V111), the admin DTO carries a displayName, the device-code create no longer takes a label and the logs name the account by its username.
A Battle.net bot is now shown by its BattleTag, or before its first login by its masked e-mail (b***@example.com), computed in the admin DTO's displayName. The label column is dropped (V112), the create takes only the e-mail and the password, a PATCH ignores a legacy label, and logs and the session metrics name the bot by its account id.
Minecraft and Battle.net service accounts show their real identity instead of a free-text label.
enimaloc
marked this pull request as ready for review
November 13, 2026 22:23
catapult-counterweight Bot
added a commit
that referenced
this pull request
Nov 13, 2026
Report de `v1.3.0` (#116) de `main` vers `dev`. L'auto-merge est activé : la PR se fusionne d'elle-même (commit de merge) dès que les checks passent ; tant qu'elle est ouverte, la promotion depuis et vers `dev` est refusée.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sors cette PR du draft pour publier la release ; elle fusionnera quand les checks seront verts. Pour la programmer, indique ci-dessous une date
AAAA-MM-JJ HH:MM, en heure de Paris.Sortie programmée :
Features
Fixes
Refactoring
Other