Commit Graph
1284 Commits
Author SHA1 Message Date
DrSmoothl f65880b164 fix(protocol): handle null Qzone share errors
Refs #625
2026-11-01 20:42:20 +08:00
KazusaUwU 8d9f44b6b0 feat(onebot): make the websocket frame cap configurable and diagnosable (#631)
- expose DEFAULT_MAX_PAYLOAD_BYTES; an inbound frame over the cap now reports its
  declared byte size, message type and the effective limit, recovered by walking
  the buffered frame stream so the number is right when a chunk carries several
  frames, the oversized header spans chunks, or control frames are interleaved;
  when the walk cannot reach a verdict the error names the cap without a size
- truncate close reasons to the RFC 6455 control-frame room on a UTF-8 boundary
  (an over-long reason previously produced an invalid control frame)
- add optional maxPayloadBytes (default 100 MiB unchanged) to the three adapters
  that read WebSocket frames: wsServers, wsClients and httpServers with
  enableWebSocket. httpClients rejects the field because it has no WebSocket
  transport, and the value is part of the binding signature so a change rebinds
  the transport instead of being saved without taking effect
- keep the existing 1009 log lines and append the actionable hint instead of
  replacing the template
- WebUI field (including httpServers once the embedded listener is on) and README
  docs for the 100 MiB => ~445 s (7:26) inline PCM consequence
2026-11-01 20:29:16 +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 v2.3.3 2026-11-01 14:05:51 +08:00
DrSmoothl a2ce3b2c19 fix(runtime): improve Linux startup compatibility 2026-11-01 13:58:15 +08:00
DrSmoothl 7882081bdb chore(release): v2.3.2 v2.3.2 2026-11-01 01:04:27 +08:00
DrSmoothl f1ef07544d fix(runtime): improve Linux client startup and message reception
Refs #623
2026-11-01 01:02:44 +08:00
DrSmoothl c120b0fb97 chore(release): v2.3.1 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 fa4870bdca fix(runtime): improve Windows message reception 2026-10-31 23:03:23 +08:00
DrSmoothl b126b5c166 fix(runtime): prevent Windows client crashes during startup
Refs #619
2026-10-31 22:02:31 +08:00
DrSmoothl 11d42b4e98 chore(release): v2.3.0 v2.3.0 2026-10-31 20:29:11 +08:00
DrSmoothl 8b3f11a22b chore(runtime): refresh Windows and Linux binaries 2026-10-31 20:19:14 +08:00
DrSmoothl 8ecf41ccb7 fix(bridge): preserve QQ runtime failures across session updates
Surface connection failures immediately to waiting requests and keep the original error visible until the session reconnects. Ignore late login updates from the failed connection.
2026-10-31 18:28:05 +08:00
DrSmoothl fcbb2661d1 fix(bridge): include the reason code for unavailable private message receipts
Show the reported reason when private message receipts are unavailable. Keep the existing warning when the connection supplies no reason.
2026-10-31 18:28:05 +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
DrSmoothl 77d883f235 chore(native): update native artifacts
Update the bundled native artifacts.
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 6b8362e049 chore(ci): clarify issue submission guidance for AI agents
Ask agents to stop creating issues through the CLI and tell users to submit manually through the GitHub web form.
2026-10-27 23:08:46 +08:00
DrSmoothl 8ffd314260 chore(release): v2.2.1 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 bc3930a2ce feat(onebot): expose administrator permission actions
Expose administrator permission controls through OneBot, the SDK, and MCP.

Document limits and unknown states, and validate public request and result contracts.
2026-10-27 14:58:54 +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
DrSmoothl dafe2082f1 fix(onebot): preserve public Qzone input semantics
Keep comment and reply text unchanged and support structured input in the debug console. Report malformed input before sending a request.

Refs #587
2026-10-25 23:26:55 +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
DrSmoothl 1ff2c08765 test(proton): stabilize UTF-8 regression checks
Reduce assertion overhead in existing codec tests while preserving complete byte comparisons and boundary coverage. Keep existing test deadlines and runtime behavior unchanged.
2026-10-25 19:51:44 +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 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
叫我最右君 dc2d60e57f Fix spacing of Markdown syntax in release info. (#567) 2026-10-24 21:28:39 +08:00
手瓜一十雪 1172a6bd3d feat 2026-10-24 17:28:58 +08:00
DrSmoothl 8e28bca775 feat(mcp): add compatible protocol workflows and execution services 2026-10-23 21:19:37 +08:00
DrSmoothl 9e7da154ff test(bridge): isolate account watcher tests from platform startup races
Use controlled filesystem events and timers for watcher behavior tests. Preserve native filesystem integration on Windows and Linux, matching account discovery support, and cover the macOS production no-op.
2026-10-23 20:12:49 +08:00
DrSmoothl fa5efcd310 feat(sdk): add media sends, quoted replies, and event waits
Add local media upload-and-send helpers with an optional Node file source
and stage-aware errors. Add explicit quoted replies and cancellable event
waits while preserving existing methods and handler contracts.

Propagate group-file publication failures instead of reporting success.
Cover cancellation, cleanup, signed message IDs, package exports, consumer
types, and real HTTP/WebSocket upload-to-send integration.

Validation: pnpm run ci (6231 tests passed, 9 skipped); SDK package contents
verified with npm pack --dry-run --ignore-scripts.
2026-10-23 19:45:47 +08:00
DrSmoothl 2d659b0ceb feat(mcp): complete action results and invocation examples
Document result shapes and practical calls for all built-in actions,
including prerequisites, streaming workflows and compatibility limits.

Preserve existing interfaces and execution behavior, and verify the
catalog against action validation and representative responses.
2026-10-23 15:45:07 +08:00
DrSmoothl 34a73084e0 feat(mcp): improve agent discovery and execution feedback
Add structured results, optional keyword search and pagination, and runtime information with explicit connection checks. Preserve existing text responses and execution permissions.

Support request cancellation and transfer progress. Verify compatibility with the full CI suite and isolated MCP and HTTP integration tests.
2026-10-23 15:14:18 +08:00
DrSmoothl 9b5ce9b502 feat(sdk): support streaming file transfers 2026-10-23 13:43:35 +08:00
DrSmoothl 166fcd8613 feat(sdk): complete action parameter and result types 2026-10-23 13:23:19 +08:00
DrSmoothl b997de44a2 fix(sdk): restore native ESM imports and action exports 2026-10-23 13:04:33 +08:00