Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: adcontextprotocol/adcp-client-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.6.0
Choose a base ref
...
head repository: adcontextprotocol/adcp-client-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.7.0
Choose a head ref
  • 4 commits
  • 22 files changed
  • 3 contributors

Commits on Nov 19, 2025

  1. refactor: remove direct generated_poc imports (#65)

    * refactor: remove direct generated_poc imports
    
    Replace all direct imports from adcp.types.generated_poc with imports from
    adcp.types._generated. This enforces the public API boundary and prevents
    downstream users from depending on internal implementation details.
    
    Changes:
    - Update consolidate_exports.py to handle Package name collision by exporting
      both types with qualified names (_PackageFromPackage, _PackageFromCreateMediaBuyResponse)
    - Migrate client.py to import TaskStatus from _generated
    - Migrate aliases.py to import all types from _generated
    - Migrate stable.py to import Package from _generated using qualified name
    - Regenerate _generated.py with collision-resolved exports
    
    This ensures that:
    1. generated_poc directory remains internal (not part of public API)
    2. All type consolidation happens in _generated.py
    3. Only stable.py and aliases.py provide public type exports
    4. Users import from adcp or adcp.types.stable, not internal modules
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * fix: enforce import boundary - only stable.py/aliases.py may use _generated
    
    Source code was incorrectly importing from _generated.py, making it just as
    brittle as importing from generated_poc. This fixes the architecture to
    properly enforce the public API boundary.
    
    Changes:
    - Add WebhookPayload to stable.py exports
    - Change client.py, __init__.py, simple.py to import from stable.py
    - Change preview_cache.py to use semantic aliases (PreviewCreativeFormatRequest)
    - Document import architecture rules in CLAUDE.md
    
    Import architecture (enforced):
    ```
    generated_poc/*.py (internal)
        ↓
    _generated.py (internal consolidation)
        ↓
    stable.py + aliases.py (ONLY files that import from _generated)
        ↓
    All other source code (imports from stable/aliases only)
    ```
    
    This prevents brittleness from:
    - Collision-resolution qualifiers (_PackageFromX)
    - Numbered discriminated union types (Response1, Response2)
    - Schema evolution changes in generated files
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * fix: sort imports to pass ruff linter
    
    Ruff check was failing due to unsorted imports. Fixed by running ruff --fix.
    
    Changes:
    - Sort imports in __init__.py according to isort rules
    - Sort imports in client.py
    - Sort imports in aliases.py
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * chore: remove review artifacts from commit history
    
    The ARCHITECTURE_REVIEW.md, PR65_EVALUATION.md, and type_collision_demo.py
    were created by review agents as deliverables but shouldn't be part of the
    repository.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * fix: resolve PublisherProperties name collision with qualified exports
    
    The consolidation script now handles PublisherProperties name collisions
    between adagents and product modules by exporting both with qualified names:
    - _PublisherPropertiesFromProduct (used for semantic aliases)
    - _PublisherPropertiesFromAdagents
    - _PublisherProperties4FromProduct (by_id discriminator)
    - _PublisherProperties5FromProduct (by_tag discriminator)
    
    Updated aliases.py and tests to use qualified names from _generated.py
    instead of importing directly from generated_poc modules, enforcing
    proper import boundaries.
    
    All 295 tests pass.
    
    Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * feat: adopt shared PublisherPropertySelector schema from upstream
    
    After upstream PR #219 merged, the PublisherProperties type is now
    defined in a shared publisher-property-selector.json schema with all
    3 variants (all, by_id, by_tag).
    
    Changes:
    - Synced schemas from upstream (now includes publisher-property-selector.json)
    - Regenerated types (PublisherPropertySelector1/2/3 from shared schema)
    - Removed PublisherProperties from collision handling in consolidate_exports.py
    - Updated aliases.py to use PublisherPropertySelector types
    - Updated tests to reference shared types instead of module-specific variants
    
    Benefits:
    - Single source of truth for publisher property selection
    - No more name collisions between adagents and product modules
    - Simplified type system with cleaner exports
    - DRY schema definitions maintained upstream
    
    All 295 tests pass.
    
    Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    ---------
    
    Co-authored-by: Claude <noreply@anthropic.com>
    bokelley and claude authored Nov 19, 2025
    Configuration menu
    Copy the full SHA
    346689d View commit details
    Browse the repository at this point in the history
  2. fix: trigger 2.6.1 release for import boundary enforcement (#66)

    The refactor in PR #65 enforces the public API boundary by removing direct
    imports from generated_poc. This is an important fix that prevents users from
    depending on internal implementation details.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-authored-by: Claude <noreply@anthropic.com>
    bokelley and claude authored Nov 19, 2025
    Configuration menu
    Copy the full SHA
    ee8017a View commit details
    Browse the repository at this point in the history
  3. feat: export FormatId, PackageRequest, PushNotificationConfig, and Pr…

    …iceGuidance from stable API (#68)
    
    Add missing types to stable.py public API:
    - FormatId: Format identifier type (agent_url + id)
    - PackageRequest: Request structure for creating packages
    - PushNotificationConfig: Webhook push notification configuration
    - PriceGuidance: Pricing guidance for auction-based options (floor, percentiles)
    
    These types are commonly used in AdCP workflows and should be part of
    the stable public API to avoid users importing from internal generated modules.
    
    Changes:
    - Add types to adcp.types.stable imports and __all__
    - Add types to adcp.__init__.py imports and __all__
    - Group PriceGuidance with other pricing types
    - Add new "Configuration types" section for PushNotificationConfig
    
    All types are properly exported from both stable.py and main package.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-authored-by: Claude <noreply@anthropic.com>
    bokelley and claude authored Nov 19, 2025
    Configuration menu
    Copy the full SHA
    654f882 View commit details
    Browse the repository at this point in the history
  4. chore(main): release 2.7.0 (#67)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] authored Nov 19, 2025
    Configuration menu
    Copy the full SHA
    d37ce90 View commit details
    Browse the repository at this point in the history
Loading