Files
JWeBot/CHANGELOG.md
T
2026-10-15 13:57:32 +08:00

103 lines
5.5 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.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.