From cfdbe4161e102ec81ae657f8edcbca4c38cde291 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 27 Mar 2026 09:20:45 +0000 Subject: [PATCH 1/2] Add PSR-11 ContainerInterface support to TracingResolver The upstream axiom package now has BindableResolver extending PSR-11's ContainerInterface. This adds the required get() and has() methods to TracingResolver, delegating to the inner resolver. https://claude.ai/code/session_012JM3NBW2w7F9vhGSmrMWuf --- composer.json | 5 +++-- src/TracingResolver.php | 10 ++++++++++ tests/TracingResolverTest.php | 15 +++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 9d50c80..e09705c 100644 --- a/composer.json +++ b/composer.json @@ -5,8 +5,9 @@ "license": "MIT", "require": { "php": "^8.4", - "gosuperscript/axiom": "^0.3.0", - "gosuperscript/monads": "^1.0" + "gosuperscript/axiom": "^0.3.3", + "gosuperscript/monads": "^1.0", + "psr/container": "^2.0" }, "require-dev": { "phpunit/phpunit": "^11.0", diff --git a/src/TracingResolver.php b/src/TracingResolver.php index ab34059..b33547b 100644 --- a/src/TracingResolver.php +++ b/src/TracingResolver.php @@ -48,6 +48,16 @@ public function instance(string $key, mixed $concrete): void $this->inner->instance($key, $concrete); } + public function get(string $id): mixed + { + return $this->inner->get($id); + } + + public function has(string $id): bool + { + return $this->inner->has($id); + } + /** * Register a callback that fires whenever a top-level resolution * completes. This is how you consume traces without changing diff --git a/tests/TracingResolverTest.php b/tests/TracingResolverTest.php index ca8f689..deedb55 100644 --- a/tests/TracingResolverTest.php +++ b/tests/TracingResolverTest.php @@ -552,6 +552,21 @@ public function test_collect_across_traced_tree(): void $this->assertContains('+', $labels); } + public function test_get_delegates_to_inner_resolver(): void + { + $tracer = $this->createResolver(); + + $this->assertInstanceOf(TracingResolver::class, $tracer->get(Resolver::class)); + } + + public function test_has_delegates_to_inner_resolver(): void + { + $tracer = $this->createResolver(); + + $this->assertTrue($tracer->has(Resolver::class)); + $this->assertFalse($tracer->has('non.existent.key')); + } + public function test_multiple_sequential_resolutions_produce_independent_trees(): void { $tracer = $this->createResolver(); From c714d8ca0541abbddc37ae8cc6c42b4fea0d27aa Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 27 Mar 2026 09:29:23 +0000 Subject: [PATCH 2/2] Remove redundant psr/container dependency Already provided transitively via gosuperscript/axiom ^0.3.3. https://claude.ai/code/session_012JM3NBW2w7F9vhGSmrMWuf --- composer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/composer.json b/composer.json index e09705c..32e48e5 100644 --- a/composer.json +++ b/composer.json @@ -6,8 +6,7 @@ "require": { "php": "^8.4", "gosuperscript/axiom": "^0.3.3", - "gosuperscript/monads": "^1.0", - "psr/container": "^2.0" + "gosuperscript/monads": "^1.0" }, "require-dev": { "phpunit/phpunit": "^11.0",