From 2d8ee67e02bfa6b39dd43b73726edb3ad4dabe45 Mon Sep 17 00:00:00 2001 From: Ken Chau Date: Thu, 15 Oct 2026 00:59:47 +0000 Subject: [PATCH] fix: use coherent main Foundation and public agent sources --- README.md | 12 ++++-------- modules/loop-amplifier-agent/README.md | 21 ++++++--------------- modules/loop-amplifier-agent/pyproject.toml | 5 ----- modules/pipeline-runner/pyproject.toml | 9 +++------ pyproject.toml | 11 +---------- 5 files changed, 14 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 53744a3..9d61ebb 100644 --- a/README.md +++ b/README.md @@ -5,14 +5,10 @@ The mandatory root adapter now uses `amplifier_agent` public handles, not the private Engine/CLI integration described in historical sections below. Binding `main#subdirectory=packages/python` deliberately floats, with the -`github-copilot` extra. Binding 0.22.0 pins engine v0.22.0, Core 2.0.1 and -Foundation `21ad50fa40f7acff913cbf6615228ac359f7dedd`. - -The former Foundation-main policy conflicts with that engine SHA in an -unoverridden consumer solve. Runner's published Foundation requirement/source -now align to the engine SHA as a narrow consumer exception; the root override -is removed. The historical shape-only fix below no longer governs this install. -Consumers requiring Foundation main still need independent qualification. +`github-copilot` extra. The binding and engine use the same `main` source; +the engine and runner both select Foundation `main`. There is no consumer +engine or Foundation override. Release tooling must resolve and freeze the +agent binding, engine and Foundation commits together before installation. Canonical ยงยง1.4/4.5 allow this backend replacement without altering graph traversal, String|Outcome or the worker-written status-file channel. diff --git a/modules/loop-amplifier-agent/README.md b/modules/loop-amplifier-agent/README.md index 2ad8e0f..54efa0e 100644 --- a/modules/loop-amplifier-agent/README.md +++ b/modules/loop-amplifier-agent/README.md @@ -142,20 +142,11 @@ The binding deliberately floats: amplifier-agent[github-copilot] @ git+https://github.com/microsoft/amplifier-agent@main#subdirectory=packages/python ``` -Binding 0.22.0 pins engine v0.22.0; that engine pins Foundation -`21ad50fa40f7acff913cbf6615228ac359f7dedd`. Runner `main` Foundation conflicts in -an unoverridden consumer solve. The runner now aligns its published requirement -and source to that exact pin as a narrow consumer exception. There is no root -Foundation override hiding qualification failures. Other ecosystem consumers -still naming Foundation main may conflict and need independent qualification. - -Upstream's `workspace=true` engine source can leak the binding-main revision -into a consumer uv lock despite the binding's published engine tag. Root and -adapter lock roots therefore carry a narrow engine-only override to the exact -published v0.22.0 tag. This corrects development locks, not runtime authority. -Fresh `uv --no-config pip install --no-sources` checks run independently of -that override. When binding main changes its engine requirement, requalify and -update this correction rather than silently holding an obsolete tag. +The binding and engine select the same upstream `main` source. Foundation +and tool-delegate also select Foundation `main`, matching the runner without +an engine or Foundation override. Release tooling must explicitly resolve and +freeze both agent packages and Foundation at their selected commits. An +installation from moving refs alone does not establish immutable provenance. ```bash cd modules/loop-amplifier-agent @@ -177,4 +168,4 @@ Live tests require Anthropic credentials and have honest credential skips: seeded random history recall plus a two-node full-fidelity graph/control run, different models, actual selection records and status outside cwd read by the real parent. The outer spawn carrier in that local test is doubled; it is not proof -of installed Foundation spawning. Manager DTU qualification remains required. \ No newline at end of file +of installed Foundation spawning. Manager DTU qualification remains required. diff --git a/modules/loop-amplifier-agent/pyproject.toml b/modules/loop-amplifier-agent/pyproject.toml index 391f1fe..3ce306e 100644 --- a/modules/loop-amplifier-agent/pyproject.toml +++ b/modules/loop-amplifier-agent/pyproject.toml @@ -35,11 +35,6 @@ build-backend = "hatchling.build" [tool.uv] package = true -# Lock-only correction for upstream workspace=true source leakage. This is -# exactly the binding's published engine tag, never a Foundation override. -override-dependencies = [ - "amplifier-agent-engine[github-copilot] @ git+https://github.com/microsoft/amplifier-agent@v0.22.0#subdirectory=packages/engine", -] [tool.uv.sources] # Test-only, same-repo path source (dev dependency-group member below). The diff --git a/modules/pipeline-runner/pyproject.toml b/modules/pipeline-runner/pyproject.toml index 6189ac1..798c4c0 100644 --- a/modules/pipeline-runner/pyproject.toml +++ b/modules/pipeline-runner/pyproject.toml @@ -7,10 +7,7 @@ requires-python = ">=3.11" authors = [{ name = "Microsoft MADE:Explorations Team" }] dependencies = [ "amplifier-core>=2.0.1", - # Narrow consumer exception: the public binding's v0.22.0 engine requires - # this exact Foundation source. main conflicts in an unoverridden solve. - # Direct URL also survives Foundation activation with --no-sources. - "amplifier-foundation @ git+https://github.com/microsoft/amplifier-foundation@21ad50fa40f7acff913cbf6615228ac359f7dedd", + "amplifier-foundation @ git+https://github.com/microsoft/amplifier-foundation@main", "amplifier-module-loop-pipeline[remote] @ git+https://github.com/microsoft/amplifier-bundle-dot-runner@main#subdirectory=modules/loop-pipeline", ] @@ -25,7 +22,7 @@ build-backend = "hatchling.build" package = true [tool.uv.sources] -amplifier-foundation = { git = "https://github.com/microsoft/amplifier-foundation", rev = "21ad50fa40f7acff913cbf6615228ac359f7dedd" } +amplifier-foundation = { git = "https://github.com/microsoft/amplifier-foundation", rev = "main" } amplifier-module-loop-pipeline = { path = "../loop-pipeline" } amplifier-module-remote-source = { path = "../remote-source" } @@ -42,4 +39,4 @@ dev = ["pytest>=8.0.0", "pytest-asyncio>=1.0.0", "amplifier-module-remote-source testpaths = ["tests"] addopts = "--import-mode=importlib" asyncio_mode = "strict" -pythonpath = ["../loop-pipeline", "../unified-llm-client"] \ No newline at end of file +pythonpath = ["../loop-pipeline", "../unified-llm-client"] diff --git a/pyproject.toml b/pyproject.toml index accab06..9991da6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,15 +24,6 @@ Repository = "https://github.com/microsoft/amplifier-bundle-dot-runner" [project.scripts] dot-runner = "amplifier_dot_runner:main" -[tool.uv] -# Lock-only correction: upstream's workspace=true engine source otherwise -# leaks the binding-main checkout into our lock, bypassing its published tag. -# Fresh --no-config --no-sources installations qualify the real metadata -# independently; Foundation is deliberately NOT overridden. -override-dependencies = [ - "amplifier-agent-engine[github-copilot] @ git+https://github.com/microsoft/amplifier-agent@v0.22.0#subdirectory=packages/engine", -] - [tool.uv.sources] amplifier-module-pipeline-runner = { path = "modules/pipeline-runner" } amplifier-module-loop-amplifier-agent = { path = "modules/loop-amplifier-agent" } @@ -42,4 +33,4 @@ amplifier-module-loop-agent = { path = "modules/loop-agent" } packages = ["amplifier_dot_runner"] [tool.hatch.metadata] -allow-direct-references = true \ No newline at end of file +allow-direct-references = true