Files
JWeBot/CHANGELOG.md
T
JWeBot Contributors a74147e7f1
check / local-gate (push) Failing after 40s
Release alpha 0.6.6 autochess flow
2026-10-15 17:10:28 +08:00

166 lines
8.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
## alpha 0.6.6.1015
- Rebuild CS Major autochess around multi-message hosting: tournament
welcomes, seed order, draft boards, status panels, training results, match
reports, standings, brackets, and awards are emitted as separate bounded
replies.
- Replace instant full rosters with three draft rounds: round one selects from
a fixed 10-coach pool, rounds two and three draft players, then each team is
completed to five starters, one coach, and three bench slots.
- Run the full event as training camp, BO3 single-round-robin group stage,
one media/sponsor challenge after group round one or two, BO5 semifinals,
BO5 final, and final awards.
- Let readiness advance phases automatically. Group matches wait for all real
players, while knockout matches only wait for real players still in the
current pairing, so eliminated players are not prompted to prepare.
- Add local multi-text reply support across the SDK, official extension
adapter, Edge response contract, and recorder GUI sender while preserving
single-message compatibility.
## 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.