Commit graph

643 commits

Author SHA1 Message Date
yun-zhi-ztl
9021ba754e fix(web): clear lint gate and split route bundles
Remove the markdown renderer ts-ignore workaround by applying prose styling at the container level, which clears the remaining lint failure without changing rendered behavior.

Convert top-level pages to route-level lazy imports with a shared suspense fallback so the main bundle is no longer forced to include every page upfront. Verified with pnpm run lint, pnpm run typecheck, and pnpm run build; the entry chunk dropped from roughly 770 kB to 338.77 kB after the split.
2026-03-13 11:54:47 +08:00
yun-zhi-ztl
556d556724 fix(token): align revoke endpoint with 204 contract
Change DELETE /api/v1/tokens/{id} to return HTTP 204 No Content so the backend matches the existing OpenAPI contract and the frontend delete flow no longer rejects successful revocations.

Add a controller regression test that verifies the endpoint returns 204 with an empty body and still delegates the revoke call to ApiTokenService. Verified with the targeted TokenControllerTest plus full server mvn test.
2026-03-13 11:49:57 +08:00
vsxd
45e96be179 fix(ci): install pnpm before setup-node cache 2026-03-13 11:48:44 +08:00
yun-zhi-ztl
383bc1edae fix(admin): replace compat and admin placeholders with real queries
Implement compat search through SkillSearchAppService instead of returning an empty placeholder list, and map search results back to canonical slugs for the compatibility API.

Replace hard-coded admin user and audit-log payloads with repository-backed application services. User management now supports paged search and status filters, validates managed statuses and role codes, prevents USER_ADMIN from assigning SUPER_ADMIN, and persists role/status changes against the real repositories. Audit logs now read from the audit_log table through a dedicated query repository/service with filterable pagination.

Align admin response DTOs with the frontend contract, add domain not-found handling for localized 404 responses, and cover the new behavior with controller and service regression tests. Verified with targeted skillhub-app tests plus full server mvn test.
2026-03-13 11:46:21 +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
c499571408 fix(web): redirect unauthenticated users back after login 2026-03-13 11:43:14 +08:00
vsxd
f16885a39d fix(web): normalize protected route matching 2026-03-13 11:41:02 +08:00
vsxd
8171a190a7 fix(web): prevent landing page from matching nested routes 2026-03-13 11:37:22 +08:00
vsxd
68af8047b8 Complete phase 3 and 4 frontend flows 2026-03-13 11:36:39 +08:00
vsxd
6a9e0845d4 Complete phase 3 and 4 backend workflows 2026-03-13 11:36:34 +08:00
vsxd
76808ca794 test(auth): align auth module tests with current flows 2026-03-13 11:32:50 +08:00
vsxd
5bb2eb0d98 fix(auth): grant global membership to new users 2026-03-13 11:29:01 +08:00
vsxd
0c5e4200cb fix(dev): provide explicit skill repository bean 2026-03-13 11:21:32 +08:00
yun-zhi-ztl
ad8bb9c6fd fix(security): whitelist only public skill GET routes
- require authentication for skill star and rating GET endpoints before the public skill-read rules

- keep documented public skill detail, version, download, resolve, and tag listing endpoints readable anonymously

- add regression coverage for anonymous star and rating access denial plus public tag listing
2026-03-13 11:12:18 +08:00
vsxd
c8d155e23f chore(git): ignore python cache files 2026-03-13 11:10:02 +08:00
vsxd
ec9341a6da fix(dev): harden local process startup checks 2026-03-13 11:09:02 +08:00
vsxd
56aeb424af fix(web): landing page no longer nested inside Layout header/footer
When pathname is '/', Layout now renders only the Outlet without its
own header/footer chrome, so the landing page's self-contained layout
displays correctly.
2026-03-13 11:08:35 +08:00
vsxd
f7df348a5a Add OpenAPI drift validation and docs updates 2026-03-13 11:06:55 +08:00
yun-zhi-ztl
ec8f7ec838 fix(auth): enforce api token scopes and active-user checks
- parse stored api token scopes and attach SCOPE authorities during authentication

- reject disabled users from establishing api token sessions and stop touching last-used for inactive accounts

- add an api-token-only scope filter that limits tokens to documented publish and token-management endpoints
2026-03-13 11:04:52 +08:00
vsxd
3cee8fbb5a fix(phase4): harden smoke checks and metrics access 2026-03-13 10:56:28 +08:00
vsxd
2c8c7fd272 merge: bring feature/project-init into main
# Conflicts:
#	README.md
2026-03-13 10:38:30 +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
vsxd
2b7968c71c docs(repo): add contribution and community templates 2026-03-13 10:34:12 +08:00
vsxd
72784c238a test(ops): expand local smoke coverage for auth sessions 2026-03-13 10:28:17 +08:00
vsxd
6285a32c09 docs: add curl quick start command 2026-03-13 10:27:55 +08:00
vsxd
b982011614 fix(ops): align smoke test with csrf and metrics access 2026-03-13 10:23:46 +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
vsxd
07ea0fa822 merge: bring phase4 worktree implementation into main
# 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:20:19 +08:00
vsxd
33c44fb9cc feat(phase4): complete auth, governance, observability, and ops polish 2026-03-13 10:17:48 +08:00
vsxd
62d9d88546 chore(release): cut v0.1.0-beta.2 2026-03-13 10:13:50 +08:00
vsxd
a8f5b98947 Merge branch 'feature/project-init' 2026-03-13 10:12:34 +08:00
vsxd
537765d68e fix: remove top-level name from compose file for docker-compose v1 compatibility 2026-03-13 10:09:35 +08:00
vsxd
d4deb2fb74 fix: address review-reported auth and publish issues 2026-03-13 10:06:25 +08:00
vsxd
f7798dddc5 Revert "merge: bring review fixes into feature/project-init"
This reverts commit 92f63f8b89, reversing
changes made to 78e16f0fe7.
2026-03-13 10:06:14 +08:00
vsxd
1a5bc12fb7 Merge branch 'feature/homepage-redesign' into feature/project-init 2026-03-13 10:05:39 +08:00
vsxd
92f63f8b89 merge: bring review fixes into feature/project-init 2026-03-13 10:05:18 +08:00
yun-zhi-ztl
7bc152a744 fix(publish): keep latest pointer aligned with published versions
- stop publish submission from advancing skill.latestVersionId or overwriting published-facing skill metadata while a version is still pending review\n- move latest pointer and display metadata promotion into review approval so the public skill record changes only when a version becomes PUBLISHED\n- keep SkillPublishedEvent emission on review approval only, preserving search rebuild semantics for published versions\n- add regression coverage for pending review submissions retaining published metadata and for approval promoting latest pointer plus display fields
2026-03-13 10:01:01 +08:00
vsxd
5bb887b292 fix: address review-reported auth and publish issues 2026-03-12 22:29:51 +08:00
vsxd
2ae5f7b43e docs: add landing page preview guide 2026-03-12 22:28:31 +08:00
vsxd
78a37e2430 feat(web): redesign homepage with modern landing page
- Add new landing page with particle animation system
- Implement "Tech Weave" aesthetic with cyan/violet gradient theme
- Update fonts to Syne (headings) and IBM Plex Sans (body)
- Create hero section with search bar and CTA buttons
- Add feature showcase with 6 core capabilities
- Include stats display and call-to-action section
- Update routing to use landing page as homepage
- Keep original home page accessible at /skills route

Design highlights:
- Canvas-based particle connection animation (80 nodes)
- Dark theme with gradient effects and glow orbs
- Smooth fade-up animations with staggered delays
- Hover effects on cards and buttons
- Responsive layout for mobile/tablet/desktop
2026-03-12 22:27:58 +08:00
tlzhu3
f99ffbd7ec fix(review): tighten review and promotion access boundaries
- derive review namespace from skill ownership instead of trusting request input\n- require namespace membership for review submission and owner or namespace admin rights for promotion submission\n- forbid unauthorized pending-list and detail reads in review and promotion portal endpoints\n- add domain and controller regression tests for submit and read permission boundaries
2026-03-12 22:26:44 +08:00
vsxd
11feb91e0f merge: sync feature/project-init into main 2026-03-12 22:08:40 +08:00
vsxd
81661d7e5f docs: lead quick start with runtime bootstrap 2026-03-12 22:02:11 +08:00
vsxd
8c5b4d176a feat(auth): add local username-password login 2026-03-12 21:59:28 +08:00
vsxd
9146476fb9 chore(ci): restore release publish triggers 2026-03-12 21:51:25 +08:00
vsxd
b73f7ed5d8 feat(ops): add runtime bootstrap script 2026-03-12 21:50:24 +08:00
tlzhu3
444a52f802 fix(auth): complete device flow token exchange 2026-03-12 21:42:15 +08:00
vsxd
78e16f0fe7 docs: update README.md 2026-03-12 21:41:14 +08:00
vsxd
0fbed7d450 merge: bring feature/project-init into main 2026-03-12 21:38:43 +08:00
vsxd
3c9b95fd98 refactor(auth): remove local auth flow 2026-03-12 21:36:49 +08:00