Commit graph

132 commits

Author SHA1 Message Date
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
yun-zhi-ztl
a6cf862e8e merge(main): sync latest origin/main into feature/project-review
Resolved 9 conflicts according to documented strategy:
- .gitignore: kept both entries (docs/review/ + CLAUDE.md)
- ClawHubCompatController.java: manual merge (use @AuthenticationPrincipal + platformRoles)
- ClawHubCompatControllerTest.java: kept ours (HEAD security tests)
- CliControllerTest.java: kept ours (HEAD platform roles tests)
- ReviewPermissionChecker.java: kept ours (stricter permission model)
- SkillPublishService.java: kept theirs (main SUPER_ADMIN bypass + events)
- SkillPublishServiceTest.java: kept theirs (main complete test suite)
- router.tsx: manual merge (HEAD's createLazyRouteComponent + main's privacy/terms)
- markdown-renderer.tsx: kept ours (HEAD frontmatter stripping + styles)

All A1-A9 security fixes preserved. No new logic introduced.
2026-03-14 17:50:38 +08:00
wowo-zZ
d631b0e20a fix(ops): resolve storage permission and audit log JSONB type issues
Fixes two critical issues when deploying with runtime.sh:

1. Storage Permission Error
   - Problem: AccessDeniedException when publishing skills
   - Root cause: /var/lib/skillhub/storage owned by root, but app runs as 'app' user
   - Solution: Pre-create storage directory with correct permissions in Dockerfile

2. Audit Log JSONB Type Error
   - Problem: PostgreSQL JSONB type mismatch when recording audit logs
   - Root cause: Missing type mapping annotation in AuditLog entity
   - Solution: Add @JdbcTypeCode(SqlTypes.JSON) annotation and V7 migration

Changes:
- server/Dockerfile: Add storage directory creation and permission setup
- server/skillhub-domain/.../AuditLog.java: Add @JdbcTypeCode annotation
- server/skillhub-app/.../V7__fix_audit_log_jsonb_type.sql: Migration for existing data

Impact:
- New deployments: Issues resolved automatically
- Existing deployments: Flyway auto-applies V7 migration on upgrade
2026-03-14 11:23:19 +08:00
vsxd
14d86c290a chore(release): v0.1.0-beta.7 2026-03-13 16:05:08 +08:00
vsxd
3682a4646b Auto-publish skills submitted by super admins 2026-03-13 15:36:56 +08:00
vsxd
d82665baba feat(review): allow admins to review their own submissions 2026-03-13 14:23:20 +08:00
yun-zhi-ztl
447a34a1d1 merge(main): sync latest origin/main into feature/project-review 2026-03-13 12:49:12 +08:00
vsxd
a85a9c3177 fix(publish): 放宽技能包上传校验
- application.yml 补齐缺失的文件扩展名白名单(.js,.ts,.png,.jpg,.svg)
- version 为空时自动生成时间戳版本号,不再强制报错
2026-03-13 12:47:34 +08:00
vsxd
84dd08503d merge: bring feature/project-init into main for beta3
# Conflicts:
#	scripts/smoke-test.sh
2026-03-13 11:45:56 +08:00
vsxd
6a9e0845d4 Complete phase 3 and 4 backend workflows 2026-03-13 11:36:34 +08:00
vsxd
5bb2eb0d98 fix(auth): grant global membership to new users 2026-03-13 11:29:01 +08:00
vsxd
0ca38e73ba merge: bring phase4 worktree implementation into feature/project-init
# Conflicts:
#	server/skillhub-app/src/main/java/com/iflytek/skillhub/controller/cli/CliPublishController.java
#	server/skillhub-app/src/main/java/com/iflytek/skillhub/controller/portal/SkillPublishController.java
#	server/skillhub-storage/src/main/java/com/iflytek/skillhub/storage/LocalFileStorageService.java
#	web/src/app/router.tsx
2026-03-13 10:35:42 +08:00
yun-zhi-ztl
ddbf92435f fix(upload): harden package extraction and storage boundaries
- add shared package safety policy for path normalization and size limits

- stream zip extraction for cli check and publish flows to reject traversal and oversized entries

- confine local storage keys to the configured base path and add regression coverage
2026-03-13 10:20:34 +08:00