Commit graph

194 commits

Author SHA1 Message Date
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
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
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
a569707710 fix: hide hidden skills from regular viewers 2026-03-17 14:34:25 +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
f6aaa6f587 Merge remote-tracking branch 'origin/main' into feature/project-fixbug 2026-03-17 11:37:22 +08:00
yun-zhi-ztl
43493fa63d fix: relax skill frontmatter parsing 2026-03-17 11:22:08 +08:00
yun-zhi-ztl
96dcf08b0e fix: allow republish after review withdrawal 2026-03-17 11:16:57 +08:00
vsxd
68de48933a Fix frontend build and stabilize test suite 2026-03-17 11:16:01 +08:00
yun-zhi-ztl
163320f7eb fix: paginate personal skills and stars 2026-03-17 11:06:47 +08:00
vsxd
316a86628c fix(skill): isolate unpublished slug access 2026-03-16 21:01:44 +08:00
xiose
060a611a54 fix(auth): enforce owner isolation for skill publishing
- Change skill uniqueness constraint from (namespace_id, slug) to
  (namespace_id, slug, owner_id) to support per-user skill records
- Reject publish when another owner has a published skill with same slug
- Reject review approval when same-slug conflict exists
- Auto-withdraw pending review versions when submitting a new version
- Resolve visible skill by preferring published skill, then current
  user's own skill, to fix wrong skill returned for same-slug queries
- Invalidate all skill query cache on publish to prevent stale data
2026-03-16 20:56:28 +08:00
yun-zhi-ztl
df5883ec04 fix: stabilize skill promotion approval flow 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
556e65efef feat: complete skill promotion submission flow 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
5c42f05486 fix: tighten archived namespace visibility 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
b30311a537 feat: build governance center workflow 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
8fc2c01a32 feat: complete namespace member management 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
33ed8fe17d feat: hide archived namespaces from public reads 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
fcc2df2975 feat: enforce namespace lifecycle on workflows 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
7501bb3cf2 feat: add namespace lifecycle governance 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
c6b3eab034 fix(skill): keep published view stable for owners 2026-03-15 20:06:45 +08:00
yun-zhi-ztl
2757f0ede7 fix(skill): handle missing stored files gracefully 2026-03-15 20:02:31 +08:00
yun-zhi-ztl
28393669e0 feat(skill): allow owner preview of pending submissions 2026-03-15 19:59:19 +08:00
yun-zhi-ztl
4ad97aa55a feat(skill): add version management APIs 2026-03-15 19:45:10 +08:00
yun-zhi-ztl
3f82a88c4e feat(skill): support rereleasing published versions 2026-03-15 19:42:44 +08:00
yun-zhi-ztl
29a08d3c54 feat(skill): allow withdrawing pending submissions 2026-03-15 19:23:20 +08:00
yun-zhi-ztl
74ac44ed65 fix(publish): simplify frontmatter validation errors 2026-03-15 18:28:22 +08:00
yun-zhi-ztl
30545d6a8a fix(publish): clarify precheck failures and avoid duplicate toasts 2026-03-15 18:26:14 +08:00
yun-zhi-ztl
f544d9419d Merge remote-tracking branch 'origin/main' into feature/project-local
# Conflicts:
#	server/skillhub-app/src/test/java/com/iflytek/skillhub/compat/ClawHubRegistryControllerTest.java
#	server/skillhub-domain/src/main/java/com/iflytek/skillhub/domain/skill/service/SkillQueryService.java
2026-03-15 17:57:58 +08:00
yun-zhi-ztl
e827df2aa4 fix(publish): add package prechecks and content validation 2026-03-15 17:33:15 +08:00
yun-zhi-ztl
c552829367 fix(skill): tighten lifecycle detail and search paging 2026-03-15 17:19:05 +08:00
yun-zhi-ztl
cc8ce22c85 feat(report): add skill report backend workflow 2026-03-15 16:41:31 +08:00
yun-zhi-ztl
0bdca1ab81 feat(skill): add lifecycle management APIs 2026-03-15 16:30:10 +08:00
tww
f38fea85b5 cli 2026-03-15 16:02:54 +08:00
yun-zhi-ztl
17dcb4807a fix(review): allow super admins to review own skills 2026-03-15 15:39:37 +08:00
yun-zhi-ztl
a7d1ba1952 fix(download): fall back to safe same-origin skill downloads 2026-03-15 14:20:14 +08:00
yun-zhi-ztl
605634290a fix(publish): allow long skill descriptions 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
984c25d104 fix(publish): reject oversized skill summaries 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
bace5f0b1b fix(my-skills): show pending skills after upload 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
142685610a fix(test): update ReviewPermissionCheckerTest for stricter self-review policy
After merge, HEAD's ReviewPermissionChecker prohibits all self-review
(including SKILL_ADMIN/SUPER_ADMIN). Updated tests to reflect this
stricter security model from A2.
2026-03-14 17:52:56 +08:00