From eb12f77151041ed9029be59c67e1452891b9980b Mon Sep 17 00:00:00 2001 From: Colombo D Date: Fri, 12 Jun 2026 21:11:59 +0100 Subject: [PATCH] fix(modules): reference parent bundle uniformly via @main to fix uv co-install conflict MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All four modules (hook-context-intelligence, tool-context-intelligence-upload, tool-graph-query, tool-blob-read) now reference their parent bundle via a single, uniform PEP 508 direct git reference: amplifier-bundle-context-intelligence @ git+https://github.com/microsoft/amplifier-bundle-context-intelligence@main This fixes Bug #1 (uv conflicting-URLs error in worker co-install): - hook + upload previously used @v0.1.1 tag - graph-query + blob-read previously used [tool.uv.sources] path = "../.." - When co-installed, uv saw two different URLs for the same package (file:// vs git+https) and aborted the command Why @main (not @v0.1.1 or path sources): - --no-sources is a hard requirement (commit #36), so path sources are off the table (they get stripped by --no-sources). A direct URL in [project.dependencies] is mandatory. - The bundle is installed from @main operationally. - @main vs tags removes the manual per-release tag-bump, eliminates the self-referential chicken-and-egg (modules pinning their own repo's tag), and fixes version skew (modules and context_intelligence lib now come from the same commit). - Trade-off: @main is non-reproducible for standalone installs; pin a tag at release time if reproducible releases are needed later. Validation: - Reproduced original failure: co-install aborted with conflicting-URLs error. - After fix: co-install → exit 0 (11 packages); standalone --no-sources → exit 0. - Unit tests (hook dependencies + upload pyproject) → all pass. - Digital Twin Universe validation: worker co-install + standalone --no-sources both PASS; all 3 module mount() entry points load. 🤖 Generated with [Amplifier](https://github.com/microsoft/amplifier) Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com> --- modules/hook-context-intelligence/pyproject.toml | 2 +- modules/tool-blob-read/pyproject.toml | 7 +++++-- modules/tool-context-intelligence-upload/pyproject.toml | 2 +- modules/tool-graph-query/pyproject.toml | 7 +++++-- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/hook-context-intelligence/pyproject.toml b/modules/hook-context-intelligence/pyproject.toml index d8954ad..af58d7f 100644 --- a/modules/hook-context-intelligence/pyproject.toml +++ b/modules/hook-context-intelligence/pyproject.toml @@ -8,7 +8,7 @@ license = "MIT" dependencies = [ "httpx>=0.28.1", "idna>=3.15", - "amplifier-bundle-context-intelligence @ git+https://github.com/microsoft/amplifier-bundle-context-intelligence@v0.1.1", + "amplifier-bundle-context-intelligence @ git+https://github.com/microsoft/amplifier-bundle-context-intelligence@main", ] [project.entry-points."amplifier.modules"] diff --git a/modules/tool-blob-read/pyproject.toml b/modules/tool-blob-read/pyproject.toml index d5c9219..ea8de8c 100644 --- a/modules/tool-blob-read/pyproject.toml +++ b/modules/tool-blob-read/pyproject.toml @@ -6,7 +6,7 @@ requires-python = ">=3.11" license = "MIT" dependencies = [ - "amplifier-bundle-context-intelligence", + "amplifier-bundle-context-intelligence @ git+https://github.com/microsoft/amplifier-bundle-context-intelligence@main", "httpx>=0.28.1", "idna>=3.15", ] @@ -21,6 +21,10 @@ build-backend = "hatchling.build" [tool.uv] package = true +[tool.hatch.metadata] +# Required to build a wheel that carries a PEP 508 direct-reference (git+https) dependency. +allow-direct-references = true + [tool.hatch.build.targets.wheel] packages = ["amplifier_module_tool_blob_read"] @@ -34,7 +38,6 @@ dev = [ ] [tool.uv.sources] -amplifier-bundle-context-intelligence = { path = "../.." } amplifier-core = { git = "https://github.com/microsoft/amplifier-core", branch = "main" } [tool.pytest.ini_options] diff --git a/modules/tool-context-intelligence-upload/pyproject.toml b/modules/tool-context-intelligence-upload/pyproject.toml index 6e3cf3a..baf3ece 100644 --- a/modules/tool-context-intelligence-upload/pyproject.toml +++ b/modules/tool-context-intelligence-upload/pyproject.toml @@ -5,7 +5,7 @@ requires-python = ">=3.11" license = "MIT" dependencies = [ - "amplifier-bundle-context-intelligence @ git+https://github.com/microsoft/amplifier-bundle-context-intelligence@v0.1.1", + "amplifier-bundle-context-intelligence @ git+https://github.com/microsoft/amplifier-bundle-context-intelligence@main", "httpx>=0.28.1", "idna>=3.15", "amplifier-module-hook-context-intelligence", diff --git a/modules/tool-graph-query/pyproject.toml b/modules/tool-graph-query/pyproject.toml index 346bc50..673c16a 100644 --- a/modules/tool-graph-query/pyproject.toml +++ b/modules/tool-graph-query/pyproject.toml @@ -6,7 +6,7 @@ requires-python = ">=3.11" license = "MIT" dependencies = [ - "amplifier-bundle-context-intelligence", + "amplifier-bundle-context-intelligence @ git+https://github.com/microsoft/amplifier-bundle-context-intelligence@main", "httpx>=0.28.1", "idna>=3.15", ] @@ -21,6 +21,10 @@ build-backend = "hatchling.build" [tool.uv] package = true +[tool.hatch.metadata] +# Required to build a wheel that carries a PEP 508 direct-reference (git+https) dependency. +allow-direct-references = true + [tool.hatch.build.targets.wheel] packages = ["amplifier_module_tool_graph_query"] @@ -34,7 +38,6 @@ dev = [ ] [tool.uv.sources] -amplifier-bundle-context-intelligence = { path = "../.." } amplifier-core = { git = "https://github.com/microsoft/amplifier-core", branch = "main" } [tool.pytest.ini_options]