Commit Graph
1191 Commits
Author SHA1 Message Date
DrSmoothl 81699b839d feat(onebot): expose group member mute expiry
Return the mute expiry timestamp from group member list and detail actions, using zero when no active mute is available.

Keep the public action descriptions and generated MCP catalog aligned, and cover muted, unmuted, and unavailable member responses.

Refs #314
2026-08-05 12:28:47 +08:00
DrSmoothl 634097460c feat(onebot): expose group-wide mute status
Report whether group-wide mute is enabled through the existing group list and group information responses.

Keep standard and extended queries aligned, support explicit refreshes in the SDK, and update the generated action documentation without adding another endpoint.

Preserve established compatibility values, isolate cached non-member results by account, and add coverage across the request, mapping, action, and client layers.

Closes #313
2026-08-04 23:27:58 +08:00
DrSmoothl c6619fda0a feat(onebot): expose system face catalog queries
Add read-only actions for catalog retrieval, per-face lookup, search, and super-face classification. Publish matching SDK methods and generated MCP schemas, including valid face ID zero.
2026-08-04 23:13:51 +08:00
DrSmoothl 8e9a4d878e feat(protocol): complete system face catalog lifecycle
Persist and validate the shared system face catalog, refresh it once when the first account connects, and coalesce concurrent loads. Resolve outgoing face metadata from the catalog so startup races, unknown IDs, and incomplete entries fail before sending.
2026-08-04 23:13:32 +08:00
DrSmoothl 938975dd45 fix(onebot): report uploaded private files as sent messages
Route private file publication through the common send path so successful uploads retain their send receipt and emit a complete self-sent event.

Return action failures when publication fails while preserving upload_file=false as a non-publishing operation.
2026-08-04 18:13:22 +08:00
DrSmoothl 672802b424 fix(group-album): validate image upload inputs
Reject unsupported media with a clear error before processing begins. Existing image upload behavior remains unchanged.

Refs #310
2026-08-04 15:25:23 +08:00
DrSmoothl 185ba8353b fix(message): preserve passive temporary session context
Keep passive replies associated with the correct conversation when the same contact is shared across groups. Active temporary conversations remain unsupported.

Fixes #308
2026-08-04 00:20:56 +08:00
DrSmoothl f572be2561 chore(release): v1.14.0 2026-08-03 19:35:07 +08:00
DrSmoothl c72de4adb6 fix(runtime): improve restored session reliability
Improve compatibility for accounts restored after a restart.

Keep existing accounts working normally while restoring full availability for affected sessions.
2026-08-03 19:28:21 +08:00
DrSmoothl 198f25476f fix(webui): constrain forward message construction
Keep forward nodes out of ordinary message parameters and expose a node-only root builder for forward send and upload actions.

Lock nested forward content to one valid shape, clear stale form values when switching actions, and add regression coverage for the capability rules.
2026-08-03 13:59:39 +08:00
DrSmoothl 4b6237f24b chore(native): refresh bundled runtime files
Update the packaged runtime files from the verified release pipeline.

Align all supported platform bundles with the validated account recovery release.

Refs #305

Refs #307
2026-08-03 13:00:48 +08:00
DrSmoothl 4a0d14ce56 fix(bridge): keep account recovery non-interactive
Keep background account discovery passive and distinguish an identified account from a ready session.

Update the process dialog and regression coverage so recovery waits for authoritative readiness before exposing the account as online.
2026-08-03 12:54:48 +08:00
DrSmoothl dae486a0ad chore(native): update bundled runtime files
Refresh the bundled runtime files with outputs from the verified release pipeline.

Include the supported Linux and Windows builds for the latest startup reliability improvements.

Refs #305

Refs #307
2026-08-03 10:56:31 +08:00
DrSmoothl 8526d0c2c5 fix(bridge): restore active sessions after delayed startup
Allow SnowLuma to discover and restore accounts that were already active before startup.

Avoid reporting sessions ready before they can serve requests, preserve account changes, and keep discovery failures observable.

Add regression coverage for delayed startup, recovery, and process isolation.

Refs #305

Refs #307
2026-08-03 10:49:47 +08:00
DrSmoothl fb4d7716a1 fix(core): restore group remarks in queries
Request and retain the group remark information needed by group list and group detail queries while preserving the existing safeguards for large rosters.

Synchronize confirmed group remark changes with the local identity roster and persistent cache. Remote failures leave local state untouched, and missing roster entries remain observable without creating phantom groups.

Add regression coverage for query mapping, request scope, persistence, failed updates, unknown groups, and closed identity stores.

Fixes #304
2026-08-01 21:11:02 +08:00
DrSmoothl 6372e1479c fix(core): validate file sharing requests
Keep QQ share-code lookups on a bounded and predictable request path while preserving existing successful usage through plain codes and official links.

Reject unsupported inputs early, align operator-facing action documentation, and add regression coverage for valid links, malformed responses, and resource limits.
2026-08-01 18:27:42 +08:00
DrSmoothl 3c97e71650 fix(onebot): strengthen endpoint defaults
Use safer defaults for newly created service endpoints and guide operators toward suitable access credentials without disrupting existing deployments.

Apply the same policy at the save boundary, retain deliberate local-only setups and external client compatibility, and add regression coverage for editing, recovery, and trusted access paths.
2026-08-01 18:12:04 +08:00
DrSmoothl abe4ea80c8 fix(bridge): harden local transport handling
Strengthen validation and buffering for local process communication while preserving the established compatibility boundary.\n\nAdd regression coverage for malformed input, boundary values, fragmented delivery, combined traffic, and normal request behavior.
2026-08-01 17:37:16 +08:00
DrSmoothl ae2e894f14 fix(onebot): protect managed stream storage
Validate managed storage before stream files are created, read, or cleaned, and reject unsafe local directory state without changing the public stream actions.

Keep ordinary existing installations compatible and add regression coverage for startup, runtime replacement, ownership, permissions, and normal transfer behavior.
2026-08-01 17:23:17 +08:00
DrSmoothl 3c772df818 fix(onebot): enforce WebSocket access policy
Apply the configured access policy before server-side WebSocket sessions are established across both listener modes.

Preserve established client compatibility and runtime configuration changes, with regression coverage for accepted and rejected connections.
2026-08-01 17:09:04 +08:00
DrSmoothl 8940f8864b fix(config): protect operator credentials
Keep first-run access details confined to the active process console and remove development credentials from managed application logs.

Treat notification delivery settings as sensitive during backup and restore, preserve private file access across creation and updates, and align the WebUI guidance with the new boundary.
2026-08-01 17:02:39 +08:00
DrSmoothl ea841d929e fix(webui): make listener exposure explicit
Use a local-only default while preserving saved operator choices and keeping broader network access available from the settings panel.

Treat enabled encrypted transport as a startup requirement and present a dismissible notice when remote browser access is not protected.
2026-08-01 16:50:08 +08:00
DrSmoothl e4179ffb47 fix(webui): strengthen public session handling
Bound unauthenticated sign-in requests and require active sessions for browser-served account images.

Keep live updates authenticated without exposing session material in request URLs, and apply conservative response protections without restricting existing WebUI assets.
2026-08-01 16:36:33 +08:00
DrSmoothl 958d17ecc0 feat(webui): add developer settings tools
Expose onboarding replay and page crash testing from a dedicated settings page.\n\nKeep replay actions isolated from persisted consent and password state.
2026-08-01 00:40:44 +08:00
DrSmoothl 8080104311 refactor(webui): refine onboarding layout
Give agreement reading and password setup a calmer responsive layout.\n\nKeep existing motion behavior while aligning actions and improving mobile form ergonomics.
2026-08-01 00:40:09 +08:00
DrSmoothl 659e0bd3d0 fix(friend): verify and synchronize remark updates
Validate the service result before reporting friend remark changes as successful. Rejected, incomplete, or contradictory confirmations now reach callers instead of being reported as completed.

Keep confirmed remarks synchronized in the identity cache and consume cross-client remark updates without exposing a new OneBot event. Local cache failures remain observable without turning an already completed remote change into a retryable failure.

Preserve friend remarks exactly across restarts and add request, response, persistence, receive-pipeline, and action-level regression coverage.

Fixes #303.
2026-07-31 23:21:05 +08:00
DrSmoothl b8ccbdbf18 fix(onebot): project group essence files correctly
Treat type-four group essence entries as files and use the returned file name, identifier, size, and business metadata instead of requiring an optional thumbnail. This restores ordinary file entries without changing pagination, message identifiers, or metadata cache atomicity.

Extend the response model and cover files with and without previews, malformed file fields, and cache safety on projection failures.

Fixes #302.
2026-07-31 22:44:22 +08:00
DrSmoothl 4794f27972 chore(release): v1.13.0 2026-07-31 18:19:05 +08:00
DrSmoothl b81b060138 fix(webui): restore palette cards
Return theme palette selection to the original wrapping preview cards.

Keep segmented controls reserved for compact setting choices.
2026-07-31 18:14:15 +08:00
DrSmoothl a361ee512e feat(webui): unify first-run onboarding
Combine agreement consent and password setup into one ordered first-run flow.

Allow future steps to declare skip policy while honoring unattended deployment requirements.
2026-07-31 17:39:12 +08:00
DrSmoothl 5b68ca5bd3 feat(webui): refine interactive controls
Separate the custom context menu preference and enable it by default.

Bring dropdowns and settings choices into a consistent, responsive interaction language.
2026-07-31 17:38:51 +08:00
DrSmoothl ea39200111 feat(webui): unify dialog feedback
Move confirmations, editors, and help surfaces onto one consistent interaction model.

Preserve accessible focus handling while making destructive and in-progress actions clearer.
2026-07-31 17:38:33 +08:00
DrSmoothl 3c13838867 feat(webui): standardize content loading states
Use consistent delayed placeholders across data-backed console surfaces.
Avoid flashing loading UI for fast local responses while keeping slower transitions stable.
Keep failures visible and prevent gated content from opening on incomplete checks.
2026-07-31 16:56:44 +08:00
DrSmoothl f159b2f41a feat(webui): morph the mobile menu control
Give mobile navigation a clear transition that follows the real drawer state.
Preserve accessible open and close labels.
2026-07-31 16:56:27 +08:00
DrSmoothl f13bd72471 fix(webui): keep preference sync quiet
Keep routine layout, page, and appearance changes free of success notices.
Surface persistence failures without interrupting normal adjustments.
2026-07-31 16:56:12 +08:00
DrSmoothl da07864811 ci: strengthen pull request and release gates 2026-07-31 15:47:07 +08:00
DrSmoothl f6e2410dae fix(onebot): normalize group essence message results
Translate group essence responses into the established OneBot shape instead of exposing the upstream digest payload.

Return validated sender, operator, timestamp, message identifier, and message segment fields for text, face, image, and video entries. Retain the authoritative message metadata in one transaction so returned identifiers can be used by later essence actions without partial cache state.

Reject malformed, cross-group, incomplete, or unknown digest entries, and surface pagination or upstream failures instead of returning truncated success results.

Fixes #300.
2026-07-31 15:40:53 +08:00
DrSmoothl f066f3c89c feat(webui): strengthen password change guidance
Use consistent field labels, validation, and strength guidance in both password-change flows.

Show requirements only while the new-password field is active and surface validation failures clearly.
2026-07-31 15:35:29 +08:00
DrSmoothl b982927b4a feat(webui): improve operation feedback
Keep confirmations in dialogs while showing clear progress and results for long-running actions.

Auto-close completed notices, preserve important outcomes across reloads, and avoid noise from routine edits.
2026-07-31 15:35:03 +08:00
DrSmoothl b099dbe8cd test: unify workspace test and coverage entrypoints 2026-07-31 14:06:10 +08:00
DrSmoothl 9544aa7761 chore(repo): standardize cross-platform development
Make line endings deterministic across macOS, Windows, and Linux while preserving the native checkout format required by Windows launchers.

Pin the tested application runtime and Node type baseline, add a shared startup preflight, and keep independently published packages on their existing compatibility ranges.

Align local scripts, pull request validation, complete package builds, dependency metadata, and contributor documentation around the same Node and pnpm contract. The root test command now covers every tested workspace package while a focused Core command remains available for local iteration.
2026-07-31 13:09:02 +08:00
DrSmoothl 8dd986a565 style(repo): clear workspace lint violations
Align existing managed source with the repository lint rules so the workspace can adopt one reliable root validation command.

This normalizes the private file upload block, removes stale test suppressions, makes an error boundary explicit, and records a stable settings dependency without changing user-facing behavior.

The cleanup creates a deterministic baseline before lint becomes a required pull request gate.
2026-07-31 13:08:33 +08:00
DrSmoothl c3a1970e1c feat(webui): add trace warning and full export
Require explicit acknowledgement whenever operators enable TRACE and keep its active state visible until they restore normal logging.\n\nAdd an authenticated browser download for the complete retained logging snapshot, including runtime context and clear privacy guidance, while preserving the existing filtered-view export and memory-only TRACE boundary.\n\nCover the transition, snapshot, formatting, download, and client contracts with focused regression tests.
2026-07-31 12:40:51 +08:00
DrSmoothl a67614fa09 feat(logging): complete runtime trace diagnostics
Complete byte-level diagnostics for network, upload, runtime lifecycle, authenticated write, and background operation paths.

Preserve streaming behavior, file-storage boundaries, and default log volume while making failures, retries, cancellation, and final outcomes independently diagnosable.

Add focused regression coverage for correlation, partial data, resource context ownership, and terminal-state accuracy.
2026-07-31 11:21:12 +08:00
DrSmoothl 0ed85e7745 fix(onebot): report rejected group kick operations
Treat group member removal as successful only when QQ accepts the operation. Preserve the rejection reason so callers no longer receive a false success when a target cannot be removed.

Apply the same behavior to single-member and batch removal actions, while keeping accepted operations unchanged. Add regression coverage for both successful and rejected responses.

Fixes #298
2026-07-30 21:42:18 +08:00
DrSmoothl 0d14408b6f feat(protocol): add byte-complete packet tracing
Capture complete packet request, reply, and push payloads during temporary TRACE sessions while preserving the existing non-persistent logging boundary.

Correlate transport, parser, enrichment, drop, dispatch, timeout, and terminal outcomes with their real identifiers so exported logs can explain packet failures without relying on user descriptions.

Lock byte completeness, lazy disabled behavior, concurrency, context propagation, and truthful terminal outcomes with regression coverage.
2026-07-30 20:11:02 +08:00
DrSmoothl f9c4063fc5 feat(onebot): complete trace operation chains
Make short TRACE captures independently explain OneBot action and event lifecycles from complete input through a truthful terminal conclusion. Preserve request correlation across asynchronous work while keeping disabled TRACE paths allocation-free and lazy.

Cover shutdown rejection, stream cancellation, event conversion and suppression, reporter invocation settlement, and HTTP delivery outcomes without changing established transport or observer behavior. Add focused regression coverage for lifecycle uniqueness, context reuse, disconnect handling, and quiesce ingress boundaries.
2026-07-30 17:13:40 +08:00
DrSmoothl b9104f0a5b feat(logging): establish trace diagnostics contract
Make short-lived TRACE sessions complete and correlatable without adding a persistent trace channel or changing the existing file-log safety boundary.

Protect ordinary console, subscriber, and file logs from authentication material while preserving the one documented first-start credential notice. Keep action breadcrumbs useful through bounded summaries and a narrow diagnostic name for the emoji-like pagination offset.

Lock the contract with regressions for byte-complete rendering, lazy execution, request-context reuse, credential redaction, unredacted TRACE data, and non-persistence of TRACE records.
2026-07-30 12:07:32 +08:00
DrSmoothl 1d65623475 docs(mcp): refresh contact action metadata
Publish the group remark response field and the friend category update action to MCP clients.

Include the supported selection rules, result descriptions, and updated action totals so generated tool guidance stays aligned with the public OneBot surface.

References #294
References #297
2026-07-30 10:37:40 +08:00
DrSmoothl f0ff8da2fa feat(onebot): support moving friends between categories
Add the set_friends_category action with either an existing category ID or an exact unique category name.

Validate the current friend and category roster before applying a change, reject missing or ambiguous targets, and surface failed updates instead of reporting false success. Expose the action through the SDK types and cover validation, successful updates, repeat requests, service rejection, and registry completeness.

Closes #297
2026-07-30 10:37:16 +08:00