Files
JWeBot/CHANGELOG.md
T
2026-10-15 16:08:59 +08:00

7.9 KiB
Raw Blame History

Changelog

alpha 0.6.5.1015

  • Extend the AI test path for CS Major autochess to support two-human games: /自走棋加AI战队 now adds AI 战队 A and AI 战队 B when exactly two real players have registered.
  • Keep the same command for two- and three-human test modes. The tournament engine selects 2 人+2 AI or 3 人+1 AI from the current registration count.
  • Lock the roster after AI teams join, seed the four-team bracket as 1v4 and 2v3, and keep AI teams out of the human preparation order while preserving independent AI operations and story archives.

alpha 0.6.4.1015

  • Add a reviewed 2-8 player CS Major autochess extension with a fixed five-player starting lineup, one always-active coach, an eight-slot bench, and a six-candidate shop that shows complete game data.
  • Ship a fixed 60-player local pool with rifle, sniper, and in-game-leader roles; team and nation synergies; shared copy counts; and deterministic three-copy/two-star and nine-copy/three-star upgrades.
  • Keep all five player slots occupied. Lineup changes are one-for-one swaps, starters cannot be sold directly, and coach upgrades only add a 2%-10% team bonus.
  • Add player-selected firepower, stability, and clutch tactics. Resolve stability over firepower, firepower over clutch, clutch over stability, plus sniper/rifle/leader role counters before bounded +/-2% map variance.
  • Generate the competition format once at tournament start: two players go directly to the final, three play a round robin for two final places, four use seeded 1v4 and 2v3 semifinals, and five to eight play a complete round robin for four semifinal places.
  • Add an explicit three-human-plus-one-AI test mode. The host can add one deterministic local AI as seed four; it buys players, upgrades its coach, swaps its strongest lineup, and selects a counter tactic without an online model.
  • Give Taffy a persistent host state machine: welcome and format briefing, rotating human preparation order, turn enforcement, explicit handoffs, round introductions, matchup calls, overtime narration, advancement, and championship presentation.
  • Run group matches as BO3 and knockout matches as BO5. Simulate every map under MR15, including 15-15 overtime, 19-17/22-20 scores, and separately archived overtime stories.
  • Persist run state, idempotent action responses, structured battles, and every generated story in serialized SQLite transactions. Invalid archives roll back the full action.

alpha 0.6.3.1015

  • Replace instant personal lottery tickets with one persistent multiplayer lottery round per group: start, register/update, status, draw, and cancel.
  • Treat each ticket as three distinct digits from 0-9. Sort digits before storage so 347 and 743 represent the same selection.
  • Accept spaced and compact OCR forms. Ticket stakes are 1-500 coins with a default of 10 when omitted.
  • Return 0%, 50%, 120%, or 300% of the stake for matching zero, one, two, or three drawn digits. All settlement values remain integer coins.
  • Commit entry updates, stake differences, all-player payouts, cancellation refunds, and event replay responses in serialized SQLite transactions.
  • Raise the blackjack stake range to 1-500 coins.
  • Add per-game personal sequence numbers and /游戏记录 (/gamehistory) for prize draws, lottery rounds, and blackjack hands.
  • Prefix game output with the configured player label and game number, such as Jacky #1:...; aliases share the same counter and account.

alpha 0.6.2.1015

  • Bound direct DeepSeek SSE reads to 30 seconds of total wall time in addition to the existing 18-second socket inactivity timeout.
  • Stop reading as soon as the SSE [DONE] marker arrives instead of waiting for the upstream connection to close.
  • Prevent a trickling or unfinished upstream response from occupying both generation workers for about 15 minutes and delaying later final replies.
  • Preserve fast ACK delivery, three-attempt retry behavior, two generation workers, and strict final-reply ordering.
  • Treat /21点 开始 100 as a 100-coin stake and accept OCR forms with missing whitespace, such as /21点开始100 and /blackjackstart100.
  • Keep blackjack play as explicit steps: start and deal first, then hit or stand in a separate command. Combined forms return this workflow without opening a game or deducting funds.
  • Prefix blackjack hands, status and settlement replies with the current group-scoped player's configured display label, such as jacky:....

alpha 0.6.1.1015

  • Add three reviewed plugins: local context summaries for 100/200/300 messages, person and alias lookup, and single-player virtual coin games.
  • Provide corresponding Chinese and English commands, including /context, /people, /person, /wallet, /draw, /lottery, and /blackjack.
  • Grant each group-scoped person 1000 virtual coins once; persist account state, private blackjack decks, timeout/forfeit rules, and win/loss statistics.
  • Commit funds, game state and event replay responses in one SQLite transaction; retries never debit twice, and aliases share the canonical person's account.
  • Reconcile the message image after a two-second idle wait so a missed final XDamage notification does not strand an isolated message; drain buffered Xlib events before waiting on the socket. Preserve visual deduplication and guards.
  • Keep the generated feature list within the sender's 900-character boundary.
  • Document local extractive-summary coverage, OCR identity limitations, game payouts, persistence and rollback behavior.

alpha 0.6.0.1015

  • Replace repository-local and hardcoded deployment values with independent, profile-based configuration packages.
  • Add atomic config generation, activation, import, redacted/private export, schema validation, and migration of legacy environment/context material.
  • Move private person aliases, bot identity, debug sessions, incident reports, telemetry exports, and root-operation archives outside Git with strict permissions.
  • Remove fixed Steam rosters, aliases, display names, and SteamIDs from source.
  • Make /steam discover the configured account's public friend list at runtime.
  • Add /steam时长 游戏名, whitespace-free OCR forms, game-name fuzzy matching, bounded per-account playtime queries, privacy-state accounting, and caching.
  • Add /steam时长 游戏名、玩家名 with exact, unique partial, and fuzzy persona matching while limiting game-library requests to the selected account.
  • Preserve optional group-person-to-SteamID mappings in private profiles, migrate legacy scoped rosters and aliases, and prefer that roster over public friend discovery.
  • Preserve multiline local-command output so /debug remains readable.
  • Remove the visible 好友 wording and add a dedicated Steam progress ACK.
  • Rename built-in plugin ownership from a personal namespace to jwebot.
  • Rename the SDK event field to the generic mention_bot.
  • Add a privacy-safe tracked-file/Git-object scanner that never prints matched values.
  • Add a six-stage new-host bootstrap, an eight-stage coordinated deployment progress display, runtime requirements, and zero-to-running documentation.
  • Add public repository, configuration, SDK, contribution, security, and licensing documentation.
  • Start the public history from a sanitized root after a verified private backup; pre-public operational history remains only in protected local archives.

Pre-Public Milestones

Earlier alpha work established:

  • adaptive OCR and XDamage capture;
  • guarded GUI send with visual confirmation;
  • durable ACK/final delivery ordering;
  • privacy-safe latency telemetry;
  • capability-limited SDK contracts;
  • signed extension artifacts and isolated Host execution;
  • reviewed command ownership and generated adapters;
  • coordinated production backup, health gates, and rollback.

Private host, person, address, account, incident, and deployment details are intentionally omitted from the public changelog.