Commit graph

62 commits

Author SHA1 Message Date
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
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
xiose
c23960ea0b 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 20:39:33 +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
dee07ad7a2 fix: truncate long error messages in ui 2026-03-16 17:30:30 +08:00
yun-zhi-ztl
c6fb349253 fix: limit skill search query length 2026-03-16 17:28:39 +08:00
yun-zhi-ztl
dfa0724d12 fix: refresh skill download counts after download 2026-03-16 16:28:16 +08:00
vsxd
5168e866da fix: make bootstrap admin opt-in and stabilize promotion errors 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
2b0bb25240 fix: stabilize promotion approval and documentation fallback 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
vsxd
bead940e3e test: stabilize api assertions and add frontend test setup 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
889a6d3b9d feat: add namespace creation dialog 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
f92cdb31f2 feat: add namespace governance dashboard 2026-03-16 16:03:46 +08:00
yun-zhi-ztl
907885eb79 fix(skill): surface unavailable readme states 2026-03-15 20:09:32 +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
3446740b5f feat(web): add skill version management UI 2026-03-15 19:48:29 +08:00
yun-zhi-ztl
29a08d3c54 feat(skill): allow withdrawing pending submissions 2026-03-15 19:23:20 +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
04eb468a19 feat(skill): add lifecycle management UI 2026-03-15 17:02:03 +08:00
yun-zhi-ztl
411e592362 feat(report): add skill report UI and admin page 2026-03-15 16:47:53 +08:00
yun-zhi-ztl
2b6f4e335e refactor(web): move portal APIs under api/web 2026-03-15 15:48:14 +08:00
yun-zhi-ztl
e188c8e060 fix(dialog): preserve centered modal positioning 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
6786b8a95c fix(toast): center feedback and remove native token tooltip 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
4c91b73592 fix(dialog): center popup content across app 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
d6608e4b29 fix(token): center token actions and toast layout 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
fb32512ed9 fix(token): center token feedback toasts 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
13840754ad feat(dashboard): add back navigation for subpages 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
b1bbbeb7c9 fix(token): center copy toasts with dedicated toaster 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
cc3e45dc30 fix(search): polish default sorting and loading states 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
57c4f77d25 feat(search): add starred-only filter 2026-03-14 20:33:52 +08:00
yun-zhi-ztl
60145d7dae fix(publish): timeout stalled publish requests 2026-03-14 19:53:27 +08:00
yun-zhi-ztl
495b05f63f fix(dialog): keep modals centered on long pages 2026-03-14 19:41:33 +08:00
yun-zhi-ztl
32add06b5d fix(skill): format publish time in local system time 2026-03-14 19:40:17 +08:00
yun-zhi-ztl
ccc23289bc fix(dialog): portal token modal to body 2026-03-14 19:31:16 +08:00
yun-zhi-ztl
553a72eeb1 fix(token): center copy feedback toast 2026-03-14 19:24:29 +08:00
yun-zhi-ztl
0b576e3f59 fix(search): wrap long empty-state descriptions 2026-03-14 19:16:25 +08:00
yun-zhi-ztl
a5d6b6246b fix(auth): localize login errors and align API error handling 2026-03-14 19:05:20 +08:00
yun-zhi-ztl
3f1985da46 fix(web): adapt header controls to landing theme 2026-03-14 18:19:41 +08:00
yun-zhi-ztl
c08fd7306b fix(web): align language switcher text color 2026-03-14 18:18:08 +08:00
wowo_zZ
41b0f8ce1b feat(web): add legal pages and footer links 2026-03-14 17:14:16 +08:00
wowo-zZ
e97752735c fix(auth): improve logout flow to always redirect to home
- Use window.location.href for full page refresh
- Move redirect to finally block to ensure it always executes
- Fix V7 migration to be a no-op since column is already jsonb
2026-03-14 15:40:53 +08:00
vsxd
de5956476b Sync header auth state after login 2026-03-13 14:48:01 +08:00
vsxd
2170412bda feat(web): complete i18n coverage for all pages and components
Replace hardcoded Chinese strings with t() calls across 36 files.
Expand translation keys from ~160 to 412 covering all pages, features,
and shared components. Fix date formatting to use dynamic i18n locale.
2026-03-13 14:43:26 +08:00
vsxd
9b5154cc51 feat(web): add unified API error handling and complete i18n coverage
- Add ApiError class with status code for structured error handling
- Add global QueryCache/MutationCache error handlers with auto-toast
- Auto-redirect to login on 401, show appropriate messages for 403/404/5xx
- Add i18n to review-detail.tsx, token-list.tsx, confirm-dialog.tsx
- Add review, token, apiError translation keys to zh.json and en.json
2026-03-13 13:55:59 +08:00
vsxd
066bbc8f00 fix(web): fix i18n language switching and add translations
- Fixed language switcher to handle language codes with region (zh-CN -> zh)
- Added translations for publish page, toast, and dialog components
- Added i18n keys for all new UI text
- Created TODO.md to track pending frontend improvements

Pending tasks:
- Complete i18n for all remaining components
- Implement unified API error handling
- Replace remaining alert/confirm calls
2026-03-13 13:42:57 +08:00
vsxd
0200d21f0e feat(web): implement toast notifications and SPA dialogs
- Added sonner toast library for notifications
- Created Toaster component with custom styling
- Created toast utility with success/error/warning/info methods
- Created ConfirmDialog component for confirmations
- Replaced browser alert() with toast notifications in:
  - Publish page: added review notice and toast feedback
  - Token list: replaced confirm() with ConfirmDialog
  - Review detail: replaced alert/confirm with toast and dialogs
- Added review notice in publish page explaining admin approval process
- Improved user experience with in-page notifications instead of browser popups

Database changes:
- Added SKILL_ADMIN role to user usr_da52079c-3329-4a5c-a631-8eadfb865a79
2026-03-13 13:41:10 +08:00