Commit graph

289 commits

Author SHA1 Message Date
yun-zhi-ztl
7f5793ac77 fix(web): show pending review toast for non-admin skill publish
Non-admin users now see "Submitted for Review" instead of "Published
Successfully" after uploading a skill, based on the status returned
by the backend.
2026-03-18 17:18:20 +08:00
vsxd
f4b9a26f6f fix: preserve local timezone in token expiration UI 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
dongmucat
b7fd95459c feat(web): improve skill detail overview UX and markdown highlighting 2026-03-18 16:30:21 +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
dongmucat
8fd9e364fd perf(web): reduce react-query stale time to 30s 2026-03-17 22:05:12 +08:00
dongmucat
f2de3d5d51 refactor(web): unify local datetime formatting across governance and review pages (#73) 2026-03-17 20:34:54 +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
dongmucat
09e1933f61 feat(web): refine header interactions and dashboard skill cards 2026-03-17 19:39:20 +08:00
dongmucat
9bb7a01882 Merge branch 'main' of github.com:iflytek/skillhub into feature/ui 2026-03-17 18:53:49 +08:00
dongmucat
ed6c2998a0 feat: Implement SkillHub UI redesign with new page templates, components, and related documentation. 2026-03-17 18:46:41 +08:00
wowo
e649f3fc1b Merge pull request #63 from iflytek/fix/s3-skill-download
Fix S3 skill download flow and filenames
2026-03-17 17:12:22 +08:00
dongmucat
4fa16a7f4a feat: refine landing experience and restore my-skills metadata 2026-03-17 17:11:16 +08:00
dongmucat
ed04c97e8f feat: Implement initial web application structure, core pages, and UI components with i18n support. 2026-03-17 17:11:16 +08:00
dongmucat
808b80f295 feat: refine landing experience and restore my-skills metadata 2026-03-17 17:07:28 +08:00
dongmucat
67e3c8ff19 feat: Implement initial web application structure, core pages, and UI components with i18n support. 2026-03-17 17:03:55 +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
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
c8ba86e8a2 test: cover skill query helpers 2026-03-17 11:54:16 +08:00
yun-zhi-ztl
9e916305f1 test: cover formatting and api error helpers 2026-03-17 11:51:40 +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
yun-zhi-ztl
22c3ca69a0 fix: stack dashboard skills and tokens 2026-03-17 11:36:48 +08:00
yun-zhi-ztl
96c2f53283 fix: show download error on skill detail 2026-03-17 11:32:50 +08:00
yun-zhi-ztl
0904f0feda fix: sync namespace member role updates 2026-03-17 11:30:57 +08:00
yun-zhi-ztl
99ff863681 fix: handle role downgrade on protected pages 2026-03-17 11:28:00 +08:00
yun-zhi-ztl
4e71c93e86 fix: hide account merge entry 2026-03-17 11:19:49 +08:00
yun-zhi-ztl
7bd7aa2ad9 fix: wrap long report review text 2026-03-17 11:18:25 +08:00
vsxd
68de48933a Fix frontend build and stabilize test suite 2026-03-17 11:16:01 +08:00
yun-zhi-ztl
b01bedf392 fix: show review failure reasons 2026-03-17 11:13:37 +08:00
yun-zhi-ztl
97db5efa8f fix: restrict namespace creation to admins 2026-03-17 11:12:13 +08:00
yun-zhi-ztl
163320f7eb fix: paginate personal skills and stars 2026-03-17 11:06:47 +08:00
yun-zhi-ztl
c9e7e1ce28 Merge remote-tracking branch 'origin/main' into feature/project-fixbug
# Conflicts:
#	web/src/api/client.ts
#	web/src/app/router.tsx
#	web/src/pages/skill-detail.tsx
2026-03-17 10:55:11 +08:00
yun-zhi-ztl
71ed31fc46 fix: return skill detail back button to search 2026-03-17 10:53:00 +08:00
vsxd
c750941133 fix(web): avoid CSP errors when downloading skills 2026-03-16 21:21:46 +08:00
xiose
cb717fd5f4 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 21:21:46 +08:00
xiose
1805391d2d fix(auth): refresh user roles on /me request, fix login page UI issues
- Backend: /api/v1/auth/me now fetches fresh roles from DB and updates
  session when roles have changed, so users see role changes on page
  refresh without re-login
- Frontend: invalidate ['auth', 'me'] cache after admin user mutations
  (role change, status change, approve, disable, enable) and account merge
- Login: fix reversed eye icon (Eye=visible, EyeOff=hidden)
- Login: hide browser-native password reveal button to avoid duplicate
2026-03-16 21:21:46 +08:00
xiose
bd86d51f4e fix(web): reset token dialog state on reopen, fix pagination and download button
- Reset form fields and mutation state when create-token dialog reopens
- Fix delete pagination: check items.length === 0 (post-delete) instead of 1
- Restrict skill download to PUBLISHED versions only
2026-03-16 21:21:46 +08:00
xiose
bd8ef13cbb fix(web): prevent text overflow in token dialogs
Add responsive text wrapping and overflow handling to token-related
components to prevent layout breaking with long token names or descriptions.

Changes:
- Add min-w-0 to dialog headers to allow flex shrinking
- Add break-all/break-words to prevent text overflow
- Add overflow-hidden to token display container
- Apply max-w-48 constraint to token name column
2026-03-16 21:21:46 +08:00
vsxd
785c15cd0f Fix SKILL.md frontmatter rendering 2026-03-16 21:21:46 +08:00
tww
3d4afc2120 Merge remote-tracking branch 'origin/main' into cli-login 2026-03-16 19:53:13 +08:00
vsxd
3e67e12344 fix: clarify global namespace visibility copy 2026-03-16 19:30:54 +08:00
yun-zhi-ztl
84bc5c7d9d fix: improve dashboard UX and session refresh handling (#51)
* fix: refresh skill download counts after download

* fix: limit skill search query length

* fix: truncate long error messages in ui

* fix: refresh auth roles promptly

* fix: block disabled users with active sessions

* fix: add my skills preview to dashboard

* fix: align dashboard my skills layout

* fix: refine dashboard my skills preview

* fix: adjust dashboard my skills grid

* fix: keep dashboard more tile visible

* fix: refine dashboard copy tone
2026-03-16 19:29:26 +08:00
yun-zhi-ztl
1955fd8b97 fix: refine dashboard copy tone 2026-03-16 18:28:21 +08:00
yun-zhi-ztl
65258b8419 fix: keep dashboard more tile visible 2026-03-16 18:26:11 +08:00
yun-zhi-ztl
3030ffe357 fix: adjust dashboard my skills grid 2026-03-16 17:49:07 +08:00
yun-zhi-ztl
e287b90694 fix: refine dashboard my skills preview 2026-03-16 17:47:48 +08:00
yun-zhi-ztl
9b92df18c7 fix: align dashboard my skills layout 2026-03-16 17:45:16 +08:00