Commit Graph

551 Commits

Author SHA1 Message Date
Stephen Zhou ea758ca2b2
feat: allow link to social provider with different email (#3355) 2025-03-30 04:52:34 +00:00
Stephen Zhou 0a1f9c4216
chore: update hono type 2025-03-30 12:02:10 +08:00
Stephen Zhou 90320f23b5
build: update better-auth (#3344) 2025-03-30 07:56:40 +08:00
Innei 936dfa9082
fix: setting sync queue
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-29 22:00:05 +08:00
DIYgod 0f384b0c73
fix(mobile): inline description translation 2025-03-28 20:03:03 +08:00
DIYgod 1b96cc913a
docs: update changelog 2025-03-28 18:32:11 +08:00
DIYgod 0e2b550a4b
feat(mobile): social view translation separator 2025-03-28 18:17:01 +08:00
DIYgod 614fc7356a
feat(mobile): change translation separator 2025-03-28 18:03:42 +08:00
DIYgod 10baaa9bde
fix: types 2025-03-28 17:44:24 +08:00
Innei 28a6a5d5d3
fix: add email verification to users table and update related migrations
- Added `email_verified` column to the `users` table in the SQL migration.
- Updated migration imports to include the new migration for `0019_wonderful_shape`.
- Modified the user schema to include `emailVerified` field.
- Updated user handling in the store to manage the new `emailVerified` property.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-28 17:25:17 +08:00
Stephen Zhou 879d6dfa28
fix(mobile): translation separator, translate for entry title 2025-03-28 16:28:12 +08:00
DIYgod 48bae78253
release(mobile): release v0.1.3 2025-03-28 16:11:32 +08:00
Stephen Zhou abc35be47c
feat: translate on server, global action setting (#3294)
* refactor: translate on server

* refactor: remove summary and translation action

* enable summary and translation from settings

* remove translate and summary from action

* follow setting

* ignore whitespace change

* correct content translation for social item

* update

* update

* fix content

* global setting for summary on mobile

* translation store

* show and cache translation

* update migrate sql

* token header for social sign in

* remove readabilityContent in web view

* ci debug

* check repository

* ci check condition

* fix readability

* show entry content translation

* update

* update

* translation for social item

* Revert "remove translate and summary from action"

This reverts commit c8a195a9b224b308cbcd86a6293ffae03e946a72.

* update text

* support global,once,action summary and translation

* fix condition

* refactor

* refactor: extract use entry translation hook

* update

* rename

* Revert "rename"

This reverts commit 672092f88c04670c7e1017aaf8b9caa6499f1877.

* update

* update

* fix

* translation header action

* unsave prompt

* chore: auto-fix linting and formatting issues

* connect and row

* prompt on mobile before leave

* update

* follow action setting

* hide button when follow action

* update changelog
2025-03-28 15:14:03 +08:00
DIYgod 11b1023bea
docs: add changelog 2025-03-28 13:36:29 +08:00
DIYgod e4d5dbd7a7
feat: firebase analytics 2025-03-28 00:01:07 +08:00
Whitewater 446733450a
fix: add locale support for balance formatting (#3319)
* fix: add locale support for balance formatting

* refactor: rewrite toScientificNotation function with locale support and tests

* test: add locale-specific tests for toScientificNotation function

* chore: update usage
2025-03-27 14:04:04 +00:00
DIYgod ea4a99d1d5
feat(mobile): add login track 2025-03-27 20:27:36 +08:00
DIYgod bf127de547
feat(mobile): use firebase analytics together with track 2025-03-27 19:52:55 +08:00
DIYgod d2af10f366
feat(mobile): set op user agent in analytics init 2025-03-27 17:46:59 +08:00
Stephen Zhou ed86426728
Revert "fix(mobile): token header for social sign in"
This reverts commit dd0058e4aa.
2025-03-27 17:44:41 +08:00
DIYgod 962c31ffed
feat(mobile): user agent 2025-03-27 17:40:24 +08:00
Innei 2558fe656d
fix(mobile): adjust margin for email section in edit-email screen
- Reduced top margin from 8 to 4 for the email section to improve layout consistency.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-27 14:56:24 +08:00
Stephen Zhou dfd52756a4
build: update mgc icon to 1.36 (#3310) 2025-03-27 11:35:43 +08:00
Stephen Zhou dd0058e4aa
fix(mobile): token header for social sign in 2025-03-27 11:10:04 +08:00
Innei 883d21a7df
feat(mobile): register InvitationScreen in sitemap for modal navigation
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-26 23:24:56 +08:00
Whitewater 92f76b93d5
fix(mobile): adjust truncate styles in navigation header title (#3282) 2025-03-26 22:02:45 +08:00
DIYgod 7b6950185a
feat(mobile): nativate to invitation screen for api invitation error 2025-03-26 21:54:54 +08:00
DIYgod 3f551c6fcf
feat(mobile): invitation screen 2025-03-26 21:44:13 +08:00
DIYgod 537ef01c83
feat(mobile): get user role 2025-03-26 21:44:12 +08:00
Innei 62e83822bd
chore(mobile): update iOS deployment target and podspec platform versions
- Removed the deployment target for iOS in app.config.ts.
- Updated the iOS and tvOS platform versions in FollowNative.podspec from '17.0' to '15.1'.
- Cleaned up unused spacing in ProfileView.swift.

These changes ensure compatibility with older iOS versions while maintaining code clarity.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-26 21:15:05 +08:00
DIYgod 680a0fd7db
feat(mobile): optimize verification email sending 2025-03-26 19:52:12 +08:00
Innei 1cd67cdac5
feat(mobile): enhance image sharing functionality with URL support
- Updated UIImage extension to include URL handling in the activity item source.
- Modified HelperModule to accept an optional URL parameter when sharing images.
- Adjusted ImageContextMenu to pass the image URL during sharing actions.

This improves the image sharing experience by allowing users to share images along with their associated URLs.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-26 18:29:01 +08:00
Innei 9cfd4aacfd
refactor(mobile): replace SafeModalScrollView with SafeNavigationScrollView across multiple screens
- Removed SafeModalScrollView component and replaced it with SafeNavigationScrollView in various files including FollowList, EditCondition, EditRewriteRules, EditWebhooks, and EditEmail screens.
- Updated import statements accordingly to reflect the changes.

This change enhances consistency in the navigation handling across the application.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-26 16:59:22 +08:00
Innei 7ce1242f30
fix: image context menu actions via native code, fixed #3262
- Introduced a new UIImage extension to create a UIActivityItemSource, allowing images to be shared with titles and URLs.
- Enhanced HelperModule with new functions to save, share, copy images, and retrieve base64 from UIImageView.
- Updated MediaCarousel to use preview_image_url for video context menus.
- Refactored Image and ImageContextMenu components for improved image handling and context menu actions.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-26 16:50:21 +08:00
Whitewater b89fe51b96
fix(mobile): replace SafeModalScrollView with SafeNavigationScrollView in SelectReadingModeScreen (#3300) 2025-03-26 08:48:07 +00:00
DIYgod 0bee60c02a
fix(mobile): header title overflow 2025-03-26 12:58:44 +08:00
DIYgod 5b0bf7d630
chore: fix firebase deps 2025-03-26 11:36:08 +08:00
DIYgod acc55bbc18
build(deps): bump the patch group 2025-03-26 11:08:11 +08:00
dependabot[bot] 2eaf1bbf3a
build(deps): bump the minor group across 1 directory with 25 updates (#3288)
Bumps the minor group with 25 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [simple-git-hooks](https://github.com/toplenboren/simple-git-hooks) | `2.11.1` | `2.12.1` |
| [vite-bundle-analyzer](https://github.com/nonzzz/vite-bundle-analyzer) | `0.17.3` | `0.18.1` |
| [@electron-forge/cli](https://github.com/electron/forge) | `7.7.0` | `7.8.0` |
| [@electron-forge/maker-appx](https://github.com/electron/forge) | `7.7.0` | `7.8.0` |
| [@electron-forge/maker-dmg](https://github.com/electron/forge) | `7.7.0` | `7.8.0` |
| [@electron-forge/maker-pkg](https://github.com/electron/forge) | `7.7.0` | `7.8.0` |
| [@electron-forge/maker-squirrel](https://github.com/electron/forge) | `7.7.0` | `7.8.0` |
| [@electron-forge/maker-zip](https://github.com/electron/forge) | `7.7.0` | `7.8.0` |
| [@electron-forge/plugin-fuses](https://github.com/electron/forge) | `7.7.0` | `7.8.0` |
| [@electron-forge/publisher-github](https://github.com/electron/forge) | `7.7.0` | `7.8.0` |
| [drizzle-orm](https://github.com/drizzle-team/drizzle-orm) | `0.40.0` | `0.41.0` |
| [electron](https://github.com/electron/electron) | `34.2.0` | `34.3.4` |
| [electron-vite](https://github.com/alex8088/electron-vite) | `3.0.0` | `3.1.0` |
| [@tanstack/query-sync-storage-persister](https://github.com/TanStack/query/tree/HEAD/packages/query-sync-storage-persister) | `5.68.0` | `5.69.0` |
| [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query) | `5.68.0` | `5.69.0` |
| [@tanstack/react-query-persist-client](https://github.com/TanStack/query/tree/HEAD/packages/react-query-persist-client) | `5.68.0` | `5.69.0` |
| [lru-cache](https://github.com/isaacs/node-lru-cache) | `11.0.2` | `11.1.0` |
| [react-native-video](https://github.com/TheWidlarzGroup/react-native-video) | `6.10.2` | `6.11.0` |
| [@sentry/react](https://github.com/getsentry/sentry-javascript) | `9.5.0` | `9.9.0` |
| [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `7.3.0` | `7.4.0` |
| [@hono/node-server](https://github.com/honojs/node-server) | `1.13.8` | `1.14.0` |
| [@sentry/electron](https://github.com/getsentry/sentry-electron) | `6.1.0` | `6.3.0` |
| [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools) | `5.68.0` | `5.69.0` |
| [firebase](https://github.com/firebase/firebase-js-sdk) | `11.4.0` | `11.5.0` |
| [react-scan](https://github.com/aidenybai/react-scan) | `0.2.14` | `0.3.3` |



Updates `simple-git-hooks` from 2.11.1 to 2.12.1
- [Release notes](https://github.com/toplenboren/simple-git-hooks/releases)
- [Changelog](https://github.com/toplenboren/simple-git-hooks/blob/master/CHANGELOG.md)
- [Commits](https://github.com/toplenboren/simple-git-hooks/compare/2.11.1...2.12.1)

Updates `vite-bundle-analyzer` from 0.17.3 to 0.18.1
- [Release notes](https://github.com/nonzzz/vite-bundle-analyzer/releases)
- [Changelog](https://github.com/nonzzz/vite-bundle-analyzer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nonzzz/vite-bundle-analyzer/compare/v0.17.3...v0.18.1)

Updates `@electron-forge/cli` from 7.7.0 to 7.8.0
- [Release notes](https://github.com/electron/forge/releases)
- [Changelog](https://github.com/electron/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/electron/forge/compare/v7.7.0...v7.8.0)

Updates `@electron-forge/maker-appx` from 7.7.0 to 7.8.0
- [Release notes](https://github.com/electron/forge/releases)
- [Changelog](https://github.com/electron/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/electron/forge/compare/v7.7.0...v7.8.0)

Updates `@electron-forge/maker-dmg` from 7.7.0 to 7.8.0
- [Release notes](https://github.com/electron/forge/releases)
- [Changelog](https://github.com/electron/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/electron/forge/compare/v7.7.0...v7.8.0)

Updates `@electron-forge/maker-pkg` from 7.7.0 to 7.8.0
- [Release notes](https://github.com/electron/forge/releases)
- [Changelog](https://github.com/electron/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/electron/forge/compare/v7.7.0...v7.8.0)

Updates `@electron-forge/maker-squirrel` from 7.7.0 to 7.8.0
- [Release notes](https://github.com/electron/forge/releases)
- [Changelog](https://github.com/electron/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/electron/forge/compare/v7.7.0...v7.8.0)

Updates `@electron-forge/maker-zip` from 7.7.0 to 7.8.0
- [Release notes](https://github.com/electron/forge/releases)
- [Changelog](https://github.com/electron/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/electron/forge/compare/v7.7.0...v7.8.0)

Updates `@electron-forge/plugin-fuses` from 7.7.0 to 7.8.0
- [Release notes](https://github.com/electron/forge/releases)
- [Changelog](https://github.com/electron/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/electron/forge/compare/v7.7.0...v7.8.0)

Updates `@electron-forge/publisher-github` from 7.7.0 to 7.8.0
- [Release notes](https://github.com/electron/forge/releases)
- [Changelog](https://github.com/electron/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/electron/forge/compare/v7.7.0...v7.8.0)

Updates `drizzle-orm` from 0.40.0 to 0.41.0
- [Release notes](https://github.com/drizzle-team/drizzle-orm/releases)
- [Commits](https://github.com/drizzle-team/drizzle-orm/compare/0.40.0...0.41.0)

Updates `electron` from 34.2.0 to 34.3.4
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v34.2.0...v34.3.4)

Updates `electron-vite` from 3.0.0 to 3.1.0
- [Release notes](https://github.com/alex8088/electron-vite/releases)
- [Changelog](https://github.com/alex8088/electron-vite/blob/master/CHANGELOG.md)
- [Commits](https://github.com/alex8088/electron-vite/compare/v3.0.0...v3.1.0)

Updates `@tanstack/query-sync-storage-persister` from 5.68.0 to 5.69.0
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.69.0/packages/query-sync-storage-persister)

Updates `@tanstack/react-query` from 5.68.0 to 5.69.0
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.69.0/packages/react-query)

Updates `@tanstack/react-query-persist-client` from 5.68.0 to 5.69.0
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.69.0/packages/react-query-persist-client)

Updates `lru-cache` from 11.0.2 to 11.1.0
- [Changelog](https://github.com/isaacs/node-lru-cache/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-lru-cache/compare/v11.0.2...v11.1.0)

Updates `react-native-video` from 6.10.2 to 6.11.0
- [Release notes](https://github.com/TheWidlarzGroup/react-native-video/releases)
- [Changelog](https://github.com/TheWidlarzGroup/react-native-video/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TheWidlarzGroup/react-native-video/compare/v6.10.2...v6.11.0)

Updates `@sentry/react` from 9.5.0 to 9.9.0
- [Release notes](https://github.com/getsentry/sentry-javascript/releases)
- [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-javascript/compare/9.5.0...9.9.0)

Updates `react-router` from 7.3.0 to 7.4.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.4.0/packages/react-router)

Updates `@hono/node-server` from 1.13.8 to 1.14.0
- [Release notes](https://github.com/honojs/node-server/releases)
- [Commits](https://github.com/honojs/node-server/compare/v1.13.8...v1.14.0)

Updates `@sentry/electron` from 6.1.0 to 6.3.0
- [Release notes](https://github.com/getsentry/sentry-electron/releases)
- [Changelog](https://github.com/getsentry/sentry-electron/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-electron/compare/6.1.0...6.3.0)

Updates `@tanstack/react-query-devtools` from 5.68.0 to 5.69.0
- [Release notes](https://github.com/TanStack/query/releases)
- [Commits](https://github.com/TanStack/query/commits/v5.69.0/packages/react-query-devtools)

Updates `firebase` from 11.4.0 to 11.5.0
- [Release notes](https://github.com/firebase/firebase-js-sdk/releases)
- [Changelog](https://github.com/firebase/firebase-js-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/firebase/firebase-js-sdk/compare/firebase@11.4.0...firebase@11.5.0)

Updates `react-scan` from 0.2.14 to 0.3.3
- [Release notes](https://github.com/aidenybai/react-scan/releases)
- [Commits](https://github.com/aidenybai/react-scan/compare/v0.2.14...v0.3.3)

---
updated-dependencies:
- dependency-name: simple-git-hooks
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: vite-bundle-analyzer
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@electron-forge/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@electron-forge/maker-appx"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@electron-forge/maker-dmg"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@electron-forge/maker-pkg"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@electron-forge/maker-squirrel"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@electron-forge/maker-zip"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@electron-forge/plugin-fuses"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@electron-forge/publisher-github"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: drizzle-orm
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: electron
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: electron-vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@tanstack/query-sync-storage-persister"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@tanstack/react-query"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@tanstack/react-query-persist-client"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: lru-cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: react-native-video
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@sentry/react"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: react-router
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@hono/node-server"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@sentry/electron"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: "@tanstack/react-query-devtools"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: firebase
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: react-scan
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 11:00:57 +08:00
Innei b5fc2f6a70
feat: add some tracker
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-25 22:26:10 +08:00
Innei 549d76285a
refactor(tracker): add tracker package
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-25 21:17:12 +08:00
Innei 359093dcf1
refactor(mobile): streamline app structure and enhance navigation
- Removed unnecessary FullWindowOverlay from App component.
- Introduced sitemap registration in main.tsx for better navigation management.
- Updated NoLoginInfo component to use Pressable for navigation to LoginScreen.
- Added DropdownMenu for environment profile selection in DebugButton.
- Created new sitemap.tsx file to manage navigation components.

This refactor improves code organization and enhances user experience in navigation.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-25 21:17:12 +08:00
Innei 626e54dd84
fix(mobile): image preview can dismiss if image load error
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-25 14:48:51 +08:00
Innei 81fc94c946
feat(mobile): don't need to swipe from the far left to go back to the previous page
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-25 14:15:05 +08:00
Vikas 1a9f273606
feat: add PDF export functionality (#3264)
* feature add: export article as pdf (issue: 1314)

* reverted pnpm-lock.yaml, deleted unwanted code, ensured some checks

* chore: update icon

* update changelog

---------

Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com>
2025-03-25 01:10:38 +00:00
Konv Suu 78ba2c34aa
fix(mobile): handle durationInSeconds format (#3259)
Co-authored-by: Stephen Zhou <38493346+hyoban@users.noreply.github.com>
2025-03-25 00:15:01 +08:00
Innei 9ac2e169c8
refactor(mobile): enhance stack navigation structure and add state handling
- Introduced AttachNavigationScrollViewProvider for better context management.
- Added StateHandler component to manage screen name updates based on navigation events.
- Updated imports and optimized component structure for improved readability.

Signed-off-by: Innei <tukon479@gmail.com>
2025-03-24 23:47:37 +08:00
Innei 6c325d7cb8
feat: optimize user profile modal style
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-24 21:05:51 +08:00
Innei 149ca034f6
fix(mobile): profile modal header style
Signed-off-by: Innei <tukon479@gmail.com>
2025-03-24 15:44:07 +08:00
Stephen Zhou 8a5f92d0e7
refactor: translation language -> action language (#3154)
* refactor: action language -> action language

* type

* mobile

* type

* fix

* prefer local settings, drop backward compatibility

* update

* update

* update

* chore: auto-fix linting and formatting issues

* update

* update

* update

* follow ui

* update

* add description

* fix build

* update

* update

* update
2025-03-24 10:10:48 +08:00