100 Commits
Author SHA1 Message Date
DrSmoothl f2ea3354f8 chore(release): v2.4.2 2026-11-07 19:49:06 +08:00
DrSmoothl efcbf988b2 fix(runtime): improve ARM64 compatibility 2026-11-07 19:38:35 +08:00
DrSmoothl a341fa4b15 docs(readme): add Docker pulls badge 2026-11-07 17:22:46 +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 87f7bd8c54 fix(websocket): settle failed sends and enforce SDK request deadlines
Settle queued sends once when a connection fails or closes before opening,
and reject further sends while preserving the original failure.

Include connection waits in SDK request deadlines without closing shared
connections or sending expired actions after a late connection.

Refs #665
Refs #666
2026-11-07 12:57:25 +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 7425cfae20 fix(bridge): restore Windows account readiness
Keep account confirmation active until a valid login is ready and clear stale bindings when readiness is lost.

Update Windows components and cover login recovery.

Refs #638
2026-11-06 22:49:52 +08:00
DrSmoothl 1b80487119 test(common): pin logger benchmark file level
Refs #651
2026-11-06 22:49:52 +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 b6b433af98 fix(common): release retained cache and log memory
Dispose contact caches with account sessions and prevent late loads from restoring timers. Release discarded log content while preserving visible text.

Refs #651
2026-11-04 23:23:44 +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 f452c657ed fix(webui): tint default surfaces with the active accent 2026-11-03 11:03:29 +08:00
DrSmoothl 1cd838e7a1 feat(webui): adopt lavender mascot branding 2026-11-03 10:41:11 +08:00
DrSmoothl a8f460499b fix(deps): update vulnerable transitive dependencies 2026-11-03 09:41:20 +08:00
DrSmoothl a977228a09 docs(readme): introduce the SnowLuma mascot 2026-11-03 09:39:21 +08:00
DrSmoothl e9faec0e28 chore(release): v2.3.4 2026-11-02 09:09:06 +08:00
DrSmoothl 4a10f38743 fix(onebot): resolve private reply targets consistently
Refs #618
2026-11-02 08:47:26 +08:00
DrSmoothl a1688a33b0 fix(bridge): detect initial connection timeouts
Keep connection timeouts recoverable through retry or unload.

Refs #578
2026-11-02 08:25:15 +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 0fa912a32e feat(sdk): accept reverse WebSocket connections
Refs #617
2026-11-01 23:26:50 +08:00
DrSmoothl 5f1700fc1b feat(onebot): add HTTP event streaming
Refs #593
2026-11-01 23:15:51 +08:00
DrSmoothl 54038c775a fix(runtime): report private messages sent from the client
Refs #603
2026-11-01 23:01:38 +08:00
DrSmoothl c15ecd0402 feat(qzone): add complete feed lookup by tid
Refs #633
2026-11-01 21:31:52 +08:00
DrSmoothl f79187f36a ci: enforce dev targets and issue references for pull requests
Explain policy violations before closing pull requests, validate linked issues, and cover the guard with isolated tests. Align contributor guidance and keep feature details out of the root README.
2026-11-01 21:09:48 +08:00
DrSmoothl 24ec8a7eba docs(readme): remove the media size limitations section 2026-11-01 20:47:25 +08:00
DrSmoothl 3773106425 fix(onebot): validate payload limits and correct frame diagnostics
Reject invalid payload limits consistently in configuration files, restores, and API writes. Preserve pending frame bytes when reporting oversized messages.

Refs #627
2026-11-01 20:42:20 +08:00
DrSmoothl f65880b164 fix(protocol): handle null Qzone share errors
Refs #625
2026-11-01 20:42:20 +08:00
DrSmoothl 60733aacab chore(release): 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 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 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 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
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 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
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
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
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
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 b4ece8671b fix: improve client self-message reporting
Update desktop support for client-sent private and group messages.

Refs #528
2026-10-21 17:42:56 +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
DrSmoothl 617e7581dd fix: avoid duplicate private self-message reports
Keep repeated confirmations of the same private message from producing duplicate events while preserving distinct messages and stored content.

Refs #528.
2026-10-21 16:59:19 +08:00
DrSmoothl 27120f884a fix: resolve issue #559
Fixes #559.
2026-10-21 15:17:43 +08:00
DrSmoothl 3a4c1eeea2 fix(onebot): deduplicate client group self-message reports
Prevent repeated reports for client-originated group messages while preserving distinct sends and existing private-message behavior.

Cover opt-in reporting, message formats, account isolation, and repeated delivery.

Refs #528
2026-10-21 14:43:37 +08:00
DrSmoothl 5cd4ae61dd feat(webui): add opt-in MaiBot appearance overlay 2026-10-21 13:07:44 +08:00
DrSmoothl 28f64113e7 test(core): resolve startup fixture paths through symlinks
Canonicalize temporary fixture directories before matching build inputs and locating staged updates. Compare the child working directory with its real path so startup tests also pass when the default temporary directory is a symlink.
2026-10-20 14:24:23 +08:00
DrSmoothlandwanqing-last c537311ed1 fix(core): bound forward caches with nested result retention
Keep at most 512 outer results per bridge and retain their bundled nested results as one cache group. Reads refresh the whole group, shared inner results survive while another containing group remains cached, and late sender enrichment cannot resurrect evicted entries.

Collect uploaded and downloaded nested results before publishing a complete cache group. Cover eviction, account isolation, nested retrieval, shared ownership and asynchronous enrichment through the forward API.

Refs #546, #555, #557.

Co-authored-by: wanqing-last <2917149421@qq.com>
2026-10-20 13:50:21 +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
DrSmoothl 76846f40b1 fix(onebot): resolve voice transcription for signed message IDs
Allow voice transcription results to complete for messages with negative IDs while preserving existing message identities and account isolation.

Report unmatched transcription results accurately and document the signed message ID contract.

Fixes #554
2026-10-20 13:27:40 +08:00
DrSmoothl 79522d949f fix(protocol): recover highway uploads after missing responses
Try another available upload endpoint when a transfer stops responding,
while preserving confirmed progress and the current upload session.
Report unconfirmed transfers clearly and cover recovery and publication
boundaries with regression tests.

Fixes #552
2026-10-20 08:47:48 +08:00
DrSmoothl 5150d83403 fix(webui): preserve reverse proxy authentication
Prevent login loops when the WebUI is protected by HTTP authentication
at a reverse proxy. Apply the fix to settings, uploads, and live streams
while retaining compatibility with existing WebUI clients.

Fixes #523
2026-10-14 08:13:50 +08:00
DrSmoothl d6dd748beb docs(webui): clarify account detection reliability
Explain that account detection is not guaranteed to succeed and its results are for reference.
2026-10-13 16:42:28 +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
DrSmoothl 20f48d11ec fix(core): accept large integers in album responses
Allow valid album responses with large integer values to reach the comment request and add regression coverage.

Refs #508
2026-10-13 09:48:00 +08:00
DrSmoothl 7c0519f75f lint 2026-10-12 15:43:34 +08:00
DrSmoothl effeb66554 feat(bridge): connect when a pipe is already up after load fails
A failed load used to stay in the error state. If the pipe is already
listening, connect instead, and keep retrying that case on later checks.
2026-10-10 10:44:15 +08:00
DrSmoothl 7496479782 feat(core): record runtime status while waiting to sign in
Refresh the bundled runtime binaries.
2026-10-09 15:30:35 +08:00
DrSmoothl 6ceb2a3900 feat(core): include runtime status in the log view
Refresh the bundled runtime binaries.
2026-10-09 11:13:25 +08:00
DrSmoothl 87527cb764 chore(release): v1.14.22 2026-10-07 11:04:07 +08:00
DrSmoothl 44679bebd4 fix(protocol): keep the highway upload address
The session response address was discarded, so uploads used the default host.

Fixes #513
2026-10-06 15:20:24 +08:00
DrSmoothl f95d247e73 feat(runtime): override deploy settings from the environment
SNOWLUMA_ variables can set the factory OneBot listen ports, WebUI TLS,
packet and hook timeouts, the stream directory, file download timeout,
and notification HTTP timeout. The values apply in memory and are not
written back to saved config.
2026-10-06 00:48:34 +08:00