Commit graph

31 commits

Author SHA1 Message Date
vsxd
54b165e188 fix(label): harden validation and batched search sync 2026-03-20 16:10:38 +08:00
Xudong Sun
21ba6ee938 fea: implement skill label system end to end (#140)
* docs(label): add skill label system design spec

Covers data model, permission model, search integration,
API design, and frontend design for the label system.

* docs(label): address spec review findings

- Add CHECK constraint on label_definition.type, deny-by-default in app layer
- Use TIMESTAMPTZ consistently for all new tables
- Add (label_id) index on skill_label for filter performance
- Add label count limits (10 per skill, 100 definitions)
- Detail async rebuild strategy (Spring @Async, batch 50, error isolation)
- Clarify search_vector is GENERATED STORED column, auto-maintained
- Expand SearchQuery with labelSlugs field, detail SQL changes
- Define all API response JSON structures
- Clarify PUT update: no slug in body, full-replace translations
- Clarify hard delete with audit_log
- Add cross-namespace permission boundary (promotion scenario)
- Pre-reserve multi-label API param for future
- Clarify ClawHub compat layer: no label support in phase 1

* docs(label): address second-round spec review findings

- Fix chapter numbering (duplicate "6." → "6." + "7.")
- Move labelSlugs to end of SearchQuery record to reduce breaking change
- Add TIMESTAMPTZ convention note for new tables
- Clarify async rebuild transaction boundary (per-skill independent tx)
- Move rebuildByLabelId to app layer to preserve module boundaries
- Clarify multi-label filter uses OR semantics with AND extension path

* docs(label): fix section numbering in frontend design chapter

* Implement skill label system end to end

* Unify label app services and DTOs

* Add admin label management page

* Add label admin backend tests

* Fix merge fallout in generated schema
2026-03-20 15:26:41 +08:00
vsxd
ef7332d520 refactor(app): clarify query boundaries and workflow owners 2026-03-20 11:33:32 +08:00
vsxd
9bad6a38e2 chore(release): v0.1.0 2026-03-19 20:25:18 +08:00
vsxd
b9551dcb6e fix(search): keep Chinese summaries searchable 2026-03-19 18:49:30 +08:00
vsxd
b657a53f37 fix(search): tighten index field boundaries and storage 2026-03-19 18:31:10 +08:00
vsxd
a7f8b0afcf fix(search): expand keyword storage for rebuild safety 2026-03-19 18:31:10 +08:00
vsxd
8c23102e0f fix(search): harden rebuild against null frontmatter values 2026-03-19 18:13:01 +08:00
vsxd
aa8f7afc8b test(search): cover latest-version reindex flow 2026-03-19 17:39:38 +08:00
vsxd
b10a9f76db feat(search): improve Chinese PostgreSQL full-text search 2026-03-19 17:39:38 +08:00
vsxd
b168749ceb fix: optimize skill search listing performance 2026-03-19 16:56:37 +08:00
vsxd
024e66d747 feat: add search index rebuild workflow 2026-03-19 15:20:08 +08:00
vsxd
8ef53d0fdd docs: enrich backend code documentation 2026-03-19 13:37:21 +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
yun-zhi-ztl
ad43fd5a78 fix: allow downloads sort for numeric search terms 2026-03-17 17:10:50 +08:00
yun-zhi-ztl
ce982c9992 Merge remote-tracking branch 'origin/main' into feature/project-fixbug 2026-03-17 14:20:41 +08:00
vsxd
033ac54c76 chore: unify build and test entrypoints 2026-03-17 14:09:22 +08:00
yun-zhi-ztl
a888561e53 fix: handle numeric skill search queries 2026-03-17 11:10:05 +08:00
yun-zhi-ztl
c552829367 fix(skill): tighten lifecycle detail and search paging 2026-03-15 17:19:05 +08:00
yun-zhi-ztl
090cb156ac tune(search): improve semantic reranking quality 2026-03-15 17:09:46 +08:00
yun-zhi-ztl
3a5e8d711e feat(search): add semantic reranking foundation 2026-03-15 17:07:48 +08:00
yun-zhi-ztl
091a5fe190 fix(search): improve short skill query matching 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
1aefa365a7 fix(search): reduce noisy matches for short prefixes 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
cc11f2f023 fix(search): unify prefix vector search behavior 2026-03-15 14:20:07 +08:00
yun-zhi-ztl
df850d1f63 fix(search): support short skill queries 2026-03-14 19:30:15 +08:00
vsxd
14d86c290a chore(release): v0.1.0-beta.7 2026-03-13 16:05:08 +08:00
vsxd
62d9d88546 chore(release): cut v0.1.0-beta.2 2026-03-13 10:13:50 +08:00
vsxd
db0d86ea08 feat(search): update search documents and query services 2026-03-12 17:47:18 +08:00
vsxd
1db4ec1e78 feat: add skill controllers, search, async events, rate limiting, and config 2026-03-12 02:36:59 +08:00
vsxd
edfff6abc7 feat: complete Chunk 1 - backend skeleton and infrastructure
- 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
2026-03-11 23:35:47 +08:00
vsxd
27b7a4dad1 feat: project ini and docs updates 2026-03-11 22:47:05 +08:00