deploy: bind Agent Runtime updates to recorded resource identity
@asrujana-44 已经在做这个了。
开始于 2026年9月14日。
评估
这个 Issue 还没有评估数据。
描述
Summary
Agent Runtime updates are selected by display_name on the v1.3.1 source baseline. A display name is not a unique resource identity, so an update can target an arbitrary same-name Reasoning Engine.
Baseline: 5a306f8956cb1eeae69f9709de0e4d61b44e11e7 (v1.3.1).
Reproduction
- Deploy an
agent_runtimeproject and keep its generateddeployment_metadata.json. - Create a second Reasoning Engine in the same project/location with the same display name.
- Run
agents-cli deployagain. - Separately, remove the metadata file and repeat with 0, 1, and 2 same-name resources.
Actual behavior
The baseline lists by display name and uses the first match. With duplicate names, selection depends on list order and a mutation may be sent to the wrong resource.
Expected behavior
- If
deployment_metadata.json.remote_agent_runtime_idexists, fetch exactly that resource by ID. - Before mutation, validate its project number, location, deployment target, resource name, and actual display name.
- Reject stale or inconsistent metadata.
- Only without usable metadata: create for 0 matches, update for exactly 1 match, and reject 2+ matches before any create/update API call.
- Revalidate after acquiring the local deployment-operation claim so a concurrently changed target cannot be mutated.
Minimal fix
Resolve the target in one shared selector that prefers the recorded resource ID and fails closed on every mismatch. Treat display-name lookup only as the metadata-free fallback and require it to be unambiguous. Atomically update metadata only after a successful mutation.
Reference implementation and regressions: fork Batch 4 branch.
Verification evidence
- Targeted identity/lifecycle suite: 35 tests passed under a fresh reviewer; full local suite: 92 passed.
- Multiple same-name case asserted zero calls to create/update/identity-create.
- Disposable isolated GCP project acceptance:
- create returned one recorded resource ID;
- update retained the same resource ID;
- after temporarily removing metadata and creating a second same-name resource, the CLI rejected before mutation;
- cleanup found 0 Reasoning Engines and 0 unfinished operations;
- project lifecycle was confirmed as
DELETE_REQUESTED.
ruff check src tests,ty check src, build, and Python 3.11/3.13 installed-wheel smoke tests passed.
- 主要语言
- Python
- 星标
- 6k
- 派生
- 670
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
google/agents-cli 的其他 Issue
-
documentation
难度 2/5 1-3 小时 新手友好度 92/100
google/agents-cli#86 ·
-
难度 3/5 1-2 天 新手友好度 68/100
google/agents-cli#85 · 1 条评论 ·
-
难度 3/5 1-2 天 新手友好度 68/100
google/agents-cli#84 · 1 条评论 ·
-
难度 3/5 1-2 天 新手友好度 72/100
google/agents-cli#83 · 2 条评论 · 1 个 reaction ·
-
google/agents-cli#79 · 2 条评论 · 已指派 1 人 ·
查看 google/agents-cli 的全部 Issue
相似的 Issue
-
bug confirmed issue
难度 2/5 1-3 小时 新手友好度 75/100
open-webui/open-webui#30750 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
-
enhancement
难度 2/5 1-3 小时 新手友好度 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 70/100
-
good first issue
难度 1/5 1 小时以内 新手友好度 90/100