Commit graph

1145 commits

Author SHA1 Message Date
dongmucat
8163a48e9e docs(auth): align Bearer-only response contract (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 13:52:42 +08:00
dongmucat
726eeac8b2 test(auth): cover token replay and private search (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 13:52:26 +08:00
FenjuFu
e5f0cc140a
docs(faq): add community-sourced deployment and operations Q&A (#593)
* docs(faq): add community-sourced deployment and operations Q&A

Adds entries collected from real user-support threads to the reference FAQ
(both zh and en):

- 502 on auth APIs while the page loads, traced to server startup failure
  on the SKILLHUB_DOWNLOAD_ANON_COOKIE_SECRET placeholder guard
- config changes not taking effect (.env.release.example vs .env.release,
  restart vs recreate)
- built-in skill sync failure in offline environments
- upgrade path with Flyway auto-migration and volume retention
- external dependencies and the lack of MySQL support
- granting SUPER_ADMIN to an OAuth account via the bootstrap admin
- telling CLI and server versions apart
- installing skills into a target directory on an intranet

Signed-off-by: FenjuFu <fufenjupku@gmail.com>

* docs(faq): move entries to the published docs source and fix inaccuracies

Move the new FAQ entries from document/ (a generated tree that the docs
build does not read) to docs/skillhub/, which is what make docs-build and
the Pages deploy actually publish.

Also address review feedback:
- drop the SKILLHUB_BUILTIN_SKILLS_ENABLED tip; compose.release.yml does
  not pass that variable through, so setting it has no effect
- correct the dependency list: object storage defaults to local, S3 is
  recommended for production
- soften the 502 wording, since upstream/DNS/network can also cause it
- state the 32-character minimum for the cookie secret
- give a real bulk-install example and qualify v0.2.12 as a server version
- drop entries already covered by existing upgrade/MySQL/version questions

Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>

* docs(faq): correct deployment and admin guidance

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>

* docs(faq): fix remaining recreate guidance

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>

* docs(faq): clarify bulk install paths

Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>

---------

Signed-off-by: FenjuFu <fufenjupku@gmail.com>
Signed-off-by: FenjuFu <92919259+FenjuFu@users.noreply.github.com>
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
Co-authored-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
2026-07-28 13:49:38 +08:00
dongmucat
5805e0f1d3 docs(auth): document CLI token failure semantics (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 12:55:35 +08:00
dongmucat
06cecd4237 test(auth): cover restricted CLI read authorization (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 12:51:09 +08:00
dongmucat
52843c8020 fix(test): assert CLI download media type (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 12:16:28 +08:00
dongmucat
83b621880e test(auth): cover persisted CLI token states (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 12:03:24 +08:00
dongmucat
e5b8439678 docs(auth): plan revoked token regression coverage (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 11:37:07 +08:00
dongmucat
6567c19664 docs(auth): tighten runtime validation gates (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 11:20:08 +08:00
dongmucat
03085f19b5 docs(auth): define revoked token validation design (#605)
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-28 11:08:37 +08:00
FenjuFu
8dd0598acb docs(readme): add star/watch buttons and guidance to first screen
The badge row had no star or watch affordance. Adds social-style badges and a
one-line note under the intro explaining why starring matters and how to watch
releases only, in both language versions.
2026-07-23 10:07:57 +08:00
FenjuFu
5b9fc16277 docs(readme): add star/watch buttons and guidance to first screen
The badge row had no star or watch affordance. Adds social-style badges and a
one-line note under the intro explaining why starring matters and how to watch
releases only, in both language versions.
2026-07-23 10:07:52 +08:00
FenjuFu
3d6c7db040 docs(integrations): add HarnessClaw Engine skill guide
HarnessClaw Engine loads skills from SKILL.md files with YAML frontmatter
and parameter substitution, so SkillHub packages install into it directly
via the CLI --dir option, the same way Hermes Agent does.

Signed-off-by: FenjuFu <fufenjupku@gmail.com>
2026-07-22 23:15:57 +08:00
FenjuFu
55a739a1bf docs(integrations): add HarnessClaw Engine skill guide
HarnessClaw Engine loads skills from SKILL.md files with YAML frontmatter
and parameter substitution, so SkillHub packages install into it directly
via the CLI --dir option, the same way Hermes Agent does.

Signed-off-by: FenjuFu <fufenjupku@gmail.com>
2026-07-22 23:15:52 +08:00
shychee
de033da537 fix(search): make index writes REQUIRES_NEW to survive async caller-runs fallback
The @Async rebuildSkill fix relied on a fresh thread giving a clean
transaction boundary. But skillhubEventExecutor uses CallerRunsPolicy:
under saturation the rejected task runs on the caller (request) thread,
back inside the afterCommit synchronization phase — the original failure
context where the @Transactional index write is silently dropped.

Mark SearchIndexService.index as REQUIRES_NEW so it always suspends any
lingering post-commit synchronization and commits in its own transaction,
independent of whether the async dispatch actually happened.

Add regression tests: detach removes the label keyword, and a synchronous
rebuild inside the afterCommit phase still persists the document (fails
without REQUIRES_NEW).

Signed-off-by: shychee <shychee96@gmail.com>
2026-07-22 18:54:38 +08:00
shychee
74bad000e3 fix(search): rebuild search index asynchronously after label change
Attaching or detaching a skill label triggers a search index rebuild via
an afterCommit callback. Because LabelSearchSyncService.rebuildSkill ran
synchronously on the request thread, the @Transactional index write
executed inside the already-committed transaction-synchronization phase
and was silently dropped -- the search document was never written, so
label keywords never became searchable.

Move rebuildSkill onto the skillhubEventExecutor with @Async (matching the
existing rebuildSkills batch path) so the rebuild runs on a fresh thread
and transaction. Add an integration test that fails on the old synchronous
path and passes with the async fix.

Signed-off-by: shychee <shychee96@gmail.com>
2026-07-22 18:38:00 +08:00
dongmucat
ac46ad5391
Merge pull request #595 from iflytek/release/cli-v0.1.9
Some checks failed
Deploy Docs / build (push) Has been cancelled
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
Deploy Docs / Deploy (push) Has been cancelled
chore(cli): release 0.1.9
2026-07-22 17:43:58 +08:00
dongmucat
6ee746d371 chore(cli): bump version to 0.1.9
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-22 17:35:05 +08:00
dongmucat
982258d032
Merge pull request #585 from betterlmy/agent/generic-user-install-target
feat(cli): add generic user-level install target
2026-07-22 17:20:14 +08:00
dongmucat
9af4d391f3
docs(integrations): add Hermes Agent skill guide (#584)
* docs(integrations): add Hermes skill guide

Signed-off-by: dongmucat <1127093059@qq.com>

* docs(integrations): clarify Hermes skill collision handling

Signed-off-by: dongmucat <1127093059@qq.com>

---------

Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-22 15:01:50 +08:00
dongmucat
ba03a42d65
Merge pull request #591 from iflytek/fix/scanner-litellm-pin
fix(scanner): pin LiteLLM for Alpine builds
2026-07-22 14:14:52 +08:00
dongmucat
d8486cfb58 fix(scanner): pin LiteLLM for Alpine builds
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-21 15:24:49 +08:00
jangrui
fef740b810 fix(ci): 去掉 kubeconform schema-location 的内层单引号
单引号被当作字面字符传入,导致 cert-manager Certificate 校验报
"first path segment in URL cannot contain colon"。去掉后本地验证
Errors:1 → 0。
2026-07-21 00:24:26 +08:00
Jangrui
512fc1be00
Merge pull request #1 from LHB6540/fix/pr445-followup-for-author
fix(helm): 接续完善 #445 的依赖、GitOps 与 Ingress 配置
2026-07-21 00:19:04 +08:00
lhb6540
f3dbb57a80 fix(helm): 修正 CI 渲染与 PostgreSQL 管理员密码引用
同步 Helm CI matrix 与当前 values schema 和确定性凭据策略。

- 所有 CI 渲染加载测试凭据并迁移 Ingress TLS 数组配置
- PostgreSQL 使用 postgres 用户时引用管理员密码 key
- 增加内置 Secret 和 existingSecret 的管理员用户契约测试

Signed-off-by: lhb6540 <lhb6540@gmail.com>
2026-07-20 11:36:04 +08:00
betterlmy
f519b08a73 fix(cli): preflight canonical install targets
Signed-off-by: betterlmy <betterlmy@icloud.com>
2026-07-17 17:20:22 +08:00
betterlmy
8b84201516 feat: add generic user-level agent install target
Signed-off-by: betterlmy <betterlmy@icloud.com>
2026-07-17 11:39:29 +08:00
dongmucat
2e4a69d590
Merge pull request #529 from FenjuFu/faq/add-community-qa
Some checks failed
Deploy Docs / build (push) Has been cancelled
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
Deploy Docs / Deploy (push) Has been cancelled
docs(faq): supplement FAQ (zh & en) with community-sourced Q&A
2026-07-17 10:35:29 +08:00
lhb6540
9978d82cb1 fix(helm): 修正 Server PVC 权限与 RWO 升级策略
本地 PVC 会覆盖 Server 镜像内预先设置的目录所有者,导致非 root app 用户无法写入技能文件。

- 为 Server Pod 增加可覆盖的 fsGroup,默认匹配 v0.2.13 镜像的 app 组 101
- 本地 ReadWriteOnce 存储自动使用 Recreate,避免滚动升级时新旧 Pod 抢占卷
- ReadWriteMany 与 S3 部署继续使用 RollingUpdate
- 补充 values schema、配置契约测试和运维文档

Signed-off-by: lhb6540 <lhb6540@gmail.com>
2026-07-16 20:04:35 +08:00
lhb6540
5d379dcaaf fix(helm): 修正组件启停与依赖配置并增加 values 校验
在配置进入 Kubernetes 前完成父 Chart 校验,并补齐剩余的依赖配置契约。

- 让 Service、HPA 和 PDB 正确遵循组件启用状态
- 校验 Ingress、自动扩缩容、外部依赖和共享存储的组合配置
- 增加 values.schema.json 和 Helm 配置契约测试并接入 CI
- 统一 PostgreSQL Primary 与 Read Replica 的 max_connections 配置
- 修正 Redis Sentinel 节点、依赖等待和独立密码配置
- 允许覆盖依赖等待容器镜像,支持完整私有镜像仓库部署
- 兼容现代与旧式 IngressClass,并支持多域名 TLS 和证书 SAN
- 增加 GitOps 稳定 Secret 模式,阻止离线渲染产生随机凭据漂移
- 引用用户可控的 ConfigMap 字符串,并推导 TLS 安全 Cookie 和设备认证默认值
- 补充 Sentinel、RWX 存储、TLS Cookie、PVC 保留、私有镜像和 GitOps 文档
- 增加 Redis 数据密码与 Sentinel 密码分离的应用配置测试

已通过 Helm 严格 lint、渲染场景、配置契约测试、kubeconform、后端测试套件和 Sentinel 专项配置测试。

Signed-off-by: lhb6540 <lhb6540@gmail.com>
2026-07-15 17:19:24 +08:00
lhb6540
3b3905be63 fix(helm): 修正 Bitnami 依赖连线并同步应用配置
基于当前 SkillHub 运行时契约和 Bitnami 依赖命名,更新原贡献者提交的 Helm Chart 配置。

- 将 Server 正确连接到实际的 PostgreSQL 和 Redis Service 与 Secret
- 支持依赖组件的 existingSecret 名称和自定义密码 key,避免安装时 lookup
- 同步 S3、匿名下载、Scanner LLM、公开地址、设备认证和直接认证配置
- 将应用版本和 Chart 版本对齐当前发布版本
- 收紧 Chart 发布触发条件和手动版本选择逻辑
- 增加依赖 Service、Secret 和密码 key 的 CI 语义断言

已通过 Helm lint、九组渲染场景、kubeconform、工作流安全检查和后端应用测试套件。

Signed-off-by: lhb6540 <lhb6540@gmail.com>
2026-07-15 17:19:15 +08:00
dongmucat
e32f05b375
Merge pull request #568 from iflytek/fix/admin-super-admin-role-guard
Some checks failed
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
fix(auth): guard SUPER_ADMIN role mutations
2026-07-02 13:53:32 +08:00
dongmucat
3a254d7524 fix(auth): guard SUPER_ADMIN role mutations
Signed-off-by: dongmucat <1127093059@qq.com>
2026-07-01 16:23:45 +08:00
dongmucat
06cc523a0c
Merge pull request #557 from iflytek/fix/relative-link-nested-preview
Some checks failed
Security / Dependency Review (push) Has been cancelled
Deploy Docs / build (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
Deploy Docs / Deploy (push) Has been cancelled
fix(frontend): support nested preview links
2026-06-30 17:29:08 +08:00
dongmucat
f7cc6e758f
Merge pull request #565 from iflytek/fix/scanner-llm-base-url
Fix scanner local LLM base URL handling
2026-06-30 15:25:03 +08:00
dongmucat
f43c8fcbee
Merge pull request #567 from iflytek/fix/dependabot-open-alerts-dco
fix(frontend): patch undici dependabot alerts
2026-06-30 14:40:42 +08:00
dongmucat
85332a2237 chore(staging): keep dependabot fix scoped
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-30 14:04:08 +08:00
dongmucat
db8aa36f89 fix(frontend): patch undici alerts and harden staging web
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-30 10:58:05 +08:00
dongmucat
bf7c71ad2c fix(scanner): backport local LLM base URL handling for #563
Also add Python CodeQL coverage in the security workflow so repository-level script regression checks stay green when Python source exists.

Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-29 14:34:55 +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
8413ee3950
Merge pull request #554 from iflytek/fix/auth-password-settings
Some checks failed
Security / Dependency Review (push) Has been cancelled
Security / CodeQL (java-kotlin) (push) Has been cancelled
Security / CodeQL (javascript-typescript) (push) Has been cancelled
fix(auth): restore password settings access
2026-06-24 10:50:26 +08:00
dongmucat
c25f950841
Merge pull request #555 from iflytek/feature/promotion-review-optimization
feat(promotion): improve promotion review dashboard
2026-06-24 10:36:46 +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
636f1edac2 docs(auth): align auth me example with #541
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-23 13:54:33 +08:00
dongmucat
f61ce71daa test(web): ISSUE-61 cover security settings real requests
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-22 17:22:19 +08:00
dongmucat
9f927c12b0 fix(PR): default deny security password changes
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-22 14:22:25 +08:00
dongmucat
54006e72a4 fix(web): ISSUE-62 gate security settings by capability
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-22 14:00:53 +08:00
dongmucat
665ee0499a feat(auth): add ISSUE-60 password capability field
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-22 12:40:01 +08:00
dongmucat
dc185861d4
Merge pull request #542 from iflytek/release/cli-v0.1.8
Some checks failed
Security / Dependency Review (push) Has been cancelled
Security / CodeQL (java-kotlin) (push) Has been cancelled
Security / CodeQL (javascript-typescript) (push) Has been cancelled
chore(cli): release 0.1.8
2026-06-18 15:56:27 +08:00
dongmucat
78b8b34ed1 chore(cli): bump version to 0.1.8
Signed-off-by: dongmucat <1127093059@qq.com>
2026-06-18 15:54:23 +08:00