DrSmoothl
805665a6d6
feat(onebot): support choosing animated system faces
...
Send available face animations by default and accept large=false for the small representation. Preserve the sticker business type when encoding animated faces.
Fixes #483
2026-09-26 16:06:52 +08:00
DrSmoothl
953b18b5cb
fix(protocol): avoid duplicate text for animated faces
...
Recognize animated face compatibility labels consistently while preserving user-authored text.
Fixes #484
2026-09-26 15:59:07 +08:00
DrSmoothl
1934e4e7f7
feat(onebot): include text alongside received markdown
...
Preserve Markdown messages while making their content available to integrations that read text segments.
Fixes #474
2026-09-26 15:57:28 +08:00
DrSmoothl
726fbc6c67
fix(webui): hide sidebar pin controls in menu mode
...
Keep sidebar pinning available in desktop navigation and hide its controls when navigation uses the menu.
Fixes #485
2026-09-26 15:54:38 +08:00
DrSmoothl
0591b160fb
ci: migrate npm publishing to trusted OIDC
2026-09-22 09:43:07 +08:00
DrSmoothl
fe245d84bf
chore(release): v1.14.19
v1.14.19
2026-09-21 16:39:11 +08:00
DrSmoothl
d0a1b0e804
fix(webui): let the dashboard page scroll while the pointer is over a card
...
Every tile was a nested scrollport that swallowed the wheel even when its contents already fit. Clip the card instead and leave inner lists to scroll themselves.
2026-09-21 16:27:49 +08:00
DrSmoothl
51c0ffab74
fix(webui): keep the first-run agreement panel from collapsing
...
Safari layout work dropped the page height that the fill wizard needs, so the agreement card shrank to a line. Restore a full-viewport column so the documents can show.
2026-09-21 16:18:18 +08:00
DrSmoothl
3e581780b3
chore(release): v1.14.18
v1.14.18
2026-09-21 14:25:21 +08:00
DrSmoothl
173e21d80d
fix(webui): drop an unused appearance-migration assignment
...
The first assignment was overwritten on every path, which the linter rejected.
2026-09-21 14:23:46 +08:00
DrSmoothl
5ac74ac5f5
test(onebot): format the oversize image body regression
...
The HTTP image-size regression failed the indent check. Keep the same coverage with the project formatter.
2026-09-21 14:23:46 +08:00
DrSmoothl
1dffb22d05
fix(core): write album comments with the official header fields
...
The comment packet header only needs the feed time and id. Extra locator fields from the feed cell are not part of the official write.
Refs #436
2026-09-21 14:13:16 +08:00
DrSmoothl
dad2b0c5a7
fix(onebot): keep private quote ids aligned with send receipts
...
Quotes of bot-sent private messages could still resolve to a different id when the quote time was not an exact match. Resolve those quotes by conversation sequence or a nearby unique send time.
Fixes #465
2026-09-21 14:13:11 +08:00
Hypercubies
b375e6f66e
fix(onebot): accept image request bodies and return explicit size errors
...
HTTP POST used a body limit too small for ordinary base64 images and dropped the connection when it was exceeded.
Raise the limit and return a structured size error without destroying the socket.
2026-09-21 14:07:00 +08:00
TogetsuDo
41b92263a7
fix(protocol): decode numeric doubt request account fields
...
Linux doubt-request lists were returning the request time as the applicant account, so later uid lookup queried the wrong value.
Decode the account, request time, and source group from the live list layout.
Refs #460
2026-09-21 14:06:47 +08:00
DrSmoothl
6efadce2eb
fix(webui): let Safari add widgets and reorder without HTML5 drag
...
Touch cannot reliably start a drag. Add a tap control for the
gallery, a file-input label, and handle-only reorder.
2026-09-19 16:30:11 +08:00
DrSmoothl
feea35da4c
fix(webui): copy and export files on Safari LAN HTTP
...
Clipboard APIs and instant blob downloads fail on insecure origins
and WebKit. Route every export through the shared helpers.
2026-09-19 16:30:11 +08:00
DrSmoothl
1ab14ea306
fix(webui): keep Safari forms and overlays from zooming or locking
...
Focus stays at 16px, a modal locks the visual viewport, and motion
that WebKit clips or flashes is dropped.
2026-09-19 16:30:11 +08:00
DrSmoothl
87e964ab95
fix(webui): keep live streams alive after Safari page hide
...
Safari freezes fetch SSE when the tab is backgrounded. Close the
stream on hide, reopen on show, and accept both line endings.
2026-09-19 16:30:11 +08:00
DrSmoothl
b60b1a419c
fix(webui): treat iPad and hybrid pointers as touch chrome
...
A mouse on iPad is still a coarse pointer. Use the sheet layout,
show the custom cursor only after a real mouse move, and keep
theme and wallpaper changes from hanging the page.
2026-09-19 16:30:11 +08:00
DrSmoothl
0ef9f9475c
fix(webui): give Safari a shared viewport and clipboard foundation
...
Safari 17+ needs dynamic viewport units, a 16px field floor, and
clipboard helpers that still work on LAN HTTP.
2026-09-19 16:30:11 +08:00
DrSmoothl
555e4be95e
fix(webui): widen the default sidebar and canvas contrast
...
The default palette kept the rail almost the same tone as the page.
Darken the rail in both light and dark so the split reads clearly.
2026-09-18 00:36:36 +08:00
DrSmoothl
4ede23980c
fix(webui): drop the canvas corner when the sidebar is a menu
...
The top-left radius exists to meet the desktop rail. On a narrow
viewport the rail becomes a sheet, so the leftover curve sat on a
full-bleed canvas.
2026-09-18 00:34:09 +08:00
DrSmoothl
b8ba8a1792
fix(webui): darken the kiosk-mode exit control
...
The corner exit button was too faint against the dashboard. Raise its
default contrast while keeping hover at full opacity.
2026-09-18 00:32:27 +08:00
DrSmoothl
20c31e11a8
fix(onebot): allow typecheck of media cache field folding
...
The persist helper assigned through a generic object type, which
TypeScript rejects. Write the sanitized copy on a plain record.
2026-09-18 00:19:18 +08:00
DrSmoothl
ce050d1ba1
fix(onebot): stop storing inline image payloads in the media cache
...
Large base64 image sources were written into the media database as keys
and row data, which could freeze the process on slow disks. The cache
now keeps only short identifiers and metadata.
Fixes #463
2026-09-18 00:11:59 +08:00
DrSmoothl
2a515c165c
fix(core): copy album feed locator into comment header
...
DoQunComment still came back 10016 after the owner-uin fix because the
write header only sent time + short feed id. Official cell_common also
carries the 421 locator; copy that cell, and synthesize it if omitted.
Fixes #436
2026-09-17 23:56:07 +08:00
DrSmoothl
23ebee7f20
feat(sdk): add onBotStatus for account session notices
...
Let bots subscribe to account up/down without using the operator notification channels.
2026-09-16 21:20:51 +08:00
DrSmoothl
ad36d47cf0
feat(onebot): emit bot_status on account session edges
...
Give downstream bots a notice when an account comes up or goes down, so they can handle their own alerts. Operator notification channels are unchanged.
2026-09-16 17:04:06 +08:00
DrSmoothl
f2d58d2f79
feat(notifications): deliver online/offline alerts over SMTP
...
Fixes #459
2026-09-16 10:36:04 +08:00
DrSmoothl
3cd35a76dd
fix(core): write album comments as the feed owner
...
DoQunComment still returned 10016 after the feed lookup because we
stamped the bot onto StFeed.cellUserInfo. Official FeedWorker copies
the feed owner's uin there and only puts the bot on StComment.
Fixes #436
2026-09-16 08:30:32 +08:00
DrSmoothl
4e1cb51f98
chore(tooling): tag a release without checking out local main
...
Pointing main at dest leaves a stale local main that cannot
fast-forward. Tag the release commit from the current branch.
2026-09-15 16:31:27 +08:00
DrSmoothl
5b71825ce3
chore(tooling): wait for the version bump commit, not the current tip
...
A later tooling commit on dev made the waiter look for a SHA that
main will never match. Tag the chore(release) commit itself.
2026-09-15 16:22:05 +08:00
DrSmoothl
55dbc022c4
chore(tooling): make pnpm release safe to re-run after a mid-pipeline failure
...
A dropped fetch while waiting for main used to abort the whole release.
The same version command now resumes from whatever already landed:
skip CI, skip bump, skip a finished push, and keep waiting or tagging.
2026-09-15 16:14:39 +08:00
DrSmoothl
b8680bbd69
chore(release): v1.14.17
v1.14.17
2026-09-15 16:03:39 +08:00
DrSmoothl
aaf1e561d1
fix(core): resolve missing doubt-friend account ids before handle
...
Linux list replies often omit the id that the handle packet requires,
and a cache-only lookup cannot see filtered applicants.
Fixes #457
2026-09-15 14:26:51 +08:00
DrSmoothl
c88c8e7517
fix(core): resolve group album comments against the official feed
...
Album comments need the server feed identity before they can be written.
Look that feed up first and fail clearly if it cannot be resolved.
Refs #436
2026-09-14 22:08:03 +08:00
DrSmoothl
dac3deb7bd
feat(protocol): send and receive official my-device chats
...
Pad and phone device conversations were missing from the friend list
and arrived as empty private messages. They now show up as stable
contacts and support text send/receive.
Fixes #452
2026-09-14 19:34:42 +08:00
DrSmoothl
60c9669abd
feat(core): allow custom request headers on notification channels
...
Operators can attach Authorization and other headers to a webhook
channel so authenticated providers work without a separate proxy.
Fixes #451
2026-09-14 19:34:29 +08:00
DrSmoothl
9ac39f480a
fix(onebot): degrade unknown group essence types so one share card cannot fail the list
...
get_essence_msg_list used to abort the whole digest when an entry used
an unmapped content type. Unknown items now fall back to readable text
so the rest of the list still returns.
Fixes #453
2026-09-14 19:34:18 +08:00
DrSmoothl
6b66d4ab46
docs(contributing): describe pointing main at dest
...
Promote no longer opens a merge PR. pnpm release waits for
origin/main to match dest before tagging.
2026-09-14 14:31:58 +08:00
DrSmoothl
804b4c304c
fix(ci): point main at dest instead of merge-promoting
...
Merge commits from dest painted the network graph.
Promote now moves the main ref when main has no unique patches.
2026-09-14 14:15:33 +08:00
wsu2059q
078900f81c
feat(ci): add GHCR image registry support
2026-09-14 14:12:32 +08:00
DrSmoothl
62ab170b21
feat(onebot): add upload_video_to_qun_album
...
Group albums already list videos, but upload only accepted images.
Add a dedicated video action that extracts a cover and returns the new video id.
Fixed #331
2026-09-13 22:50:11 +08:00
DrSmoothl
131a309381
fix(core): write group album comments with official DoQunComment fields
...
Treat envelope field 1 as seq, not success, and attach the media cell plus batch id.
Empty id or a non-zero result fails the action instead of returning a blank comment.
Fixed #436
2026-09-13 22:34:09 +08:00
DrSmoothl
0a6c5b7d2a
fix(protocol): attach voice waveforms on outgoing records
...
Private-chat clients only draw the progress track from message metadata.
Compute amplitudes when uploading a record so PC and phone show the bar.
2026-09-13 22:21:57 +08:00
DrSmoothl
7ef256c487
feat(onebot): include download urls on group notice images
...
_get_group_notice already returned picture ids. Add a fetchable url
on each image so callers do not need a separate action.
Fixes #440
2026-09-13 21:25:59 +08:00
DrSmoothl
201d10c534
fix(onebot): rebuild merged forwards for the target chat
...
Resending another chat's merged-forward card leaves an unopenable
bubble. Fetch the inner tree and upload it for the destination.
Fixes #437
2026-09-13 21:14:46 +08:00
DrSmoothl
48ce95f53e
fix(onebot): keep image sources when reading bot-built forwards
...
get_forward_msg treated pictures inside a just-sent merge as empty.
Keep the original media source so file or url comes back.
Fixes #441
2026-09-13 21:14:41 +08:00
DrSmoothl
26fe4e5fb5
chore(release): run the full CI suite before bumping a version
...
A local release now has to pass the same install, tests, catalog,
typecheck, build, and lint steps as GitHub CI, so a broken tree
cannot be tagged.
2026-09-13 20:46:43 +08:00