Skip to content

Commit 8c52ed0

Browse files
AgentArcLabpengliang3
andcommitted
feat: release ksadk 0.8.3
Co-authored-by: liubin9 <liubin9@kingsoft.com> Co-authored-by: pengliang3 <pengliang3@kingsoft.com>
1 parent c8c9be6 commit 8c52ed0

466 files changed

Lines changed: 39331 additions & 3603 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
test:
1313
runs-on: ubuntu-latest
1414
env:
15-
KSADK_WEB_VERSION: "0.3.2"
15+
KSADK_WEB_VERSION: "0.3.4"
1616
steps:
1717
- uses: actions/checkout@v4
1818

@@ -49,7 +49,19 @@ jobs:
4949
run: make public-test
5050

5151
- name: Audit public repository candidate
52-
run: uv run --extra dev python scripts/open_source_audit.py --target public-repo
52+
run: |
53+
if [ -f export-manifest.json ]; then
54+
audit_root="$PWD"
55+
else
56+
audit_root="${RUNNER_TEMP}/ksadk-python-public-audit"
57+
rm -rf "$audit_root"
58+
uv run --extra dev python scripts/prepare_ksadk_python_export.py \
59+
--output-dir "$audit_root" \
60+
--summary
61+
fi
62+
uv run --extra dev python scripts/open_source_audit.py \
63+
--root "$audit_root" \
64+
--target public-repo
5365
5466
- name: Build and audit public docs
5567
run: make docs-site-build
@@ -98,7 +110,7 @@ jobs:
98110
name: full pytest (google-adk ${{ matrix.google-adk }})
99111
runs-on: ubuntu-latest
100112
env:
101-
KSADK_WEB_VERSION: "0.3.2"
113+
KSADK_WEB_VERSION: "0.3.4"
102114
strategy:
103115
fail-fast: false
104116
matrix:

.github/workflows/publish-pypi.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99
ksadk_web_version:
1010
description: KsADK Web npm version to bundle
1111
required: false
12-
default: "0.3.2"
12+
default: "0.3.4"
1313
approved_source_commit:
1414
description: Reviewed source commit SHA recorded in docs/maintainer-approval-record.md
1515
required: false
@@ -37,7 +37,7 @@ jobs:
3737
environment:
3838
name: pypi
3939
env:
40-
KSADK_WEB_VERSION: ${{ github.event.inputs.ksadk_web_version || '0.3.2' }}
40+
KSADK_WEB_VERSION: ${{ github.event.inputs.ksadk_web_version || '0.3.4' }}
4141
KSADK_APPROVED_SOURCE_COMMIT: ${{ github.event.inputs.approved_source_commit || vars.KSADK_APPROVED_SOURCE_COMMIT }}
4242
PUBLISH_TARGET: ${{ github.event.inputs.publish_target || 'full' }}
4343
permissions:

.github/workflows/release-check.yml

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,20 @@ on:
99
- "Makefile"
1010
- "ksadk/**"
1111
- "ksadk_runtime_common/**"
12+
- "tests/compat/**"
13+
- "tests/e2e/test_codex_plugin_bridge_e2e.py"
14+
- "tests/e2e/test_codex_provider_app_server_e2e.py"
15+
- "tests/e2e/test_dsh_managed_toolchain_e2e.py"
16+
- "tests/plugins/test_dsh_node_provider_e2e.py"
17+
- "tests/fixtures/dsh-node-agent-provider/**"
18+
- "tests/packaging/test_phase2_release_preflight.py"
19+
- "tests/studio/e2e/**"
1220
- "scripts/open_source_audit.py"
21+
- "scripts/audit_release_artifacts.py"
22+
- "scripts/phase2_release_preflight.py"
1323
- "scripts/verify_ksadk_web_static.py"
24+
- "scripts/write_build_provenance.py"
25+
- "docs/phase2-plugin-compatibility.md"
1426
- ".github/workflows/release-check.yml"
1527

1628
jobs:
@@ -33,18 +45,25 @@ jobs:
3345
node-version: "22"
3446

3547
- name: Install dependencies
36-
run: uv sync --extra dev
48+
run: uv sync --extra all
49+
50+
- name: Install Chromium for Phase 2 browser gates
51+
run: uv run playwright install --with-deps chromium
3752

3853
- name: Build pinned frontend static assets
3954
env:
40-
KSADK_WEB_VERSION: "0.3.2"
55+
KSADK_WEB_VERSION: "0.3.4"
4156
run: make build-frontend
4257

43-
- name: Build artifacts
44-
run: uv build
58+
- name: Verify clean release source
59+
run: |
60+
test -z "$(git status --porcelain --untracked-files=all)"
4561
46-
- name: Check package metadata
47-
run: uv run --extra dev python -m twine check dist/*
62+
- name: Build one provenance-bound artifact pair
63+
run: |
64+
rm -rf dist
65+
uv run python scripts/write_build_provenance.py
66+
uv build --out-dir dist
4867
49-
- name: Audit wheel and sdist file lists
50-
run: make open-source-audit-dist
68+
- name: Run Phase 2 release preflight
69+
run: uv run --extra all python scripts/phase2_release_preflight.py --dist-dir dist

.github/workflows/secret-patterns.yml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ jobs:
2020
with:
2121
fetch-depth: 0
2222

23+
- name: Set up Node
24+
uses: actions/setup-node@v4
25+
with:
26+
node-version: "22"
27+
2328
- name: Run Gitleaks
2429
env:
2530
GITLEAKS_VERSION: "8.28.0"
@@ -29,4 +34,17 @@ jobs:
2934
/tmp/gitleaks detect --source . --config .gitleaks.toml --no-banner --redact --verbose
3035
3136
- name: Run open-source content audit
32-
run: python3 scripts/open_source_audit.py --target public-repo
37+
run: |
38+
if [ -f export-manifest.json ]; then
39+
audit_root="$PWD"
40+
else
41+
make build-frontend
42+
audit_root="${RUNNER_TEMP}/ksadk-python-public-audit"
43+
rm -rf "$audit_root"
44+
python3 scripts/prepare_ksadk_python_export.py \
45+
--output-dir "$audit_root" \
46+
--summary
47+
fi
48+
python3 scripts/open_source_audit.py \
49+
--root "$audit_root" \
50+
--target public-repo

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ webui
9191
ksadk/server/static/**
9292
# Generated from the tracked React Studio source during release/build.
9393
ksadk/studio/static/**
94+
# Generated immediately before packaging and embedded in wheel/sdist. Release
95+
# gates verify it against the checked-out source commit; it is never source.
96+
ksadk/_build_provenance.json
9497
ksadk/studio/web/node_modules/
9598
ksadk/studio/web/dist/
9699
site/
@@ -100,3 +103,4 @@ ksadk/server/web-ui/
100103
e2e-codex-agent/
101104
ksadk/studio/react-ui/node_modules/
102105
.agentkit/secrets.env
106+
agentkit.yaml

CHANGELOG.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,33 @@
55
格式参考 [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
66
版本遵循 [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
77

8-
## [Unreleased]
8+
## [0.8.3] - Unreleased
9+
10+
> `0.8.3` 发布候选已完成下述验证;正式 PyPI 发布完成后再写入发布日期。
11+
12+
### 插件化基础
13+
14+
- 新增统一的 `agentengine plugin` 产品入口,但不定义第三种 KsADK 私有插件格式。DSH Bundle/Profile 是唯一默认生态;受管理的固定版本 DSH/pnpm 工具链覆盖 `create``validate``test``pack`,开发者无需检出或编译 DeepSeek Harness 源码。
15+
- 新增事务化 PluginHost、能力注册与组合合同。一个真实仓外 DSH AgentProvider 已在同一受管 Profile 中通过安装、连续两轮状态延续、停用阻断、损坏升级失败回滚、重新启用旧版本继续执行以及卸载的完整 E2E。SQLite Store 与 Renderer 保持 host-owned,MCP、Skill 和 Context 只投影经过边界校验的安全数据;数据库路径和已解析 Secret 不越界。
16+
- DSH 本地目录和 `.tgz` 安装源按 SHA-256 固化到受管不可变存储;目录使用固定 pnpm 按 npm `files` 语义打包。启用、更新和投影前发现来源或制品摘要漂移会 fail closed;升级失败恢复旧 manifest、lock、状态和可执行旧包。
17+
- 新增 Codex App Server 插件桥接。Codex 插件的发现、详情、安装和卸载均交给 Codex 宿主,KsADK 不复制插件实现,也不接管其认证或宿主权限。
18+
- 新增 DeepSeek Harness Profile 管理桥接。DSH Bundle 的发现、安装、启停、升级、卸载和配置预检均委托给受管理的原生 `dsh plugin`,KsADK 只保存无 Secret 的 inventory、来源摘要与配置摘要。
19+
20+
### Studio 自动化与会话表面
21+
22+
- 新增本地 Scheduler Lite:支持 once、interval、cron、IANA 时区、启停、编辑、删除、立即运行、misfire 策略、并发保护和 occurrence 历史。Studio 提供全局自动化页和 Agent 详情页自动化 Tab;浏览器纵切已通过真实本地 Kernel、Codex RuntimeAdapter + App Server 以及 KsADK Harness 生产模型客户端验证 new/follow-up、accepted、run identity、terminal 状态和刷新后历史对账;测试仅以本地确定性 HTTP 模型端替代外部模型服务。
23+
- 冻结 `ConversationSurface``ConversationInput``ConversationItem` 合同,统一文本、reasoning、工具、审批、A2UI 与未知 item 的 identity-aware 归并和回放边界。
24+
- 新增核心 Conversation Renderer 与受控 A2UI action bridge。自定义前端可以消费同一会话表面;未知类型保持安全的通用降级,不要求客户端理解某个 Provider 的私有事件。
25+
- Hosted UI 与 Studio 固定到 `@kingsoftcloud/ksadk-web@0.3.4`。该版本在 0.3.3 的 headless Conversation v1、SSE 有界重连和统一时间线基础上,修复 item 完成被误判为整轮完成的问题,等待显式 run terminal 才解锁下一轮;“正在思考”改为持续可见的文字流光,并提供可独立运行的 GitHub Pages 演示,覆盖逐字流式、工具状态、输入框上方审批卡片与反馈卡片。只有明确的 404 才回退旧 Responses/AG-UI,畸形响应与 5xx 继续 fail closed。
26+
- 修复基础安装把 `agentengine studio` 整体误降级为不可用的问题:Studio 所需的 `google-adk` 现在随基础包安装;LiteLLM 与 JSON 修复等仅在 `[adk]` 扩展中保留。
27+
28+
### 兼容与发布验证
29+
30+
- Phase 2 只增加本地能力,不要求已发布 Agent、历史 Bundle、无来源三元组 Runtime、未启用 Kernel 或无 PostgreSQL 的单机模式升级。历史 Harness 只有命中显式登记的精确来源摘要才进入 legacy adapter;未知 v1 fail closed,新 v2 缺少就绪 DSH registration 时也不会回退旧路径。
31+
- Codex 已覆盖真实 App Server 插件生命周期、DSH Codex Provider 的 MCP 两轮/同一 Thread、插件 inventory 与失败回滚、以及隔离 one-shot child 的取消和清理;DSH 也覆盖受管 Profile 和一个真实外部 AgentProvider 的连续多轮与完整失败回滚。上述证据不等于任意第三方 Provider 自动受支持,也不把云端持续后台任务纳入本地稳定声明。
32+
- Claude Code、游戏插件和任意第三方插件格式尚未作为已支持生态发布。后续可以通过 Provider 或 ecosystem bridge 接入,但必须先通过权限、生命周期、ConversationSurface 和兼容性 conformance。
33+
- `ksadk-web@0.3.4` 已通过 npm Trusted Publishing 发布;registry integrity 为 `sha512-IudZCNnWAWYJOb/s/lbr02qg17KWQ0s/419StDVZxcEcbJOVVKE4GkbGtGs/5X+WkzbXE9eOUvIEydN5QEV4LQ==`,registry tarball SHA-256 为 `0d88fb37506bae77ba863b3986b2fde4546cd74cbd3f3021eed1ecd05f15c596`。Studio 已从公开 registry 重建,Hosted UI 发布验证镜像 digest 为 `sha256:d629384e44a2e35f5dd5f7788ea16097cb49d79c582206d5fe453911fe20d66d`;真实 Studio 创建的 Codex Agent 与 0.8.2 历史 Agent 均完成多轮流式、思考、刷新回放、上下文续接和最终消息去重验证。
34+
- 新增 Phase 2 最终候选聚合门禁:只有最终源码提交、wheel/sdist、npm integrity、Hosted UI 镜像 digest、Helm revision,以及 Studio 新 Agent/历史 0.8.2 Agent 在 Studio 与 Hosted UI 的多轮流式证据全部一致时才输出 `passed`;本地 preflight 不再能被误当成完整发布结论。
935

1036
## [0.8.2] - 2026-08-26
1137

@@ -81,6 +107,7 @@
81107

82108
### 修复与性能
83109

110+
- 修复通用 Runner 退化流把 `text/text_delta` 标成 commentary、再为终态另建 final-answer item 的协议错误。普通正文现在从首字符起沿同一个 final-answer item 流式输出并由终态快照完成;显式 commentary 与 reasoning 仍保持独立身份,避免答案混入思考并在结尾整段重复。
84111
- 修复 LangGraph 回调将 ToolGateway 结果序列化为 JSON 文本时,工具审批未被识别为可恢复交互的问题;Responses 客户端现在会收到标准审批项,批准后可继续原工具调用并执行真实副作用。
85112
- 修复 LangGraph 中 ToolGateway 审批完成后向已结束图发送原生 resume、导致副作用虽已执行却没有后续回复的问题;现在会基于已持久化的真实工具结果继续生成最终回答,同时保留原生 `interrupt()` 的 resume 语义。
86113
- 修复 Studio 快速创建向导与模板编排 API 的请求契约,并将 ADK/LangGraph 的源码路径和入口变量完全交由服务端生成;“创建后立即构建并打开会话”现在会实际提交 Build、等待成功后再进入会话。Codex、ADK、LangGraph 三种 Runtime 均按同一流程创建和构建。

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ recursive-exclude ksadk/server/web-ui *
33
prune ksadk/studio/react-ui
44
recursive-exclude ksadk/studio/react-ui *
55
recursive-include ksadk_runtime_common/schemas *.json
6+
include ksadk/_build_provenance.json

0 commit comments

Comments
 (0)