[feature] project init merge#1
Merged
Merged
Conversation
- Parent POM with Spring Boot 3.2.3 and JDK 21 - 6 modules: app, domain, auth, search, storage, infra - Module dependency directions per architecture design - Maven Wrapper for reproducible builds
- Create SkillhubApplication main class - Add application.yml with JPA, Flyway, graceful shutdown config - Add application-local.yml for local development profile - Add database and Redis dependencies to skillhub-app POM
- Migrate all Maven groupId and Java packages to com.iflytek.skillhub - Add Docker Compose with PostgreSQL 16, Redis 7, MinIO - Add Flyway V1 migration with Phase 1 core schema (user, auth, RBAC, namespace, audit) - Add RequestIdFilter with MDC tracing and X-Request-Id header - Add GlobalExceptionHandler and ErrorResponse DTO - Add HealthController (/api/v1/health) and OpenAPI config - Add basic SecurityConfig permitting public endpoints - Add H2 test profile for CI-friendly testing without external services - Add top-level Makefile for dev workflow orchestration - All 3 tests passing
…ities Task 8: Domain layer - UserAccount entity with UserStatus lifecycle - Namespace, NamespaceMember entities with NamespaceRole - Repository interfaces for domain aggregates Task 9: Infra layer - UserAccountJpaRepository, NamespaceJpaRepository, NamespaceMemberJpaRepository - Spring Data JPA implementations Task 10: Auth entities and repositories - IdentityBinding, ApiToken, Role, Permission, RolePermission, UserRoleBinding - JPA repositories for all auth entities - UserRoleBinding with eager-loaded Role for RBAC queries
Task 10b: OAuth Claims + Access Policy - OAuthClaims record, OAuthClaimsExtractor SPI, GitHubClaimsExtractor - AccessPolicy SPI with Open/EmailDomain/ProviderAllowlist/SubjectWhitelist - AccessPolicyFactory with config-driven strategy selection - 8 unit tests for access policies Task 11: Identity binding + OAuth2 user service - PlatformPrincipal session-serializable record - IdentityBindingService: bind-or-create on OAuth login - CustomOAuth2UserService: policy evaluation + identity binding - OAuth2LoginSuccessHandler: store principal in session Task 12: API Token + RBAC - ApiTokenService: SHA-256 hashed token create/validate/revoke - ApiTokenAuthenticationFilter: Bearer token authentication - RbacService: role/permission queries with SUPER_ADMIN bypass
Task 14: Spring Security config - SecurityConfig with OAuth2 login, CSRF Cookie-to-Header, CLI API exempt - ApiTokenAuthenticationFilter before UsernamePasswordAuthenticationFilter - Spring Session Redis + OAuth2 client config in application.yml Task 15: MockAuthFilter - @Profile("local") filter reads X-Mock-User-Id header - Creates PlatformPrincipal and sets SecurityContext for local dev Task 16: AuthController + TokenController - GET /api/v1/auth/me: current user info from session - GET /api/v1/auth/providers: available OAuth providers - POST/GET/DELETE /api/v1/tokens: create, list, revoke API tokens Task 17: Enhanced GlobalExceptionHandler - ErrorResponse with requestId and timestamp - 400 for IllegalArgumentException, 500 catch-all with MDC requestId
- Initialize Vite + React 19 + TypeScript project - Add TanStack Router v1.95 with file-based routing - Add TanStack Query v5.64 for data fetching - Configure Tailwind CSS + shadcn/ui - Implement auth features (useAuth hook, LoginButton, AuthGuard) - Add openapi-fetch client for type-safe API calls - Configure Nginx for production deployment - Update Makefile with frontend commands Implements Task 3 (Chunk 3) of Phase 1 plan.
- Login page with dynamic OAuth provider buttons from /api/v1/auth/providers - Dashboard with AuthGuard, user info display, and token management - TokenList component with create/delete operations via TanStack Query - CreateTokenDialog with one-time token display and copy functionality - API client with typed auth and token endpoints - shadcn/ui components: Button, Card, Dialog, Table, Input, Label - Tailwind CSS with CSS variables theming - TanStack Router with Home, Login, Dashboard routes - ESLint + TypeScript strict mode configuration
- Database migration: 5 new tables (skill, skill_version, skill_file, skill_tag, skill_search_document) - Object storage: SPI + LocalFile/S3 dual implementation - Namespace management: CRUD + member management - Skill publish: upload → validate → store → persist → publish - Skill query/download/tags: visibility control, tag management - Search: PostgreSQL full-text with tsvector + GIN - Async events: Spring Events + dedicated thread pool - Rate limiting: Redis sliding window + annotation-driven - Frontend: modern product-style pages with shadcn/ui - Testing strategy: unit/integration/API/E2E layers
- CRITICAL: add Namespace entity field补齐 note (type, avatar_url, updatedAt) - MAJOR: add CLI publish interface deviation note in key decisions - MAJOR: define search behavior when q is empty + homepage list API - MAJOR: add SkillRepository.incrementDownloadCount method - MAJOR: add SecurityConfig update strategy note - MAJOR: add Web publish interface deviation note - MINOR: add missing Repository methods for namespace/member - MINOR: add awaitTerminationSeconds to async thread pool - MINOR: add starCount to search response - MINOR: add namespace_slug to skill_search_document - Clarify bundle.zip repacking strategy - Add entity alignment verification to Chunk 1 acceptance criteria
- MAJOR: search stats via JOIN skill table instead of denormalization - Move SkillSearchAppService from domain to app module (dependency direction) - Fix Chunk 1 acceptance criteria numbering - Add latestVersion field source clarification
- Add Phase 2 to Phase 3 data migration strategy - Add detailed frontend Device Auth page implementation tasks in Chunk 3
- Add detailed Device Auth page UI design (section 7.3) - Add Device Auth frontend files to file structure (section 7.6) - Fix backend Controller to use REST API instead of Thymeleaf - Update section numbering (7.3->7.4, 7.4->7.5, 7.5->7.6)
- Complete Chunk 1 detailed tasks (database, entities, repositories, permissions, services) - Add Chunk 2-5 task outlines - Include TDD steps with test-first approach - Add verification commands and expected outputs - Total 5 chunks for progressive delivery
…ibilityChecker with tests
… feature components
…r all 5 chunks - Chunk 1: Review workflow core (backend) - DB migration, entities, repos, permissions, service - Chunk 2: Rating/favorites + frontend review center - entities, services, event listeners, controllers - Chunk 3: CLI API + Web auth - Device Flow models, service, controllers, frontend page - Chunk 4: ClawHub compatibility layer - slug mapper, well-known endpoint, compat controller - Chunk 5: Idempotency + admin dashboard - interceptor, cleanup tasks, admin API, frontend pages
wowo-zZ
pushed a commit
that referenced
this pull request
Mar 13, 2026
* Initial plan * docs: add Usage with Agent Platforms section to README Co-authored-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com> * Fix heading format for AstronClaw section Updated the heading for AstronClaw in the README. Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com> --------- Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>
wowo-zZ
added a commit
that referenced
this pull request
Mar 13, 2026
docs: add Usage with Agent Platforms section to README (#1)
yun-zhi-ztl
pushed a commit
that referenced
this pull request
Mar 15, 2026
* Initial plan * docs: add Usage with Agent Platforms section to README Co-authored-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com> * Fix heading format for AstronClaw section Updated the heading for AstronClaw in the README. Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com> --------- Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>
yun-zhi-ztl
pushed a commit
that referenced
this pull request
Mar 15, 2026
docs: add Usage with Agent Platforms section to README (#1)
wuchunfu
pushed a commit
to itsharex/skillhub
that referenced
this pull request
Apr 1, 2026
* Initial plan * docs: add Usage with Agent Platforms section to README Co-authored-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com> * Fix heading format for AstronClaw section Updated the heading for AstronClaw in the README. Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com> --------- Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com> Co-authored-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>
wuchunfu
pushed a commit
to itsharex/skillhub
that referenced
this pull request
Apr 1, 2026
docs: add Usage with Agent Platforms section to README (iflytek#1)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.