Commit graph

276 commits

Author SHA1 Message Date
vsxd
b657a53f37 fix(search): tighten index field boundaries and storage 2026-03-19 18:31:10 +08:00
vsxd
a7f8b0afcf fix(search): expand keyword storage for rebuild safety 2026-03-19 18:31:10 +08:00
vsxd
cc4782c16d test: stabilize request logging filter assertions 2026-03-19 18:30:54 +08:00
vsxd
8c23102e0f fix(search): harden rebuild against null frontmatter values 2026-03-19 18:13:01 +08:00
vsxd
aa8f7afc8b test(search): cover latest-version reindex flow 2026-03-19 17:39:38 +08:00
vsxd
b10a9f76db feat(search): improve Chinese PostgreSQL full-text search 2026-03-19 17:39:38 +08:00
yun-zhi-ztl
5748018f8b Merge pull request #108 from iflytek/feature/project-fixbug319
fix: paginate governance views and add my skills filters
2026-03-19 17:37:32 +08:00
XiaoSeS
f2cf22b3e1 feat: add user profile update feature with moderation support
* feat: add user profile update feature with moderation support

Add ability for users to update their display name with optional machine/human review.

Backend:
- Add profile_change_request table (V15 migration)
- Add UserProfileService with moderation workflow
- Add PATCH /api/v1/user/profile and GET /api/v1/user/profile endpoints
- Add ProfileModerationService interface with NoOp implementation
- Add ProfileModerationProperties for machine/human review toggles
- Update AuthController /me to refresh session when displayName changes
- Add i18n messages for profile validation and responses

Frontend:
- Add /settings/profile page with edit-on-click pattern
- Add profileApi.updateProfile() to client
- Update user menu: add "Profile Settings", make "Security Settings" local-only
- Add i18n translations (en/zh) for profile settings

Testing:
- Add UserProfileControllerTest with 8 test cases
- Add UserProfileServiceTest with 6 test cases
- Add AuthControllerTest case for session refresh on displayName change

* version sql

* merge main

* feat: add profile review admin workflow

* feat(web): add pagination to skill review list

- useReviewList now passes page/size to backend and returns paginated response
- reviews.tsx maintains per-tab page state with prev/next controls
- namespace-reviews.tsx adapted to new response shape
- Added i18n keys for pagination (en/zh)
2026-03-19 17:23:05 +08:00
yun-zhi-ztl
296c713652 fix: add my skills status filters 2026-03-19 17:06:26 +08:00
yun-zhi-ztl
234d5d83b9 Merge remote-tracking branch 'origin/main' into feature/project-fixbug319 2026-03-19 16:58:44 +08:00
vsxd
b168749ceb fix: optimize skill search listing performance 2026-03-19 16:56:37 +08:00
yun-zhi-ztl
3ba6d22c18 fix: paginate governance queries 2026-03-19 16:51:09 +08:00
vsxd
25de227f1b refactor: consolidate backend workflow and security policies 2026-03-19 15:20:08 +08:00
vsxd
024e66d747 feat: add search index rebuild workflow 2026-03-19 15:20:08 +08:00
yun-zhi-ztl
049f5acb64 refactor(server): slim down request logging to core parameters only 2026-03-19 14:54:04 +08:00
yun-zhi-ztl
245d92a4c1 test(server): add unit test for visibility update on republish 2026-03-19 14:54:04 +08:00
yun-zhi-ztl
ea75670224 fix(server): update skill visibility on each version publish 2026-03-19 14:54:04 +08:00
yun-zhi-ztl
1a5b8de196 fix: handle archived skill version deletion 2026-03-19 14:54:04 +08:00
vsxd
8ef53d0fdd docs: enrich backend code documentation 2026-03-19 13:37:21 +08:00
Xudong Sun
6a62fec9e8 feat: allow spaces in profile display names (#97) 2026-03-19 11:13:52 +08:00
Xudong Sun
2daddab217 fix: user profile test isolation and app module docs (#94) 2026-03-19 10:44:13 +08:00
XiaoSeS
626e00219e feat: add user profile update feature with moderation support (#90)
* feat: add user profile update feature with moderation support

Add ability for users to update their display name with optional machine/human review.

Backend:
- Add profile_change_request table (V15 migration)
- Add UserProfileService with moderation workflow
- Add PATCH /api/v1/user/profile and GET /api/v1/user/profile endpoints
- Add ProfileModerationService interface with NoOp implementation
- Add ProfileModerationProperties for machine/human review toggles
- Update AuthController /me to refresh session when displayName changes
- Add i18n messages for profile validation and responses

Frontend:
- Add /settings/profile page with edit-on-click pattern
- Add profileApi.updateProfile() to client
- Update user menu: add "Profile Settings", make "Security Settings" local-only
- Add i18n translations (en/zh) for profile settings

Testing:
- Add UserProfileControllerTest with 8 test cases
- Add UserProfileServiceTest with 6 test cases
- Add AuthControllerTest case for session refresh on displayName change

* version sql

* merge main
2026-03-19 10:16:40 +08:00
vsxd
ed07472dad fix: resolve duplicate flyway migration versions 2026-03-19 10:06:25 +08:00
vsxd
93b264309f feat(skill-detail): show author display name 2026-03-19 09:32:13 +08:00
vsxd
f5db6edde9 test: align my skill app service star timestamps 2026-03-18 17:16:55 +08:00
vsxd
0814b8939c refactor: unify backend time handling in utc 2026-03-18 17:16:55 +08:00
yun-zhi-ztl
6b2d8ce7ef fix: skill upload constraints, rejected label, and last-version guard (#82)
* fix: keep download counts consistent across skill pages

* fix: stabilize empty search ordering across sorts

* fix: show disabled-account reason on login redirect

* fix: mute report input placeholder text

* fix: return skill detail to my skills page

* test: stabilize auth context filter coverage

* feat(publish): increase single file limit to 10MB

* feat(publish): expand allowed file extensions

* feat(publish): extend secret scanning to new text file types

* feat(publish): add content validation for new file types

* refactor(publish): inject configurable limits into SkillPackageArchiveExtractor

* feat(publish): support zip with single root directory wrapper

* feat(publish): expand determineContentType for new file types

* test(publish): update tests for new upload constraints

* fix(web): add REJECTED status label and styling to my-skills page

The resolveStatusLabel and resolveStatusClassName functions were missing
the REJECTED case, causing rejected skills to show raw status string
with no color styling.


* fix: prevent deleting the last remaining version of a skill

Backend: added version count check in SkillGovernanceService.deleteVersion()
Frontend: hide delete button when only one version remains


* test: fix and add tests for last-version deletion guard

- Fix deleteVersion_removesDraftFilesAndBundle: mock findBySkillId to
  return 2 versions so the new guard doesn't block the happy path
- Add deleteVersion_rejectsLastRemainingVersion: verify that deleting
  the only remaining version is rejected with the correct error code

---------
2026-03-18 16:40:51 +08:00
yun-zhi-ztl
82fe91adde feat(publish): relax skill upload constraints (#80)
* fix: keep download counts consistent across skill pages

* fix: stabilize empty search ordering across sorts

* fix: show disabled-account reason on login redirect

* fix: mute report input placeholder text

* fix: return skill detail to my skills page

* test: stabilize auth context filter coverage

* feat(publish): increase single file limit to 10MB

* feat(publish): expand allowed file extensions

* feat(publish): extend secret scanning to new text file types

* feat(publish): add content validation for new file types

* refactor(publish): inject configurable limits into SkillPackageArchiveExtractor

* feat(publish): support zip with single root directory wrapper

* feat(publish): expand determineContentType for new file types

* test(publish): update tests for new upload constraints
2026-03-18 15:27:51 +08:00
vsxd
377de504f9 feat: harden download and storage resilience 2026-03-18 14:30:40 +08:00
Xudong Sun
4aa3d29599 refactor: skill lifecycle projection and docs (#78)
* Refactor skill lifecycle projection and docs

* Improve owner lifecycle visibility on skill detail

* Track download counts per skill version
2026-03-18 13:39:22 +08:00
Xudong Sun
c2284d8acf feat: add anonymous download rate limiting (#76) 2026-03-18 11:31:10 +08:00
vsxd
72054dee0f Allow anonymous downloads for global public skills 2026-03-17 20:25:26 +08:00
yun-zhi-ztl
cc5fc7586f fix: improve disabled-account feedback and skill detail polish (#70)
* fix: keep download counts consistent across skill pages

* fix: stabilize empty search ordering across sorts

* fix: show disabled-account reason on login redirect

* fix: mute report input placeholder text

* fix: return skill detail to my skills page

* test: stabilize auth context filter coverage
2026-03-17 19:55:44 +08:00
wowo
9828c0a575 Merge pull request #65 from iflytek/feature/project-fixbug
fix: handle numeric search terms in downloads sort
2026-03-17 17:16:53 +08:00
yun-zhi-ztl
ad43fd5a78 fix: allow downloads sort for numeric search terms 2026-03-17 17:10:50 +08:00
vsxd
7c85a262ff Fix S3 skill download flow and filenames 2026-03-17 16:58:24 +08:00
yun-zhi-ztl
b0e19af3ed fix: harden hidden skill visibility and local dev restart flow (#62)
* fix: hide hidden skills from regular viewers

* fix: avoid dashboard preview crash after registration

* fix: restrict skill hiding to super admins

* chore: remove dev process script

* fix: hide hidden skills from slug resolution
2026-03-17 15:26:12 +08:00
yun-zhi-ztl
f0a9714644 fix: hide hidden skills from slug resolution 2026-03-17 15:20:35 +08:00
yun-zhi-ztl
b5bbb09c73 fix: restrict skill hiding to super admins 2026-03-17 15:04:46 +08:00
yun-zhi-ztl
a569707710 fix: hide hidden skills from regular viewers 2026-03-17 14:34:25 +08:00
yun-zhi-ztl
a4c0ea60a5 Merge remote-tracking branch 'origin/main' into feature/project-fixbug 2026-03-17 14:31:30 +08:00
yun-zhi-ztl
b70d4336b0 fix: hide hidden skills from regular viewers 2026-03-17 14:29:07 +08:00
vsxd
e52853c49c test: cover role and user status permission edges 2026-03-17 14:27:25 +08:00
yun-zhi-ztl
ce982c9992 Merge remote-tracking branch 'origin/main' into feature/project-fixbug 2026-03-17 14:20:41 +08:00
yun-zhi-ztl
984137485d fix: fallback to rebuilding skill bundles for downloads 2026-03-17 14:14:45 +08:00
vsxd
033ac54c76 chore: unify build and test entrypoints 2026-03-17 14:09:22 +08:00
yun-zhi-ztl
252ba65297 fix: hide self-report action on skill detail 2026-03-17 14:05:40 +08:00
yun-zhi-ztl
83606ef930 fix: degrade gracefully for missing skill storage assets 2026-03-17 13:56:39 +08:00
yun-zhi-ztl
02c03946c9 test: restore passing unit suites 2026-03-17 11:44:57 +08:00
yun-zhi-ztl
f6aaa6f587 Merge remote-tracking branch 'origin/main' into feature/project-fixbug 2026-03-17 11:37:22 +08:00