diff --git a/.github/workflows/harness-sidecar-release-gate.yaml b/.github/workflows/harness-sidecar-release-gate.yaml index 4e44c9ac9..64f690ccc 100644 --- a/.github/workflows/harness-sidecar-release-gate.yaml +++ b/.github/workflows/harness-sidecar-release-gate.yaml @@ -13,6 +13,7 @@ on: - 'tests/cli/test_generated_agent_sidecar_runtime.py' - 'tests/cli/test_generated_agent_mcp.py' - 'tests/cli/test_studio_rbac.py' + - 'tests/cli/test_studio_a2a_deployment.py' - 'tests/cli/test_studio_release.py' - 'tests/cli/test_studio_update.py' - 'tests/cli/test_studio_startup_imports.py' @@ -50,6 +51,7 @@ on: - 'tests/cli/test_generated_agent_sidecar_runtime.py' - 'tests/cli/test_generated_agent_mcp.py' - 'tests/cli/test_studio_rbac.py' + - 'tests/cli/test_studio_a2a_deployment.py' - 'tests/cli/test_studio_release.py' - 'tests/cli/test_studio_update.py' - 'tests/cli/test_studio_startup_imports.py' @@ -134,6 +136,10 @@ jobs: python -m pytest -q \ tests/frontend/server/test_runtime_iam.py \ tests/cli/test_generated_agent_mcp.py \ + tests/cli/test_studio_a2a_deployment.py \ + tests/cli/test_studio_rbac.py::test_mcp_deployment_error_details_are_actionable \ + tests/cli/test_studio_rbac.py::test_managed_sidecar_runtime_envs_reject_invalid_mcp_state \ + tests/cli/test_studio_rbac.py::test_managed_sidecar_runtime_envs_allow_zero_mcp_without_legacy_fallback \ tests/cli/test_generated_agent_backend_codegen_extended.py::test_generated_debug_applies_published_mcp_credential_contract_before_discovery \ tests/cli/test_studio_rbac.py::test_deployment_status_recovers_completed_update_from_fresh_instance \ tests/cli/test_studio_rbac.py::test_new_deployment_creates_requested_instance_range_without_republishing \ diff --git a/frontend/README.md b/frontend/README.md index 65258db5b..bbcd90d68 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -526,7 +526,14 @@ See [deployment and operation](service/studio_release_notifier/README.md). `优化` → `调试` → `环境` → `发布`. On the optimization page, `自定义` appears first and starts with no components, while `运维场景` applies the `ops` component combination. Component checkboxes remain editable and an empty - selection keeps Sidecar disabled. The Environment step can optionally add the + selection keeps Sidecar disabled. BytePlus does not show a default warning; + selecting an unsupported Sidecar option still explains the restriction. + A2A center selections configure discovery on their parent Agent and do not + require a local Agent name. They can be retained or added during a standard + Runtime update without enabling Sidecar or configuring MCP. Source-preserving + updates still require the original Agent structure. Deployment validation + reports Agent, Skill, MCP, and source-image problems separately. + The Environment step can optionally add the official Lark CLI, GitHub CLI, and Pandoc to the cloud runtime. Selecting a tool generates an inspectable provider-specific Dockerfile with pinned releases, amd64/arm64 assets, and SHA-256 verification. Advanced configuration diff --git a/frontend/src/create/CustomCreate.tsx b/frontend/src/create/CustomCreate.tsx index 159951250..8daf7fd11 100644 --- a/frontend/src/create/CustomCreate.tsx +++ b/frontend/src/create/CustomCreate.tsx @@ -3701,13 +3701,11 @@ function DebugComparisonWorkspace({ function HarnessOptimizationWorkspace({ profile, optimizations, - unavailableMessage, onProfileChange, onOptimizationChange, }: { profile: HarnessSidecarProfileId; optimizations: HarnessSidecarOptionId[]; - unavailableMessage?: string | null; onProfileChange: (profile: HarnessSidecarProfileId) => void; onOptimizationChange: ( optionId: HarnessSidecarOptionId, @@ -3721,12 +3719,6 @@ function HarnessOptimizationWorkspace({ aria-label={t("traditional.optimization.ariaLabel")} >