Feature: Plan Service Coverage Boost Target uncovered lines in plan_service.py to increase branch and line coverage. Scenario: Build actor context populates initial_context from config_blob dict Given I have a lightweight plan service for coverage boost testing And I have an actor with initial_context dict in config_blob When I build the actor context for the actor with initial_context Then the actor invocation context should contain the initial_context entries Scenario: Build actor context populates graph_descriptor from actor dict Given I have a lightweight plan service for coverage boost testing And I have an actor with a dict graph_descriptor When I build the actor context for the actor with graph_descriptor Then the actor invocation context should contain the graph_descriptor Scenario: Resolve AI provider raises PlanError when actor has no provider Given I have a lightweight plan service for coverage boost testing And the actor lookup returns an actor with empty provider When I try to resolve the AI provider for the providerless actor Then the providerless actor PlanError should contain "Actor is missing provider configuration" Scenario: Strip code fences removes markdown python fences Given I have a lightweight plan service for coverage boost testing When I strip code fences from python-fenced content Then the stripped content should contain only the inner code Scenario: Strip code fences removes generic markdown fences Given I have a lightweight plan service for coverage boost testing When I strip code fences from generic-fenced content Then the stripped content should contain only the inner text Scenario: LangSmith config returns empty dict when builder returns None Given I have a lightweight plan service for coverage boost testing And LangSmith is enabled but build_langsmith_config returns None When I build the LangSmith config for a project Then the plan service LangSmith config result should be an empty dict Scenario: Build actor context uses context_variables fallback for initial_context Given I have a lightweight plan service for coverage boost testing And I have an actor with context_variables fallback in config_blob When I build the actor context for the actor with context_variables Then the actor invocation context should contain the context_variables entries Scenario: Build actor context falls back to config_blob graph_descriptor key Given I have a lightweight plan service for coverage boost testing And I have an actor with graph_descriptor in config_blob but not on the actor When I build the actor context for the config_blob graph_descriptor actor Then the actor invocation context should contain the config_blob graph_descriptor