Skip to content

fix(uv-sources): remove inconsistent editable=true declarations#25

Merged
bkrabach merged 1 commit into
mainfrom
fix/uv-sources-editable-consistency
May 22, 2026
Merged

fix(uv-sources): remove inconsistent editable=true declarations#25
bkrabach merged 1 commit into
mainfrom
fix/uv-sources-editable-consistency

Conversation

@bkrabach
Copy link
Copy Markdown
Collaborator

Problem

When the Amplifier Resolve provisioning pipeline (specifically 08-ci-install.sh) batch-installs all three context-intelligence submodules via a single uv command, the resolver fails with a conflicting URLs error:

× Failed to resolve dependencies for 'amplifier-module-tool-graph-query'
  ╰─▶ Requirements contain conflicting URLs for package
      'amplifier-bundle-context-intelligence':
      - file:///opt/amplifier-bundle-context-intelligence
      - file:///opt/amplifier-bundle-context-intelligence (editable)

This occurs because two of the three submodules declare the parent bundle in [tool.uv.sources] with editable = true, while the third does not. uv refuses to reconcile this inconsistency.

Root Cause

In amplifier-bundle-context-intelligence@887b03a2:

Module Declaration in [tool.uv.sources] Editable?
hook-context-intelligence { path = "../.." } NO ✓
tool-graph-query { path = "../..", editable = true } YES ✗
tool-blob-read { path = "../..", editable = true } YES ✗

When uv pip install processes all three modules in a single invocation, it records three independent source declarations for the same parent path with disagreeing modes. The --no-editable CLI flag does NOT override per-module source declarations on the uv version used in the Resolve provisioning environment.

Solution

This PR aligns all three submodules to use consistent non-editable parent declarations:

  • modules/tool-graph-query/pyproject.toml — remove editable = true
  • modules/tool-blob-read/pyproject.toml — remove editable = true
  • modules/hook-context-intelligence/pyproject.toml — no change (already correct)

All three now uniformly declare: amplifier-bundle-context-intelligence = { path = "../.." }

Verification

The equivalent fix has been validated in the Amplifier Resolve runtime environment. After applying these changes, the provisioning command completes cleanly:

+ amplifier-bundle-context-intelligence==0.1.1
+ amplifier-module-hook-context-intelligence==0.1.1
+ amplifier-module-tool-graph-query==0.1.1
+ amplifier-module-tool-blob-read==0.1.1

Changes

  • Two lines removed (with editable = true declaration)
  • Two lines added (without editable = true declaration)
  • TOML syntax validated on both modified files
  • No other files modified

Generated with Amplifier

…ligence submodules

Removes the 'editable = true' declaration from the [tool.uv.sources] entry for
'amplifier-bundle-context-intelligence' in two of three submodules:
- modules/tool-graph-query/pyproject.toml
- modules/tool-blob-read/pyproject.toml

The third module (hook-context-intelligence) already uses the correct non-editable
form: { path = '../..' }

This resolves a uv resolver bug where inconsistent editable/non-editable declarations
for the same parent path cause conflicts during batch installation:

  × Failed to resolve dependencies for 'amplifier-module-tool-graph-query'
    ╰─▶ Requirements contain conflicting URLs for package
        'amplifier-bundle-context-intelligence':
        - file:///opt/amplifier-bundle-context-intelligence
        - file:///opt/amplifier-bundle-context-intelligence (editable)

The Amplifier Resolve provisioning pipeline (08-ci-install.sh) batch-installs all
three submodules in a single command, exposing this bug. With all three submodules
consistently declaring the parent as non-editable, the install completes cleanly.

Generated with Amplifier
Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.com>
@bkrabach bkrabach merged commit 83a99b6 into main May 22, 2026
9 checks passed
@bkrabach bkrabach deleted the fix/uv-sources-editable-consistency branch May 22, 2026 22:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant