Skip to content

VALUE-02A — Feed configured-target discovery into campaign planning #129

Description

@daniele21

Parent: #128

Goal

Make configured Local LLM Server targets truly multi-model-safe for Campaign planning and evidence attribution.

  1. A successful configured-target /v1/models probe must feed the canonical campaign-planning candidate inventory so Find best setup can see all real models on that target.
  2. Every derived candidate Run must rebind Local LLM Server identity + telemetry configuration to that candidate model instead of inheriting the starter template model id.

Owner

  • src/performance_lab/application/planning_queries.py
  • thin adapter integration in src/performance_lab/ui_api.py
  • focused endpoint/planning tests

Invariants

  • configured model remains a valid candidate;
  • discovered models are deduplicated by canonical candidate identity;
  • only successful probe results update session discovery state;
  • failed/unhealthy probes do not erase the last successful in-session inventory;
  • discovery remains session-local; no persistence/migration is introduced;
  • candidate Run model_id, local_llm_server_identity.model_id and local_llm_server_telemetry.model_id must agree when those first-party integrations are configured;
  • base URLs, timeouts, required flags and telemetry sampling settings are preserved while rebinding model identity;
  • Local LLM Server owns model availability/runtime lifecycle.

Acceptance

  • configured-target probe returning 2+ models is reflected by /api/v1/campaign-planning;
  • both discovered candidates can appear in one frozen CampaignPlanPreviewRequest;
  • plan derives one run per selected candidate;
  • every candidate Run carries matching first-party LLS identity/telemetry model ids;
  • unknown/unavailable discovery stays explicit;
  • deterministic tests cover discovery, dedupe and per-candidate evidence attribution.

Integration gate

Development may proceed on feat/value-02a-target-discovery, but do not merge to dev until VALUE-01D #120 passes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions