skillhub/web/src/app
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
..
layout-header-style.ts feat(web): refine app shell layout polish 2026-03-19 17:32:27 +08:00
layout-main-content.ts feat(web): refine app shell layout polish 2026-03-19 17:32:27 +08:00
layout.tsx feat(web): refine app shell layout polish 2026-03-19 17:32:27 +08:00
page-shell-style.ts feat(web): refine app shell layout polish 2026-03-19 17:32:27 +08:00
providers.tsx docs: enrich frontend code documentation 2026-03-19 13:37:21 +08:00
router.tsx fea: implement skill label system end to end (#140) 2026-03-20 15:26:41 +08:00