dongmucat
f5a58616b7
fix(suite): support bundle import over plain HTTP ( #890 )
...
Signed-off-by: dongmucat <1127093059@qq.com>
2026-09-21 14:14:23 +08:00
dongmucat
342d59472d
feat(frontend): render mermaid markdown diagrams ( #892 )
...
* feat(frontend): render mermaid markdown diagrams
Signed-off-by: dongmucat <1127093059@qq.com>
* fix(frontend): clean up failed mermaid renders
Signed-off-by: dongmucat <1127093059@qq.com>
---------
Signed-off-by: dongmucat <1127093059@qq.com>
2026-09-21 14:08:41 +08:00
XiaoSeS
95d3d6a1df
fix(web): improve suite markdown code block contrast and member list truncation tooltips ( #873 )
...
Made with [Proma](https://proma.cool ) · [GitHub](https://github.com/proma-ai/Proma )
2026-09-17 18:19:00 +08:00
XiaoSeS
b4779735bd
feat(suite): publish suites from multi-skill bundles
2026-09-17 11:16:39 +08:00
XiaoSeS
496e60e08a
Merge remote-tracking branch 'origin/main' into feature/skill-suites-signed-final
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
# Conflicts:
# web/src/app/router.tsx
# web/src/pages/search.tsx
2026-09-09 18:47:31 +08:00
XiaoSeS
beecc34b88
feat(web): unify landing, dashboard, and paginated lists ( #825 )
...
* feat(web): unify landing and dashboard experience
Closes #824
Made-with: Proma
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): clamp skill card summaries
Keep skill grids compact by reserving a stable three-line summary region while exposing the full description via the title attribute.
Made-with: Proma
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(web): align e2e with redesigned experience
Update real-service E2E assertions for the current landing and dashboard flows, and make settings card headings distinct from their page headings.
Made-with: Proma
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* Revert "test(web): align e2e with redesigned experience"
This reverts commit 3f78115277 .
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): align dashboard layout footer spacing
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): restore footer access links
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): link footer API to Swagger UI
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): refine footer resource links
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): link landing CTA to open source resources
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(frontend): restore responsive navigation contracts
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): wrap narrow search controls
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(web): derive landing guide origin
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): remove landing statistics strip
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(web): align landing guide assertion
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): address follow-up review feedback
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): update landing CLI version
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
---------
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-09 18:31:18 +08:00
XiaoSeS
ce4590c50f
Merge remote-tracking branch 'origin/main' into feature/skill-suites-signed-final
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-09 18:23:05 +08:00
XiaoSeS
8c0b853023
fix(suite): close rollout and concurrency gaps
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-09 13:54:59 +08:00
XiaoSeS
0ae50f30d7
feat(skill): add first-party SkillHub CLI guide
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-09 09:24:21 +08:00
XiaoSeS
859987e3bb
feat(suite): add first-class skill suites
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-08 19:30:57 +08:00
XiaoSeS
5c5634dd22
fix(governance): restore hidden skill management
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-08 11:15:04 +08:00
XiaoSeS
613d449d38
feat(skill): complete install-for-agent workflow
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-04 11:23:03 +08:00
XiaoSeS
d0d43bbf45
Merge remote-tracking branch 'origin/main' into codex/maintain-pr788-20260904
...
# Conflicts:
# web/src/pages/skill-detail.tsx
2026-09-04 09:48:00 +08:00
XiaoSeS
1b7e679d45
fix(security): include csrf token in scan retry
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-03 19:46:13 +08:00
XiaoSeS
697bb952a4
fix(security): harden scan retry lifecycle
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-03 19:45:44 +08:00
XiaoSeS
680a5d1b94
feat(security): retry failed scans
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-03 19:45:16 +08:00
XiaoSeS
8b09c23dc4
fix(scanner): make terminal failures recoverable
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-03 19:32:37 +08:00
XiaoSeS
4d71a16ddd
fix(notification): complete polling migration
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-03 11:38:02 +08:00
XiaoSeS
efa3c1ae65
refactor(notification): replace SSE with HTTP polling
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-03 11:38:02 +08:00
XiaoSeS
fc7c59534a
fix(platform): harden sessions, scanner recovery, and CLI guidance ( #801 )
...
* fix(auth): recover from unreadable sessions
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(scanner): defer unavailable scan tasks safely
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(web): prefer the SkillHub CLI install command
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(auth): decode session cookies during recovery
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(runtime): address scanner and session review findings
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(scanner): defer all server-side outages
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* docs(scanner): clarify deferred failure semantics
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(scanner): cover recovery boundaries
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(scanner): register startup hook on router
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(e2e): align install defaults and reuse auth session
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
---------
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-02 20:15:42 +08:00
XiaoSeS
45d341f144
feat(review): add skill comments and user feedback ( #793 )
...
* feat(review): add skill review domain model
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* feat(review): expose skill reviews in API and UI
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): preserve moderation under concurrent edits
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): scope concurrent write conflicts
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): restore web build compatibility
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): keep author cleanup available
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): preserve author cleanup access
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): require review score contract
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(review): strengthen failure and concurrency coverage
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(review): tighten persistence assertions
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(review): disambiguate repository ports
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): enable request validation
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(review): align validation and postgres coverage
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(namespace): verify invalid batch has no side effects
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(web): align accessibility and plural assertions
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* test(i18n): require complete plural references
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): wrap editor actions on mobile
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): wrap long mobile labels
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): disable edits for archived skills
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
* fix(review): enforce archived mutation guard
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
---------
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-02 11:15:52 +08:00
XiaoSeS
3e77365a5d
fix(review): complete progress history workflow
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-01 17:53:41 +08:00
XiaoSeS
b8b0fba3d4
fix(theme): polish dark notification states
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-01 17:53:41 +08:00
XiaoSeS
7995c00683
feat(review): add author review progress and attempt history
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-01 17:53:41 +08:00
XiaoSeS
ebac94a043
feat(theme): add browser-local light and dark mode
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-09-01 17:53:41 +08:00
FenjuFu
769b03ee39
feat(skill): add install-for-agent prompt
...
Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>
2026-09-01 13:48:31 +08:00
FenjuFu
817426c50f
fix(promotion): paginate review queues
...
Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>
2026-08-28 23:29:58 +08:00
wurongjie
f43c047a6b
feat(skill-card): show author and update time in skill card
...
Add ownerId and ownerDisplayName fields to SkillSummaryResponse,
and render author and last update time at the bottom of each skill card.
在技能卡片底部新增作者和最近更新时间显示,搜索结果接口新增
ownerId 和 ownerDisplayName 字段。
Log: 技能卡片新增作者和更新时间
Influence: 搜索结果页技能卡片底部显示作者和更新时间信息,接口新增 ownerId/ownerDisplayName 字段。
Signed-off-by: wurongjie <wurongjie@uniontech.com>
2026-08-27 17:21:15 +08:00
Michael
16306dd4f4
feat(i18n): add Russian locale for web UI and server messages ( #700 )
...
Signed-off-by: Mikhail Neradkov <michael.neradkov@gmail.com>
2026-08-26 19:43:07 +08:00
FenjuFu
3b5d4381a9
feat(publish): allow uploading a skill folder directly
...
Fix E2E ZIP picker selector after adding folder upload input.
2026-08-26 17:37:21 +08:00
XiaoSeS
243e9b68f4
fix(auth): prevent login page redirect loop
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-08-26 15:46:20 +08:00
XiaoSeS
d2403bb591
feat(namespace): add admin namespace management
...
Security / Dependency Review (push) Has been cancelled
Security / CodeQL (java-kotlin) (push) Has been cancelled
Security / CodeQL (javascript-typescript) (push) Has been cancelled
Security / CodeQL (python) (push) Has been cancelled
Closes #580
2026-08-12 12:39:24 +08:00
XiaoSeS
2fe7514a4e
feat(review): show compliance declaration diffs ( #703 )
2026-08-11 10:44:11 +08:00
XiaoSeS
1dfe3756a9
feat(search): refine compliance discovery interactions
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-08-10 10:42:19 +08:00
XiaoSeS
00f55c2db3
feat(search): surface compliance mappings in discovery
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-08-07 16:37:07 +08:00
XiaoSeS
a7b25b072b
feat(metadata): expose compliance snapshots in version views
...
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-08-07 15:46:06 +08:00
philsun
34f244e7a4
feat(web): support configurable base-path deployment
...
Signed-off-by: philsun <xinyi.sun@daocloud.io>
2026-08-05 12:50:26 +08:00
Michael
a063090a52
fix(web): stop React 19 portal removeChild/insertBefore crashes ( #624 )
...
* fix(web): replace custom Dialog with Radix to stop portal races
Hand-rolled createPortal siblings on document.body raced with Radix
Select/DropdownMenu/Sonner under React 19 (insertBefore/removeChild).
Use @radix-ui/react-dialog like select/dropdown adapters and bail out
overview ResizeObserver setState when values are unchanged.
Signed-off-by: Mikhail Neradkov <michael.neradkov@gmail.com>
* fix(web): stop portal removeChild races on search and shell
Move Radix portals to #skillhub-portals, drop language-switcher body
portal (match UserMenu), remove Select/Dropdown exit animations, and keep
previous search results while typing to avoid skeleton unmount churn.
Signed-off-by: Mikhail Neradkov <michael.neradkov@gmail.com>
* fix(web): systemic overlay teardown for React 19 removeChild
Render Select/Dropdown in-tree (no Portal), translate=no on overlays,
dismiss overlays on pathname change, defer navigate after close, host
Toaster in #skillhub-portals, and add recoverable RouteError UI.
Signed-off-by: Mikhail Neradkov <michael.neradkov@gmail.com>
* fix(web): harden overlay dismiss after code review
Clip decorative layer only, dismiss Dialog via overlay pointer events,
log RouteError once in useEffect, and defer skill-detail leave navigations.
Signed-off-by: Mikhail Neradkov <michael.neradkov@gmail.com>
* fix(web): batch starred highlight and defer Sonner toasts
Avoid N× per-card star fetches on /search and flushSync toast races
during React 19 list re-renders (removeChild / insertBefore).
Signed-off-by: Mikhail Neradkov <michael.neradkov@gmail.com>
* fix(web): block Chrome Translate DOM races on skill overview
Keep html/#root notranslate, sync lang with i18n, and harden overview
expand so memoized markdown + quiet ResizeObserver avoid insertBefore crashes.
Signed-off-by: Mikhail Neradkov <michael.neradkov@gmail.com>
---------
Signed-off-by: Mikhail Neradkov <michael.neradkov@gmail.com>
2026-08-04 13:59:37 +08:00
dongmucat
0134da73b5
fix(frontend): support nested preview links
...
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-24 16:51:42 +08:00
dongmucat
e501be9cf8
feat(promotion): improve promotion review dashboard
...
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-24 09:28:43 +08:00
dongmucat
d58c934d64
Merge pull request #482 from iflytek/feature/namespace-search-download
...
feat(skill): add namespace search and bundle download
2026-06-10 20:10:32 +08:00
dongmucat
201e636858
test(web): add namespace search-only regression
...
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-10 19:48:16 +08:00
dongmucat
6779c1eecd
feat(web): preview relative markdown package links ( #502 )
...
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-10 16:31:22 +08:00
dongmucat
6dc62ddfb8
feat(web): add install method tabs ( #496 )
...
* feat(web): add install method tabs
Signed-off-by: dongmucat <1127093059@qq.com>
* test(web): stabilize real service e2e checks
Signed-off-by: dongmucat <1127093059@qq.com>
* style(web): simplify install tab indicator
Signed-off-by: dongmucat <1127093059@qq.com>
---------
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-05 17:27:34 +08:00
dongmucat
ab06c75737
Merge branch 'main' into fix/namespace-management-gaps
...
Resolved conflicts by keeping both sides:
- web/src/api/client.ts: preserve paginated listMembers(slug, {page,size})
and add delete(slug) from main.
- web/src/shared/hooks/use-namespace-queries.ts: keep useUpdateNamespace
and useTransferNamespaceOwnership from this branch, plus useDeleteNamespace
from main.
2026-05-09 15:13:44 +08:00
dongmucat
9b64cbedba
feat(namespace): add edit/transfer UI with pagination support
...
Add namespace edit dialog, transfer ownership dialog, and member list pagination. Update API layer to support pagination (PagedResponse), add useUpdateNamespace and useTransferNamespaceOwnership hooks with pagination-aware optimistic updates. Integrate edit button in NamespaceHeader and transfer button on members page. Add i18n keys for all new features (en + zh).
2026-05-09 14:22:16 +08:00
dongmucat
8dd1668555
fix(namespace): support team namespace deletion
2026-05-08 10:15:17 +08:00
dongmucat
f41723e0dc
Merge pull request #356 from iflytek/feature/skill-subscription-notification
...
feat(subscription): add skill subscription notification feature
2026-04-29 15:20:40 +08:00
dongmucat
a2adec2b06
fix(subscription): improve button spacing and eliminate toggle flicker
...
- Add visual separator between StarButton and SubscribeButton
- Use optimistic updates in useToggleSubscription for instant feedback
- Remove isLoading guard that caused button to unmount during refetch
2026-04-29 14:47:17 +08:00
dongmucat
284b0992af
test(subscription): add frontend unit and e2e tests
2026-04-29 09:52:54 +08:00