Commit graph

643 commits

Author SHA1 Message Date
vsxd
e63531ca3d feat(dev): stabilize local env and phase3 flows 2026-03-12 21:33:25 +08:00
vsxd
7beda7cf54 merge: bring local auth from phase4-ops-polish
# Conflicts:
#	web/src/pages/login.tsx
2026-03-12 21:31:54 +08:00
vsxd
05ec9bfbc2 feat(auth): add local username-password login 2026-03-12 21:27:01 +08:00
vsxd
6864604377 feat(ops): publish multi-arch runtime images 2026-03-12 21:20:14 +08:00
vsxd
6305fcca39 feat(frontend): redesign UI with Aurora Tech theme
- Typography: Playfair Display (hero serif) + Outfit (headings) + DM Sans (body) + JetBrains Mono (code)
- Color: light-first with cyan primary + violet accent, deep navy dark theme via .dark class
- Visual: dot-grid texture, gradient glow orbs, glassmorphism nav/search, card hover animations, staggered fade-in
- Layout: glass header, footer with links, hero with gradient text + CTA buttons
- Components: all UI primitives (Button/Card/Input/Tabs/Dialog/Table/Select/Textarea) updated
- Pages: all 15+ pages restyled including home, search, detail, login, dashboard, admin
2026-03-12 21:11:41 +08:00
vsxd
f61da15727 chore(ci): restore publish workflow triggers 2026-03-12 20:59:44 +08:00
vsxd
a7481dca5a chore(ci): enable publish workflow on feature branch for validation 2026-03-12 20:55:51 +08:00
vsxd
47c9a1d1db feat(ops): publish runtime images via github actions 2026-03-12 20:53:24 +08:00
tlzhu3
4989aa2ecc Merge branch 'main' into feature/project-review 2026-03-12 20:50:19 +08:00
vsxd
af78262c81 fix(frontend): use fetchJson and getCsrfHeaders in admin user mutations
Replace manual fetch + CSRF handling with shared fetchJson utility
for consistency with other hooks and proper ApiResponse unwrapping.
2026-03-12 20:23:53 +08:00
vsxd
559a9133ab fix(backend): use DomainBadRequestException and ApiResponse envelope
- IdempotencyInterceptor: restructure Redis check to avoid swallowing
  exceptions inside try-catch, use ApiResponse envelope for 409 response
- IdempotencyInterceptorTest: register JavaTimeModule for Instant
  serialization, align mocks with actual implementation
- SkillRatingServiceTest: update expected exception type to match
  DomainBadRequestException used in entity and service
2026-03-12 20:21:59 +08:00
vsxd
84c7c2b145 docs: update README, architecture, and deployment documentation
Refresh docs to reflect current project state including new
modules and simplified deployment approach.
2026-03-12 20:12:11 +08:00
vsxd
b028937abb refactor(api): improve controllers with dedicated DTOs and better tests
- Extract admin DTOs (AdminUserSummary, AdminUserMutation, etc.)
- Add SkillRating request/response DTOs
- Improve controller input validation and error responses
- Strengthen controller test assertions
2026-03-12 20:12:04 +08:00
vsxd
50adf3545d refactor(auth): improve DeviceAuthService error handling and tests
Strengthen device auth flow with better error messages and
additional test coverage.
2026-03-12 20:11:40 +08:00
vsxd
4dfa17dc4e refactor(domain): improve SkillRating validation and add domain tests
- Add rating value validation in SkillRating entity
- Improve SkillRatingService error handling
- Add SkillPublishService and SkillQueryService test coverage
2026-03-12 20:11:32 +08:00
vsxd
cab627be02 feat(infra): add i18n messages, Redis config, and slug normalization migration
- Add rating/admin i18n message keys (en + zh)
- Improve IdempotencyInterceptor error handling
- Add RedisTemplateConfig for consistent serialization
- Add V4 migration to normalize skill slugs
- Fix RequestIdFilterTest
2026-03-12 20:11:24 +08:00
vsxd
47adf3ebad refactor(make): add dev-all one-click workflow and remove prod targets
Add dev-all/dev-all-down for starting full local environment with
health checks. Fix dev-server to target skillhub-app module. Remove
unused prod-up/prod-down/logs targets.
2026-03-12 20:11:08 +08:00
vsxd
02aecfb901 chore: add .dev/ and docs/superpowers/ to .gitignore
Exclude local dev runtime artifacts and AI planning files
from version control.
2026-03-12 20:11:01 +08:00
vsxd
3063a40c8f feat(web): add admin management pages
- Add admin users management page with role and status controls
- Add audit log page with filtering capabilities
- Create useAdminUsers and useAuditLog hooks for API integration
- Add route guards for USER_ADMIN, AUDITOR, and SUPER_ADMIN roles
- Register /admin/users and /admin/audit-log routes
2026-03-12 19:46:55 +08:00
vsxd
c0e9c10e15 feat(admin): add idempotency layer and admin management API
- Add IdempotencyRecord entity with status tracking (PROCESSING/COMPLETED/FAILED)
- Implement IdempotencyInterceptor for request deduplication via X-Request-Id header
- Add scheduled cleanup tasks for expired and stale idempotency records
- Create admin API endpoints for user management (list/update role/update status)
- Create admin API endpoints for audit log viewing with filtering
- Add comprehensive unit tests for all components
- Configure test Redis mocks to support idempotency layer
2026-03-12 19:32:09 +08:00
tlzhu3
f952a6e274 feature : add review doc 2026-03-12 19:28:49 +08:00
vsxd
efd43ef3cd feat(compat): add ClawHub compatibility layer 2026-03-12 19:20:02 +08:00
vsxd
ddb940d5d5 feat(web): add review center, social features, and device auth page 2026-03-12 19:12:50 +08:00
vsxd
fae775eb97 fix(test): provide mock RedisTemplate for test context
- Add TestRedisConfig with mock RedisTemplate bean
- Restore DeviceAuthService as normal @Service (no conditional)
- Restore controllers as normal @RestController (no conditional)
- Remove DeviceAuthConfig and DeviceAuthWebConfig (not needed)
- All 179 tests pass
2026-03-12 19:08:25 +08:00
vsxd
55ab9d8bff docs: update README.md 2026-03-12 18:33:31 +08:00
vsxd
27c47d1f67 docs: rewrite README with product focus, enterprise positioning, and architecture diagram 2026-03-12 18:29:53 +08:00
vsxd
5cc595b0ff feat(cli): add skill package check endpoint 2026-03-12 18:26:50 +08:00
vsxd
f47377cff1 feat(cli): add Device Auth controllers 2026-03-12 18:19:03 +08:00
vsxd
9a4d64b11b feat(cli): implement DeviceAuthService with Redis storage 2026-03-12 18:13:46 +08:00
vsxd
37fd831ce7 feat(cli): add Device Flow data models 2026-03-12 18:11:13 +08:00
vsxd
dd4f8d8abe feat(social): add SkillStar and SkillRating controllers 2026-03-12 18:06:03 +08:00
vsxd
7af86eed21 docs: add project README with quickstart and structure overview 2026-03-12 17:50:34 +08:00
vsxd
dbb6d9f39e feat(ops): improve Dockerfile caching, add dockerignore, docker profile, Makefile help
- Server Dockerfile: add Maven dependency caching layer for faster rebuilds
- Add .dockerignore for server and web to reduce build context
- Add docker profile to application.yml for container env var mapping
- Makefile: add help, logs, db-reset targets with ## annotations
2026-03-12 17:50:34 +08:00
vsxd
c6fd3c02f6 feat(web): update API client, hooks, and pages for Phase 2-3 2026-03-12 17:48:17 +08:00
vsxd
b520689130 feat(app): update controllers, DTOs, config, rate limiting, and add new components
- Add BaseApiController, MeController, AuthContextFilter
- Add standardized ApiResponse/ApiResponseFactory/PageResponse DTOs
- Add i18n messages (en/zh)
- Replace SlidingWindowRateLimiter with RateLimiter interface + Redis/InMemory impls
- Add localized exception handling
- Update application.yml with messages config
- Update Flyway migrations V1-V3
- Add SkillController and SkillSearchController tests
2026-03-12 17:47:58 +08:00
vsxd
6df55e3768 feat(infra): update JPA repository implementations 2026-03-12 17:47:37 +08:00
vsxd
db0d86ea08 feat(search): update search documents and query services 2026-03-12 17:47:18 +08:00
vsxd
d44f9415fe feat(auth): update security config, auth entities, and token services 2026-03-12 17:47:08 +08:00
vsxd
cfcdb545f0 feat(domain): update entities, services, repositories, and add shared exceptions 2026-03-12 17:46:48 +08:00
vsxd
9d7282221c docs: update specs, plans, and design documents for Phase 2-4 2026-03-12 17:46:41 +08:00
vsxd
b7a798914a chore: add Eclipse project files to gitignore 2026-03-12 17:45:28 +08:00
vsxd
217ed7e918 feat(social): add SkillStarService and SkillRatingService with events 2026-03-12 17:36:42 +08:00
vsxd
ae24a18e64 feat(social): add SkillStar and SkillRating entities and repositories 2026-03-12 17:19:50 +08:00
vsxd
8b17f2c55b feat(review): add ReviewController and PromotionController REST APIs
- Add review DTOs: ReviewTaskRequest, ReviewTaskResponse, ReviewActionRequest
- Add promotion DTOs: PromotionRequestDto, PromotionResponseDto, PromotionActionRequest
- Add ReviewController with submit/approve/reject/withdraw/list endpoints
- Add PromotionController with submit/approve/reject/list endpoints
- Follow existing BaseApiController + ApiResponse pattern
2026-03-12 16:41:32 +08:00
vsxd
6acdfe3c91 fix(docs): address spec review findings for Phase 4 design
- Remove auth_method field reference, use local_credential existence
- Unify merge API path to /api/v1/auth/merge/*
- Add missing /.well-known/ proxy in Nginx and K8s Ingress
- Fix SeedDataRunner missing field declarations
- Remove login failure attempt count from error response
- Sync delivery roadmap Phase 4/5 scope with spec
2026-03-12 16:04:59 +08:00
vsxd
44dece6f6d docs: add Phase 4 design spec - ops polish + open source readiness
Comprehensive design covering local auth, multi-account merge, skill
governance, audit log query, Prometheus metrics, performance optimization,
security hardening, Docker one-click startup, K8s deployment, and open
source infrastructure.
2026-03-12 15:55:27 +08:00
vsxd
51fa37a9c5 feat(review): implement PromotionService
- Add submitPromotion with duplicate check and validation
- Add approvePromotion with optimistic locking and skill copying
- Add rejectPromotion with reason recording
2026-03-12 15:52:54 +08:00
vsxd
bffc36b815 feat(review): implement ReviewService
- Add submitReview with duplicate check via partial unique index
- Add approveReview with optimistic locking and event publishing
- Add rejectReview with reason recording
- Add withdrawReview with PENDING status check
2026-03-12 15:42:21 +08:00
vsxd
644b3efd44 feat(review): add ReviewPermissionChecker with tests
- canReview: self-review blocked, GLOBAL requires SKILL_ADMIN/SUPER_ADMIN,
  TEAM requires namespace ADMIN/OWNER
- canReviewPromotion: self-review blocked, requires SKILL_ADMIN/SUPER_ADMIN
- NamespaceType passed as parameter to avoid internal repository lookup
- 12 unit tests covering all permission scenarios
2026-03-12 15:24:51 +08:00
vsxd
3ebdc2691d feat(repo): add review repositories
- Add ReviewTaskRepository with optimistic lock update
- Add PromotionRequestRepository
- Implement JPA repositories in infra module
2026-03-12 15:17:11 +08:00