Skip to content

aperv-tool: support all calibration parameters in ape.properties generation #42

@phtcosta

Description

@phtcosta

Problem Statement

The APE-RV Java side (Config.java) already reads all 22+ parameters from ape.properties at startup — exploration params, MOP weights, and LLM keys. However, the Python-side aperv-tool only writes a subset to ape.properties: throttle_ms (as ape.defaultGUIThrottle) and 9 LLM keys (when llm_url is present).

This means calibration via Optuna cannot tune exploration parameters (e.g., defaultEpsilon, graphStableRestartThreshold) or MOP weights (e.g., mopWeightDirect) because they are never written to the properties file, even when passed via the @param=value DSL.

Affected Domains

  • Tools (aperv-tool)

Related FRs/NFRs

  • FR18 (Tool Plugin System)
  • FR19 (Tool Configuration)

Acceptance Criteria

  • APERV_PROPERTY_MAPPING constant maps all calibratable Python keys to Java ape.* property keys
  • _push_properties() uses the mapping to write any config key present in _tool_config
  • LLM defaults moved from _push_properties() hardcoded fallbacks into get_variants() definitions
  • aperv:sata_mop_llm@default_epsilon=0.08 generates ape.defaultEpsilon=0.08 in properties
  • Keys not in the mapping (strategy, mop_data) do NOT appear in properties
  • All existing tests pass, new tests cover exploration/MOP/mixed parameter generation
  • uv run pytest modules/aperv-tool/tests/ -v passes

Priority

Normal

Track

Quick Path — no design decisions, mechanical refactoring of _push_properties() following established pattern.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions