381 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 f2ea3354f8 chore(release): v2.4.2 2026-11-07 19:49:06 +08:00
DrSmoothl 8bea681aa2 fix(core): handle group file storage limits
Retry eligible storage failures as temporary files and preserve their storage type for later use. Reject incompatible mixed content before chat publication.

Refs #644
2026-11-07 15:14:55 +08:00
DrSmoothl 84f4cde85e chore(release): v2.4.1 2026-11-07 14:20:00 +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 e44e4ced17 chore(release): v2.4.0 2026-11-03 11:07:44 +08:00
DrSmoothl e9faec0e28 chore(release): v2.3.4 2026-11-02 09:09:06 +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 60733aacab chore(release): v2.3.3 2026-11-01 14:05:51 +08:00
DrSmoothl 7882081bdb chore(release): v2.3.2 2026-11-01 01:04:27 +08:00
DrSmoothl c120b0fb97 chore(release): v2.3.1 2026-10-31 23:41:23 +08:00
DrSmoothl 93290e4d0c fix(protocol): allow clearing group member cards
Refs #620
2026-10-31 23:25:45 +08:00
DrSmoothl 11d42b4e98 chore(release): v2.3.0 2026-10-31 20:29:11 +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 a557bf72e7 fix(protocol): preserve private voice playback on older clients
Keep private voice messages playable on older clients while retaining the existing voice message for current clients. Cover the reported upload response in a regression test.

Refs #614
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 8ffd314260 chore(release): v2.2.1 2026-10-27 17:28:27 +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
DrSmoothl 3acd3cd28b fix: resolve dependency security alerts 2026-10-26 10:43:32 +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 5c9328206f feat: add configurable parallel video uploads
Allow up to four video upload connections while keeping one connection as the default. Preserve existing messaging interfaces and add configuration controls, reliable failure handling, and upload diagnostics.

Closes #569
2026-10-24 22:58:46 +08:00
DrSmoothl 3bd74acb60 chore(release): v2.2.0 2026-10-24 22:21:43 +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
手瓜一十雪 1172a6bd3d feat 2026-10-24 17:28:58 +08:00
DrSmoothl f8cb15c27b chore(release): v2.1.1 2026-10-22 01:02:02 +08:00
DrSmoothl c5464e48d1 fix(security): update runtime baseline and vulnerable dependencies
Require patched Node.js releases and refresh affected application and build dependencies.

Align installation requirements, startup checks, and release workflows with the security baseline.
2026-10-22 01:00:13 +08:00
DrSmoothl 8fc68c0ec3 chore(release): v2.1.0 2026-10-21 20:28:15 +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