This is an automated email from the ASF dual-hosted git repository.

dabla pushed a change to branch 
dabla/durable-operators/02-durable-msgraph-powerbi
in repository https://gitbox.apache.org/repos/asf/airflow.git


 discard 790c2f02ea6 Make the PowerBI refresh and MSGraph operators resume 
after a retry
 discard e8749611405 Use one ResumableJobMixin fallback from common.compat in 
providers
     add d8efc66ea76 Add a Model tab to the task-instance page for `common.ai` 
(#74334)
     add cd9f233f6d4 Add support for forwarding CeleryExecutor task logs to 
stdout (#69597)
     add dac956c667c Document hosted OpenAI-compatible services for common.ai 
(#74620)
     add 3a08e9b11e3 Document Managed Agents as a first-party feature (#72306)
     add 21c858eb67b Fix missing task.queued_duration metric in Airflow 3 
(#67592)
     add eee6e2a4a50 Resume Strands agents from their last checkpoint when a 
task retries (#74404)
     add 06c7f338f95 Decode base64 for bytes-typed `HookToolset` parameters 
(#70433)
     add f46a370a95b Stop the secrets backend lookup from importing the task 
runner outside tasks (#74641)
     add c5c2f194b57 Add Boat backend for sandbox tools (#71725)
     add c192bdad5fd Show serializer schema in Dag version diff only when it 
differs (#74683)
     add 51f1b5b16d8 TS SDK: Reject triggerDagRun tasks in dag.if and 
dag.switch (#74492)
     add 09b4b6307fc Document agent memory across Dag runs for `common.ai` 
(#74681)
     add 75455fda1ba Explain why common.ai is built on Pydantic AI (#74680)
     add 945b7949328 Fix deprecated provider lookup in Amazon AWS hooks (#74480)
     add 861ca7ffc18 Bump the fab-ui-package-updates group across 1 directory 
with 3 updates (#74670)
     add 96da58058ef Add Islo backend for sandbox tools (#71672)
     add 68a4c3177f9 Add AirflowDurability capability for durable agent replay 
across task retries (#74385)
     add 3cf3f4b2a9d Refuse a HITL response for a request the task has since 
replaced (#74688)
     add 1461ddfdf8a Grant Keycloak SuperAdmin access to teamless resources 
(#74640)
     add 142f12bd2b9 Update remaining FAB Website permissions rows for Airflow 
3 (#74653)
     add 2212818399e Graduate Common AI features to stable ahead of 1.0 (#74679)
     add a73ffaedbf1 Add scoped Execution API access for Dag processors (#74370)
     add 275aa6959f3 Support `abfs://` and `abfss://` URIs in DataFusion Azure 
Blob Storage (#74228)
     add 8c33841b41f Use one ResumableJobMixin fallback from common.compat in 
providers
     add c0d009b242a Make the PowerBI refresh and MSGraph operators resume 
after a retry

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (790c2f02ea6)
            \
             N -- N -- N   
refs/heads/dabla/durable-operators/02-durable-msgraph-powerbi (c0d009b242a)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 airflow-core/docs/migrations-ref.rst               |    4 +-
 .../docs/security/jwt_token_authentication.rst     |  129 +-
 airflow-core/docs/security/security_model.rst      |    9 +-
 airflow-core/docs/tutorial/hitl.rst                |    6 +-
 airflow-core/newsfragments/67592.bugfix.rst        |    1 +
 airflow-core/newsfragments/69597.feature.rst       |    1 +
 .../src/airflow/api/common/airflow_health.py       |    4 +-
 .../api_fastapi/core_api/datamodels/hitl.py        |   11 +-
 .../core_api/openapi/v2-rest-api-generated.yaml    |   11 +
 .../api_fastapi/core_api/routes/public/hitl.py     |   11 +
 .../airflow/api_fastapi/execution_api/AGENTS.md    |    2 +-
 .../src/airflow/api_fastapi/execution_api/app.py   |   16 +-
 .../execution_api/dag_processor_tokens.py          |  116 ++
 .../api_fastapi/execution_api/datamodels/job.py    |   94 ++
 .../api_fastapi/execution_api/datamodels/token.py  |   90 +-
 .../api_fastapi/execution_api/routes/__init__.py   |    2 +
 .../execution_api/routes/connections.py            |   14 +-
 .../api_fastapi/execution_api/routes/dag_runs.py   |   15 +-
 .../api_fastapi/execution_api/routes/jobs.py       |  317 +++++
 .../execution_api/routes/task_instances.py         |   53 +-
 .../api_fastapi/execution_api/routes/variables.py  |   26 +-
 .../api_fastapi/execution_api/routes/xcoms.py      |   58 +-
 .../airflow/api_fastapi/execution_api/security.py  |  223 +++-
 .../api_fastapi/execution_api/versions/__init__.py |    2 +
 .../versions/{v2025_09_23.py => v2027_02_28.py}    |   15 +-
 airflow-core/src/airflow/cli/cli_config.py         |   34 +
 .../airflow/cli/commands/dag_processor_command.py  |    4 +-
 .../cli/commands/dag_processor_token_command.py    |  109 ++
 .../src/airflow/config_templates/config.yml        |   14 +
 .../src/airflow/dag_processing/api_client.py       |  413 +++++++
 .../src/airflow/dag_processing/bundles/manager.py  |    7 +-
 .../src/airflow/executors/base_executor.py         |    7 +-
 airflow-core/src/airflow/jobs/job.py               |    7 +-
 ...odel.py => 0147_3_5_0_add_session_id_to_job.py} |   34 +-
 .../airflow/ui/openapi-gen/requests/schemas.gen.ts |   13 +
 .../airflow/ui/openapi-gen/requests/types.gen.ts   |    4 +
 .../src/airflow/ui/public/i18n/locales/ca/dag.json |    4 +-
 .../src/airflow/ui/public/i18n/locales/de/dag.json |    4 +-
 .../src/airflow/ui/public/i18n/locales/el/dag.json |    4 +-
 .../src/airflow/ui/public/i18n/locales/en/dag.json |    5 +-
 .../src/airflow/ui/public/i18n/locales/fr/dag.json |    6 +-
 .../src/airflow/ui/public/i18n/locales/ko/dag.json |    4 +-
 .../src/airflow/ui/public/i18n/locales/pl/dag.json |    8 +-
 .../airflow/ui/public/i18n/locales/zh-TW/dag.json  |    4 +-
 .../src/components/HITLReview/HITLReviewDetail.tsx |    8 +-
 .../pages/Dag/Versions/VersionDiff.i18n.test.tsx   |   26 +-
 .../ui/src/pages/Dag/Versions/VersionDiff.tsx      |   14 +-
 .../HITLTaskInstances/HITLResponseForm.test.tsx    |   36 +-
 .../pages/HITLTaskInstances/HITLResponseForm.tsx   |    6 +-
 .../ui/src/pages/TaskInstance/HITLResponse.tsx     |    2 +-
 .../airflow/ui/src/queries/useUpdateHITLDetail.ts  |   12 +-
 airflow-core/src/airflow/ui/src/utils/hitl.ts      |    2 +
 airflow-core/src/airflow/utils/db.py               |    1 +
 .../tests/unit/always/test_example_dags.py         |    2 +
 .../core_api/routes/public/test_hitl.py            |   89 ++
 .../core_api/routes/public/test_plugins.py         |   11 +-
 .../unit/api_fastapi/execution_api/test_app.py     |    4 +-
 .../execution_api/test_dag_processor_client.py     |  373 ++++++
 .../execution_api/test_dag_processor_tokens.py     |   93 ++
 .../api_fastapi/execution_api/test_security.py     |  772 +++++++++++-
 .../execution_api/test_token_scope_boundaries.py   |  127 +-
 .../execution_api/versions/head/test_jobs.py       |  470 +++++++
 .../execution_api/versions/head/test_router.py     |   19 +
 .../versions/head/test_task_instances.py           |  390 +++++-
 .../execution_api/versions/head/test_xcoms.py      |   66 +-
 .../versions/v2026_10_30/test_task_instances.py    |    4 +-
 .../versions/v2027_02_28}/__init__.py              |    0
 .../versions/v2027_02_28/test_jobs.py              |   76 ++
 .../cli/commands/test_dag_processor_command.py     |    4 +-
 .../commands/test_dag_processor_token_command.py   |  237 ++++
 .../bundles/test_dag_bundle_manager.py             |   21 +-
 .../tests/unit/dag_processing/test_api_client.py   |  952 +++++++++++++++
 .../tests/unit/executors/test_base_executor.py     |   46 +
 .../tests/unit/plugins/test_plugins_manager.py     |    2 +-
 .../src/airflowctl/api/datamodels/generated.py     |    7 +
 docs/spelling_wordlist.txt                         |    6 +
 generated/known_sdk_imports_in_core.txt            |    1 +
 .../airflow/providers/amazon/aws/hooks/base_aws.py |    7 +-
 .../tests/unit/amazon/aws/hooks/test_base_aws.py   |    5 +
 .../airflow/providers/anthropic/hooks/anthropic.py |    8 +-
 providers/celery/docs/celery_executor.rst          |   51 +
 providers/celery/provider.yaml                     |   14 +
 .../celery/executors/celery_executor_utils.py      |   27 +-
 .../airflow/providers/celery/get_provider_info.py  |    7 +
 .../unit/celery/executors/test_celery_executor.py  |  124 +-
 providers/common/ai/README.rst                     |    3 +-
 providers/common/ai/docs/capabilities.rst          |   18 +-
 providers/common/ai/docs/durable_execution.rst     |  331 +++--
 providers/common/ai/docs/features.rst              |    3 +
 providers/common/ai/docs/frameworks/adk.rst        |    4 +-
 providers/common/ai/docs/frameworks/index.rst      |   33 +-
 providers/common/ai/docs/frameworks/strands.rst    |  133 +-
 providers/common/ai/docs/index.rst                 |   14 +-
 providers/common/ai/docs/installation.rst          |    7 +-
 providers/common/ai/docs/memory.rst                |  163 +++
 providers/common/ai/docs/model_providers.rst       |   17 +
 providers/common/ai/docs/observability.rst         |   15 +
 providers/common/ai/docs/operators/agent.rst       |   24 +-
 providers/common/ai/docs/operators/llm_batch.rst   |   11 +-
 .../common/ai/docs/operators/llm_file_analysis.rst |    5 -
 .../ai/docs/operators/llm_schema_compare.rst       |    5 -
 providers/common/ai/docs/operators/llm_sql.rst     |    5 -
 providers/common/ai/docs/sandbox/backends.rst      |  258 +++-
 providers/common/ai/docs/sandbox/configuration.rst |   16 +-
 providers/common/ai/docs/sandbox/index.rst         |   58 +-
 providers/common/ai/docs/stability.rst             |  124 +-
 providers/common/ai/docs/toolsets/hook.rst         |   30 +-
 providers/common/ai/docs/toolsets/index.rst        |   12 +-
 .../common/ai/docs/toolsets/object_storage.rst     |    5 -
 providers/common/ai/docs/toolsets/skills.rst       |    7 +-
 providers/common/ai/docs/troubleshooting.rst       |   26 +-
 providers/common/ai/provider.yaml                  |    8 +
 providers/common/ai/pyproject.toml                 |   24 +-
 .../providers/common/ai/decorators/llm_batch.py    |    5 -
 .../common/ai/decorators/llm_file_analysis.py      |    5 -
 .../common/ai/decorators/llm_schema_compare.py     |    5 -
 .../providers/common/ai/decorators/llm_sql.py      |    5 -
 .../providers/common/ai/durable/__init__.py        |   19 +
 .../airflow/providers/common/ai/durable/base.py    |   59 +-
 .../providers/common/ai/durable/caching_model.py   |  226 ----
 .../providers/common/ai/durable/caching_toolset.py |  141 ---
 .../providers/common/ai/durable/capability.py      |  532 ++++++++
 .../providers/common/ai/durable/fingerprint.py     |    9 +-
 .../airflow/providers/common/ai/durable/journal.py |  551 +++++++++
 .../providers/common/ai/durable/replay_usage.py    |  149 ++-
 .../providers/common/ai/durable/step_counter.py    |   52 -
 .../airflow/providers/common/ai/durable/storage.py |  140 +--
 .../airflow/providers/common/ai/durable/strands.py |  209 ++++
 .../providers/common/ai/durable/strands_storage.py |  137 +++
 .../common/ai/durable/task_state_store.py          |  155 +--
 .../ai/example_dags/example_agent_durable.py       |   35 +-
 .../common/ai/example_dags/example_agent_memory.py |  135 +++
 ...strands_agent.py => example_strands_durable.py} |   66 +-
 .../src/airflow/providers/common/ai/exceptions.py  |   10 +
 .../providers/common/ai/get_provider_info.py       |    8 +-
 .../airflow/providers/common/ai/operators/agent.py |  325 ++---
 .../providers/common/ai/operators/llm_batch.py     |    5 -
 .../common/ai/operators/llm_file_analysis.py       |    5 -
 .../common/ai/operators/llm_schema_compare.py      |    5 -
 .../providers/common/ai/operators/llm_sql.py       |    5 -
 .../providers/common/ai/plugins/_plugin_urls.py    |   50 +
 .../providers/common/ai/plugins/hitl_review.py     |   36 +-
 .../providers/common/ai/plugins/model_panel.py     |   97 ++
 .../providers/common/ai/plugins/www/package.json   |    3 +-
 .../providers/common/ai/plugins/www/pnpm-lock.yaml |   12 +
 .../ai/plugins/www/src/components/ModelPanel.tsx   |  142 +++
 .../components/{NoSession.tsx => NoModelInfo.tsx}  |   48 +-
 .../ai/plugins/www/src/components}/Tooltip.tsx     |    1 -
 .../ai/plugins/www/src/hooks/useModelInfo.ts       |   67 +
 .../common/ai/plugins/www/src/model-api.ts         |   83 ++
 .../ai/plugins/www/src/{main.tsx => model.tsx}     |   60 +-
 .../common/ai/plugins/www/src/types/model.ts       |   12 +-
 .../providers/common/ai/plugins/www/vite.config.ts |   23 +-
 .../providers/common/ai/sandbox/__init__.py        |    8 +
 .../airflow/providers/common/ai/sandbox/base.py    |    2 +-
 .../airflow/providers/common/ai/sandbox/boat.py    |  697 +++++++++++
 .../airflow/providers/common/ai/sandbox/islo.py    |  757 ++++++++++++
 .../src/airflow/providers/common/ai/sandbox/sbx.py |    3 +-
 .../airflow/providers/common/ai/tools/__init__.py  |    6 -
 .../src/airflow/providers/common/ai/tools/adk.py   |    2 +-
 .../airflow/providers/common/ai/tools/strands.py   |   12 +-
 .../airflow/providers/common/ai/tools/tracing.py   |    2 +-
 .../airflow/providers/common/ai/toolsets/hook.py   |  112 +-
 .../providers/common/ai/toolsets/managed_agent.py  |    6 +-
 .../providers/common/ai/toolsets/object_storage.py |    5 -
 .../providers/common/ai/triggers/llm_batch.py      |    5 -
 .../providers/common/ai/utils/tool_definition.py   |   12 +
 .../providers/common/ai/utils/toolset_base.py      |    5 +
 .../common/ai/tests/system/common/ai/README.md     |   33 +
 .../common/ai/example_sandbox_toolset_boat.py      |  234 ++++
 ...nsandbox.py => example_sandbox_toolset_islo.py} |   24 +-
 .../ai/tests/unit/common/ai/durable/conftest.py    |   10 +-
 .../tests/unit/common/ai/durable/memory_storage.py |   58 +
 .../ai/tests/unit/common/ai/durable/test_base.py   |   15 +-
 .../unit/common/ai/durable/test_caching_model.py   |  432 -------
 .../unit/common/ai/durable/test_caching_toolset.py |  268 ----
 .../unit/common/ai/durable/test_capability.py      |  855 +++++++++++++
 .../unit/common/ai/durable/test_fingerprint.py     |   12 +
 .../tests/unit/common/ai/durable/test_journal.py   |  427 +++++++
 .../unit/common/ai/durable/test_replay_cost.py     |  231 ++--
 .../common/ai/durable/test_replay_verification.py  |  138 ---
 .../unit/common/ai/durable/test_step_counter.py    |   38 -
 .../tests/unit/common/ai/durable/test_storage.py   |  227 +---
 .../tests/unit/common/ai/durable/test_strands.py   |  314 +++++
 .../unit/common/ai/durable/test_strands_storage.py |  156 +++
 .../common/ai/durable/test_task_state_store.py     |  212 +---
 .../tests/unit/common/ai/operators/test_agent.py   |  603 ++++-----
 .../unit/common/ai/plugins/test__plugin_urls.py    |   46 +
 .../unit/common/ai/plugins/test_hitl_review.py     |   11 -
 .../unit/common/ai/plugins/test_model_panel.py     |   72 ++
 ...review_compat.py => test_model_panel_compat.py} |   28 +-
 .../ai/tests/unit/common/ai/sandbox/test_boat.py   | 1184 ++++++++++++++++++
 .../ai/tests/unit/common/ai/sandbox/test_islo.py   | 1276 ++++++++++++++++++++
 .../ai/tests/unit/common/ai/tools/test_strands.py  |   54 +-
 .../ai/tests/unit/common/ai/toolsets/test_hook.py  |  250 +++-
 .../unit/common/ai/utils/test_tool_metrics.py      |   61 +-
 providers/common/sql/docs/operators.rst            |   18 +-
 .../sql/src/airflow/providers/common/sql/config.py |   19 +-
 .../providers/common/sql/datafusion/base.py        |    9 +
 .../providers/common/sql/datafusion/engine.py      |   23 +-
 .../sql/datafusion/object_storage_provider.py      |   70 +-
 .../unit/common/sql/datafusion/test_engine.py      |  100 +-
 .../sql/datafusion/test_object_storage_provider.py |  153 +++
 .../sql/tests/unit/common/sql/test_config.py       |    2 +
 providers/fab/docs/auth-manager/access-control.rst |   78 +-
 .../fab/src/airflow/providers/fab/www/package.json |    6 +-
 .../src/airflow/providers/fab/www/pnpm-lock.yaml   |  830 +++++++------
 .../keycloak/auth_manager/cli/commands.py          |    2 +-
 .../keycloak/auth_manager/cli/test_commands.py     |    2 +-
 pyproject.toml                                     |    8 +
 scripts/ci/prek/update_providers_dependencies.py   |    8 +-
 scripts/in_container/run_agent_framework_tests.sh  |   14 +-
 .../in_container/run_provider_yaml_files_check.py  |    3 -
 .../src/airflow/sdk/api/datamodels/_generated.py   |  132 +-
 .../sdk/execution_time/callback_supervisor.py      |    2 +
 .../src/airflow/sdk/execution_time/supervisor.py   |   27 +-
 .../execution_time/test_callback_supervisor.py     |   14 +
 .../tests/task_sdk/execution_time/test_secrets.py  |   20 +
 .../task_sdk/execution_time/test_supervisor.py     |   54 +
 ts-sdk/src/sdk/dag.ts                              |   18 +-
 ts-sdk/tests/hitl/operator.test.ts                 |   11 +
 ts-sdk/tests/sdk/trigger-dag-run.test.ts           |   13 +
 uv.lock                                            |  594 ++++-----
 223 files changed, 17885 insertions(+), 4276 deletions(-)
 create mode 100644 airflow-core/newsfragments/67592.bugfix.rst
 create mode 100644 airflow-core/newsfragments/69597.feature.rst
 create mode 100644 
airflow-core/src/airflow/api_fastapi/execution_api/dag_processor_tokens.py
 create mode 100644 
airflow-core/src/airflow/api_fastapi/execution_api/datamodels/job.py
 create mode 100644 
airflow-core/src/airflow/api_fastapi/execution_api/routes/jobs.py
 copy 
airflow-core/src/airflow/api_fastapi/execution_api/versions/{v2025_09_23.py => 
v2027_02_28.py} (64%)
 create mode 100644 
airflow-core/src/airflow/cli/commands/dag_processor_token_command.py
 create mode 100644 airflow-core/src/airflow/dag_processing/api_client.py
 copy 
airflow-core/src/airflow/migrations/versions/{0141_3_4_0_add_timetable_asset_gated_to_dagmodel.py
 => 0147_3_5_0_add_session_id_to_job.py} (50%)
 create mode 100644 
airflow-core/tests/unit/api_fastapi/execution_api/test_dag_processor_client.py
 create mode 100644 
airflow-core/tests/unit/api_fastapi/execution_api/test_dag_processor_tokens.py
 create mode 100644 
airflow-core/tests/unit/api_fastapi/execution_api/versions/head/test_jobs.py
 copy airflow-core/{src/airflow/_shared => 
tests/unit/api_fastapi/execution_api/versions/v2027_02_28}/__init__.py (100%)
 create mode 100644 
airflow-core/tests/unit/api_fastapi/execution_api/versions/v2027_02_28/test_jobs.py
 create mode 100644 
airflow-core/tests/unit/cli/commands/test_dag_processor_token_command.py
 create mode 100644 airflow-core/tests/unit/dag_processing/test_api_client.py
 create mode 100644 providers/common/ai/docs/memory.rst
 delete mode 100644 
providers/common/ai/src/airflow/providers/common/ai/durable/caching_model.py
 delete mode 100644 
providers/common/ai/src/airflow/providers/common/ai/durable/caching_toolset.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/durable/capability.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/durable/journal.py
 delete mode 100644 
providers/common/ai/src/airflow/providers/common/ai/durable/step_counter.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/durable/strands.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/durable/strands_storage.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_agent_memory.py
 copy 
providers/common/ai/src/airflow/providers/common/ai/example_dags/{example_strands_agent.py
 => example_strands_durable.py} (54%)
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/plugins/_plugin_urls.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/plugins/model_panel.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/components/ModelPanel.tsx
 copy 
providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/components/{NoSession.tsx
 => NoModelInfo.tsx} (57%)
 copy {airflow-core/src/airflow/ui/src/system-components => 
providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/components}/Tooltip.tsx
 (95%)
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/hooks/useModelInfo.ts
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/model-api.ts
 copy 
providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/{main.tsx 
=> model.tsx} (52%)
 copy dev/react-plugin-tools/react_plugin_template/src/global.d.ts => 
providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/types/model.ts
 (75%)
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/sandbox/boat.py
 create mode 100644 
providers/common/ai/src/airflow/providers/common/ai/sandbox/islo.py
 create mode 100644 
providers/common/ai/tests/system/common/ai/example_sandbox_toolset_boat.py
 copy 
providers/common/ai/tests/system/common/ai/{example_sandbox_toolset_opensandbox.py
 => example_sandbox_toolset_islo.py} (87%)
 copy airflow-core/tests/unit/listeners/slow_listener.py => 
providers/common/ai/tests/unit/common/ai/durable/conftest.py (83%)
 create mode 100644 
providers/common/ai/tests/unit/common/ai/durable/memory_storage.py
 delete mode 100644 
providers/common/ai/tests/unit/common/ai/durable/test_caching_model.py
 delete mode 100644 
providers/common/ai/tests/unit/common/ai/durable/test_caching_toolset.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/durable/test_capability.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/durable/test_journal.py
 delete mode 100644 
providers/common/ai/tests/unit/common/ai/durable/test_replay_verification.py
 delete mode 100644 
providers/common/ai/tests/unit/common/ai/durable/test_step_counter.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/durable/test_strands.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/durable/test_strands_storage.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/plugins/test__plugin_urls.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/plugins/test_model_panel.py
 copy 
providers/common/ai/tests/unit/common/ai/plugins/{test_hitl_review_compat.py => 
test_model_panel_compat.py} (51%)
 create mode 100644 
providers/common/ai/tests/unit/common/ai/sandbox/test_boat.py
 create mode 100644 
providers/common/ai/tests/unit/common/ai/sandbox/test_islo.py

Reply via email to