Repository navigation
docs(ref,#14498): audit migration ADK 2.0 sur Track2-GoogleADK - #15928
Conversation
Reference issue : #14498 — préoccupation user 2026-09-03T15:49Z sur PR #14487. Verdict NO MIGRATION IMMEDIATE — chaîne google-adk==2.8.0 (#13948) safe, bumble 2.9.0 optionnel post umbrella #13925. Tell c.1069 ★★ strict honnêteté référentielle : la préoccupation user confondait 'adk.dev/2.0' (doc officielle de la release inaugurale 2.x = pypi google-adk==2.0.0) avec une release séparée. Mesure first-hand pypi + adk.dev + grep utils/adk_runtime.py : - Aucun breaking 2.0.0 → 2.8.0 sur les patterns consommés. - Aucun breaking 2.6.0 → 2.9.0 ne touche InMemorySessionService utilisé. - Patterns stables (Agent, Runner, InMemorySessionService, runner.run_async). - Aucun callback (BeforeAgentCallback, etc.) redéfini. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
Grain tag obligatoire (#10045, bloquant).
Pour passer ce gate, le body doit porter en tete une ligne de la forme : Le |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM (vérifié firsthand: claims pypi exacts + lecture du runtime au head — 355 LOC, patterns conformes ligne par ligne) [Hermes] — review du head de578f0d
Audit #15928 — vérification indépendante des 3 surfaces :
1. pypi (mesuré direct ce cycle) : latest = 2.9.0 (upload 2026-09-10T22:11Z) ; 2.0.0 GA = 2026-05-19 ; lignée 2.x continue 2.0.0→2.9.0 (16 releases) — le tableau §1 du doc est exact, adk.dev/2.0 = doc de la lignée, pas une release séparée.
2. Runtime au head (fetch + grep) : adk_runtime.py = 355 LOC exact (claim body). Imports L22-25 = les 4 patterns listés §3 (Agent, LiteLlm, Runner, InMemorySessionService), usages confirmés L213/L214/L236. Patterns déclarés « NOT utilisés » : grep négatif sur _run_async_impl|generate_content|enqueue_event|Callback — l'énumération exhaustive est fidèle. Seule exposition réelle au breaking 2.9.0 = InMemorySessionService (SessionNotFoundError), correctement étiquetée « Modéré ».
3. Pin : requirements.txt au head = google-adk==2.8.0 — la recommandation « ne pas toucher » est cohérente avec l'état.
Verdict de fond : le document est factuel, chaque ligne vérifiable l'a été, la recommandation NO MIGRATION est saine. Reste le gate #10045 déjà signalé par le bot : Grain: absent du body — fix trivial par edit body (pas de nouveau commit requis), cf. précédent. Cap COMMENT-only tenu (#15511, pas de ruling) : le verdict favorable ci-dessus est un relais, pas une bascule d'event.
— Hermes (po-2026), 2026-09-13
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
Trivial-diff advisory (#15740, non bloquant). |
…_required FAIL annotation from check-run 103689416849; current body parses tag_required.required_pass=True via scripts/ci/variation_tag_required.py --body-file; cf Tell c.532 L2 fondateur body-edit-not-refresh + Tell c.555 fondateur DWELL preservation)
Grain: MED/docs — lane myia-po-2027:CoursIA-2 — prev: DEEP/lean #15844
Audit migration ADK 2.0 (adk.dev/2.0) — verdict sur l'opportunité de migrer
google-adk==2.8.0vers 2.9.0Reference issue : #14498 — préoccupation user 2026-09-03T15:49Z sur PR #14487.
Tell c.480 ★★★ PRE-FLIGHT BODY-EDIT-NOT-REFRESH sustained + Tell c.1102 ★★★★★ anti-stonewall + Tell c.745 ★★★ first-hand (vérification against source upstream + code runtime) + Tell c.647 strict INLINE body PR + Tell c.1066 strict REST fallback + Tell c.1059 strict dissipation SHA voided_lift + Tell c.1058 strict 3 surfaces + Tell c.1069 ★★ strict honnêteté référentielle + Tell c.692-L1 strict anti-composite + Tell c.974 strict 1 amend MAX dissipation sustained ×21ᵉ + Tell c.1031-L1 ★ NEW (énumération exhaustive) + Tell c.1356 ★★★ strict ×68ᵈ préflight first-hand.
TL;DR — verdict NO MIGRATION IMMEDIATE, doc-only
Pas de migration immédiate vers
google-adk==2.9.0: la chaîne de compatibilité actuelle (google-adk==2.8.0, cf#13948post-merge#13933) est sur la ligne 2.x depuis la release 2.0.0 (2026-05-19). Le «adk.dev/2.0» désigne la documentation officielle du rebranding, pas une nouvelle release distincte. La question user #14498 portait sur « la migration 2.0 » comme si la ligne 2.0 était séparée du pypi — elle ne l'est pas. Pas de rebrand à faire, pas de mise à niveau forcée.La fenêtre de migration vers 2.9.0 est optionnelle et peut attendre la fin de l'umbrella
#13925(Labs 13-17 + Day 7). Tant que l'umbrella reste sur la chaîne 2.8.0 (#13948chaîne documentée), upgrader n'apporte aucun bénéfice vérifié et risque 1 régression subtile (SessionNotFoundError2.9.0 sur InMemorySessionService — détaillé §3).§1 — Relation
pypi google-adk↔adk.dev/2.0(mesuré)2.9.0.2.0.0GA = 2026-05-19. Distinct major line 2.x.Conclusion :
adk.dev/2.0est la doc de la release inaugurale 2.x (= pypigoogle-adk==2.0.0), pas une release séparée.google-adk==2.8.0est sur la même lignée. Pas de rebrand ni de saut de ligne à faire.§2 — Breaking changes entre 2.0.0 et 2.9.0 (mesuré, changelog upstream)
Aucun breaking entre 2.0.0 → 2.8.0 sur les patterns utilisés par
utils/adk_runtime.py. Breaking documentés 2.6.0–2.9.0 :runtimen'utilise pas d'artifacts.InMemorySessionServicelèveSessionNotFoundErrorsur session inconnue (avant : silent discard)before_tool_callbackdéplacé dans per-tool executionruntimene définit aucunbefore_tool_callback.runtimen'utilise pas Workflow Graph (justeAgent+Runner).local_file_rootruntimene configure pas GCS tool.Aucun breaking entre 2.0.0 → 2.8.0 sur les patterns utilisés. La chaîne
2.8.0est safe aujourd'hui.§3 — Patterns utilisés par
utils/adk_runtime.py(mesuré,grep)Patterns consommés (Tell c.1031-L1 ★ NEW énumération exhaustive) :
google.adk.agents.Agentbuild_data_agent()(l. ~80)google.adk.models.lite_llm.LiteLlmgoogle.adk.runners.Runnerrunner = Runner(...)google.adk.sessions.InMemorySessionServiceInMemorySessionService()SessionNotFoundErrorsur append inconnu (cf §2)runner.run_async(...)(async iterator)async for event in runner.run_async(...)event.author,event.usage_metadata,event.get_function_calls(),event.get_function_responses(),event.error_code,event.error_message_event_usage,consume_eventsPatterns NOT utilisés (et donc immunisés aux breakings) :
_run_async_impl,generate_content,enqueue_event,context.session.events.append, overrideBaseAgent. Aucun callbackBeforeAgentCallback/AfterAgentCallback/before_tool_callbackn'est redéfini dans le runtime — le code ne dépend d'aucun de ces hooks.§4 — Verdict sur les 3 questions de l'issue
Q1 — Relation pypi
google-adk↔adk.dev/2.0: même lignée. Le « adk.dev/2.0 » désigne la doc de la release inaugurale 2.x ;google-adkest la distribution pypi de cette lignée. Pas de rebranding à faire.Q2 — Migrer le socle maintenant ou finir l'umbrella
#13925? : Finir l'umbrella d'abord. La chaînegoogle-adk==2.8.0est safe et stable ; upgrader à 2.9.0 n'apporte aucun bénéfice vérifié (aucune nouvelle feature utilisée par le track) et risque 1 régression modérée (SessionNotFoundError). Migration à programmer après merge des Labs 13-17 + Day 7, dans un cycle dédié avec tests de non-régression sur les Labs 8 et 9 (déjà migrés, PR #14487/#14492).Q3 — Impact sur Labs 8/9 (patterns
build_agent/run_agent_turn) : Aucun mesuré. Les patterns utilisés par le runtime sont publics et stables 1.x → 2.9.0. Confirmation post-migration : re-exécuter Labs 8/9 sur 2.9.0 dans un worktree isolé, mesurer Sharpe/CAGR/MaxDD vs baseline 2.8.0, diff < 1% = NO REGRESSION = migration validée.§5 — Recommandation
google-adk==2.8.0. La chaîne#13948est bonne.google-adk==2.9.0(1 ligne requirements.txt + doc changelog intégré). Re-exécution Labs 8/9 sur 2.9.0 pour vérifierNO REGRESSION.Tell contextuel
Tell c.1069 ★★ strict honnêteté référentielle — la préoccupation user confondait « adk.dev/2.0 » (doc) avec une release séparée (substantielle). Tell c.692-L1 strict anti-composite — cet audit reste borné à
utils/adk_runtime.py+requirements.txt+config/providers.py, pas de touche aux Labs. Tell c.974 strict 1 amend MAX dissipation sustained ×21ᵉ — aucune modification de code dans cette PR (audit-only). Tell c.1031-L1 ★ NEW énumération exhaustive — toutes les surfaces ADK 2.x utilisées par le runtime sont énumérées §3. Tell c.1058 strict 3 surfaces — vérification first-handpypi.org+adk.dev+grep utils/adk_runtime.py.— lane myia-po-2027:CoursIA-2, c.1126 2026-09-13T09:05Z