214 Commits
Author SHA1 Message Date
DrSmoothl 744f25fd9b fix(protocol): integrate styled group card normalization
Keep the full control-character range limited to decoded styled-card text. Preserve member-level error isolation and cover whitespace, Unicode text, cached output, and restart behavior.

Refs #680
2026-11-09 14:57:41 +08:00
DrSmoothl 22bde5d949 fix(contacts): keep member lists available with unreadable cards
Preserve known member cards across refreshes and restarts, and report decoding failures without dropping the roster.

Refs #680
2026-11-09 14:57:11 +08:00
Auceptin ca61e6039f fix(protocol): strip control characters from styled group card text (#680) (#681) 2026-11-09 13:59:58 +08:00
DrSmoothl 9df7b7524b fix(onebot): preserve voice transcription metadata
Refs #607
2026-11-08 17:33:46 +08:00
DrSmoothl 6c8866b108 fix(protocol): improve upload recovery and time limits
Apply configurable idle and total transfer deadlines, cover supplied upload candidates, and retain recent endpoint outcomes per account and upload type. Preserve failed action responses and resource cleanup.

Refs #637
2026-11-07 14:10:56 +08:00
DrSmoothl f2ade5603f fix(onebot): preserve images in message history
Refs #659
2026-11-07 13:31:14 +08:00
DrSmoothl 9edc255a02 fix(onebot): distinguish group invitation identities
Expose joining members, inviters and request operators separately.
Preserve existing notice fields and report unavailable invitation identities explicitly.

Refs #643
2026-11-06 23:37:00 +08:00
DrSmoothl 43b63e9a75 fix(onebot): restore group join request delivery
Refs #658
2026-11-06 22:49:52 +08:00
DrSmoothl b0612d8d12 fix(onebot): identify QQ automatic replies in private messages
Refs #663
2026-11-06 22:49:52 +08:00
DrSmoothl ae1ec3be0e fix(protocol): decode styled group member cards
Use the display text for group messages and member lookups. Refresh unreadable cached cards on demand.

Refs #646
2026-11-04 23:23:44 +08:00
DrSmoothl 45c3a6841a feat(onebot): expose public contact profiles
Refs #615
2026-11-02 08:06:27 +08:00
DrSmoothl 2b63f375fc fix(onebot): handle non-friend group invitations
Refs #636
2026-11-02 07:55:40 +08:00
DrSmoothl c15ecd0402 feat(qzone): add complete feed lookup by tid
Refs #633
2026-11-01 21:31:52 +08:00
DrSmoothl f65880b164 fix(protocol): handle null Qzone share errors
Refs #625
2026-11-01 20:42:20 +08:00
KazusaUwU bd40ac3522 feat(protocol): make highway media download limits configurable (#632)
Bound the two hardcoded limits of the shared HTTP media download engine
(`loadBinarySource` / `stageSourceToDisk`) with deployment-wide environment
settings, following the existing `positiveIntEnv` convention:

- SNOWLUMA_HTTP_DOWNLOAD_TIMEOUT_MS (default 60000): one download attempt.
- SNOWLUMA_MAX_BINARY_DOWNLOAD_BYTES (default 1073741824): the implicit cap on
  a binary source buffered in memory.

Both defaults are unchanged, so an unconfigured deployment behaves exactly as
before, and unusable values are logged and ignored. Callers that pass their own
ceiling keep it: group/private files and flash transfer still use 4 GiB, inline
`base64://` / `data:` flash sources keep the 1 GiB buffered-load ceiling, and
video upload has its own limit. Documented in HIGHWAY_UPLOADS.md.
2026-11-01 20:29:01 +08:00
DrSmoothl 93290e4d0c fix(protocol): allow clearing group member cards
Refs #620
2026-10-31 23:25:45 +08:00
DrSmoothl 299fa85a74 fix(onebot): match group invitations to the correct request
Report distinct invitations separately and approve only the request that belongs to the account and inviter. Reject ambiguous approvals and resolve the sender of invitations from outside the contact list.

Refs #612
2026-10-31 18:28:05 +08:00
DrSmoothl d8763c98db fix(protocol): validate profile birthdays against the calendar
Omit invalid birthdays and preserve valid leap days when the birth year is private.

Refs #594
2026-10-31 18:28:05 +08:00
DrSmoothl eb119ecb92 feat(qzone): add homepage feeds and share cards
Read accessible Qzone homepage posts and generate their original share cards. Return sharing notices so callers can confirm visibility before sending through the existing message actions.

Include SDK contracts, action discovery, documentation, and regression coverage.

Fixes #609
2026-10-31 18:28:05 +08:00
DrSmoothl 304f3e772f fix(core): preserve private history paging failures
Split larger private history reads into bounded pages and honor the end of history. Surface rejected or stalled pages instead of returning misleading empty or partial results.

Fixes #605
2026-10-31 18:28:05 +08:00
DrSmoothl 26639ffef7 fix(protocol): restore unidirectional friend lookup
Read the unidirectional friend list correctly and preserve service errors instead of returning an empty list for rejected requests.

Fixes #608
2026-10-31 18:28:05 +08:00
DrSmoothl bd14b0a98e fix(protocol): report rejected card deliveries
Surface delivery failures instead of reporting success for rejected image and text cards. Reject responses without a delivery result.

Fixes #611
2026-10-31 18:28:05 +08:00
星陨 bb4443b12d fix(protocol): report incoming group invitations (#612)
Surface group invitations when the inviter is outside the friend list so clients can respond to them.
2026-10-31 18:01:28 +08:00
C₂₂H₂₅NO₆ 947af4b22c feat(onebot): expose birthdays in stranger profiles (#594)
Include available birthday information in stranger profiles and preserve hidden birth years.
2026-10-31 18:01:16 +08:00
DrSmoothl 8b8a9df894 feat(onebot): read administrator verification message preference
Include verification message reception in administrator permission results. Preserve unavailable states and surface failed reads.

Update SDK contracts, action metadata, documentation and isolated behavior coverage.
2026-10-27 15:13:17 +08:00
DrSmoothl d30cd1ba53 feat(protocol): support per-administrator group permissions
Add permission queries and updates for individual group administrators.

Keep permission changes explicit and surface rejected or unconfirmed updates.
2026-10-27 14:58:47 +08:00
DrSmoothl 05f18614c1 fix(onebot): restore nested chat record forwarding
Restore expansion and cross-chat forwarding for nested chat records that use preview-only cards.

Return an error when nested content cannot be retrieved instead of producing an unusable message.

Refs #589
2026-10-27 09:23:48 +08:00
Qiao 2f1aadffbe feat(onebot): add public Qzone feeds and interactions (#587)
Add public Qzone discovery, pagination, and interactions with SDK and MCP support.
2026-10-25 23:20:14 +08:00
Qiao 4d55608b56 feat(onebot): add Qzone profile read and update actions (#586)
Add actions to read a space name and description and update the current account profile. Preserve omitted fields and support explicit empty values, with matching SDK types, MCP discovery, documentation, and tests.
2026-10-25 19:48:46 +08:00
DrSmoothl 9bf4b9107b feat(onebot): add structured Qzone feeds and cursor pagination
Expose readable feed content, media and available statistics while preserving existing result fields and callers. Carry continuation state across pages and report invalid or stalled pagination explicitly.
2026-10-24 22:16:06 +08:00
DrSmoothl d95d3bf761 feat(onebot): support replies to Qzone comments
Add threaded text replies while preserving existing comments and image
uploads. Include parent references and update SDK and MCP contracts.
Reject incomplete targets and unsupported reply images before sending.

Fixes #573
2026-10-24 21:54:38 +08:00
DrSmoothl bde7f2805d fix: handle delayed client message availability
Keep self-sent private messages available when their history becomes visible shortly after sending. Preserve account isolation while completing the report.

Refs #528
2026-10-21 17:25:13 +08:00
DrSmoothl 491b531841 feat: support client private-message reporting
Handle confirmed private messages sent from the client and preserve account isolation when sessions change. Surface unavailable messages without reporting incomplete content.

Refs #528.
2026-10-21 16:59:26 +08:00
DrSmoothlandwanqing-last 9d8df59370 fix(protocol): decode XML forward identities from root attributes
Recognize forward cards with an omitted protocol service ID from the root msg attributes. Decode attribute references once so resource IDs and nested lookup keys survive XML escaping, while preserving ordinary XML when the root declaration is ambiguous.

Refs #547, #556, #558.

Co-authored-by: wanqing-last <2917149421@qq.com>
2026-10-20 13:49:53 +08:00
手瓜一十雪 e5cfec01bd refactor: replace polling with event-driven updates
Trigger account detection and group requests from observed changes. Remove native stage log forwarding and its lifecycle state, and simplify the README.
2026-10-19 09:56:20 +08:00
手瓜一十雪 bdf224cbc9 fix(protocol): preserve nested XML forward lookup keys 2026-10-18 18:59:22 +08:00
手瓜一十雪 c15b2d857d chore: prepare v2.0.0 release 2026-10-18 13:58:08 +08:00
手瓜一十雪 95a2d0d257 fix(protocol): isolate catalog lookups and event subscriptions 2026-10-18 13:31:10 +08:00
手瓜一十雪 4e2b6b1200 refactor: use native async discovery and simplify shared state 2026-10-18 12:57:18 +08:00
手瓜一十雪 4c83cc826e fix(runtime): update ffmpeg addon for SILK duration support
Refresh the four bundled platform binaries from NapNeko/ffmpegAddon commit 9ac944793ffdc2a1c5c55f16e24cb32185feb4ec, successful build 38025527136. Record artifact provenance and binary checksums.

Add native regression coverage for standard SILK, QQ NTSILK, extensionless inputs, and truncated packets.
2026-10-13 15:31:18 +08:00
DrSmoothl f85b28d23c feat(onebot): add group share links
Retrieve group invitation links with compatible request defaults and explicit error reporting. Add a typed SDK helper and discoverable action documentation.

Fixes #521
2026-10-13 10:34:41 +08:00
MliKiowa c7428363cb feat: add async SQLite on Node 24 and improve messaging diagnostics (#520)
Move database work off the main thread on Node.js 24 and improve message handling and runtime diagnostics.

Preserve migration, restart, and concurrency coverage with the async SQLite driver.
2026-10-13 10:12:47 +08:00
DrSmoothl 7c0519f75f lint 2026-10-12 15:43:34 +08:00
DrSmoothl d86e0fc7b5 fix(protocol): preserve sent media for message history
Keep media sent by the bot available for later history and forwarding,
including messages without a server echo.

Fixes #462
2026-10-04 14:00:03 +08:00
DrSmoothl 3068d3ef60 feat(onebot): expose extended account profile information
Add account identifiers, compatible level names, available registration and membership details, and documented account age for group members. Keep unavailable values absent and refresh the action documentation.

Fixes #496
2026-10-04 13:04:42 +08:00
DrSmoothl efb32ed069 fix(protocol): resolve animation metadata for unlisted faces
Query missing system faces individually and validate their metadata before sending. Share concurrent lookups and surface lookup failures.

Fixes #488
2026-10-04 12:53:48 +08:00
DrSmoothl 93b5c1b4bf feat(messages): support animated face results
Allow selecting animated face results and preserve received results in messages and history. Keep the default selection when no result is supplied.

Fixes #487
2026-09-27 13:44:48 +08:00
DrSmoothl 797a4d754c fix(protocol): restore filtered friend request approvals
Correct approval handling for filtered friend requests and preserve clear failures when an account cannot be resolved or the request is rejected.

Add regression coverage for separate account identities, approval errors, and existing list and rejection behavior.

Fixes #460
2026-09-26 16:59:52 +08:00
DrSmoothl 1914880df4 fix(protocol): support image replies in existing temp sessions
Allow image replies in existing group temporary conversations while preserving passive-only restrictions. Missing, expired, or mismatched sessions remain rejected before media processing, and sending never creates or refreshes a session.

Fixes #471
2026-09-26 16:30:54 +08:00
DrSmoothl 0cc06b6b5e feat(onebot): send saved custom faces with sticker presentation
Resolve saved stickers by resource ID or MD5, support group and private destinations with optional replies, and preserve presentation in upload and message metadata.

Fixes #468
2026-09-26 16:19:45 +08:00