Skip to content

feat: vitals leg — pinned-value drift flags from autolens_profiling #37

Description

@Jammy2211

Overview

autolens_profiling's runtime cells now record and flag pinned likelihood/evidence drift instead of crashing (autolens_profiling#54 / PR #55): every result JSON carries pinned_expected and pinned_drift (list of {label, expected, got, rel_diff, rtol}; empty = matched; pinned_expected: null = no pin). Boundary rule (autolens_profiling/results/notes/design_lock_in.md): profiling records and flags, autolens_workspace_test adjudicates. This task closes the loop — Heart's vitals surface the flags, since a drifted likelihood is a health finding either way (library regression or stale pin) and the profiling baselines are non-comparable until resolved. Autonomy: --auto, effective level supervised.

Plan

  • New collector heart/checks/profiling_drift.py (observer-only): scan ../autolens_profiling/results/**/*.json for non-empty pinned_drift, write ~/.pyauto-heart/profiling_drift.json (count + per-finding cell path, instrument, label, expected/got, PyAutoLens version) via state.atomic_write_json, print the standard glyph status line.
  • Wire into the snapshot: heart/state.py reads the JSON; heart/tick.sh invokes the module (skip gracefully when the profiling repo is absent, mirroring the script_timing skip).
  • Readiness leg: readiness.compute() adds a YELLOW reason per drifted cell (capped list + count), mirroring script-timing's shape.
  • Dashboard: register a profiling_drift section.
  • Tests: tests/test_profiling_drift.py (synthetic results trees: clean / drifted / no-pin / repo-absent) + a readiness case.
Detail

Affected Repositories

  • PyAutoHeart (primary; reads autolens_profiling artifacts read-only)

Branch Survey

Repository Current Branch Dirty?
./PyAutoHeart main clean

Suggested branch: feature/profiling-drift-check · Classification: Library (organism repo) · Worktree: ~/Code/PyAutoLabs-wt/profiling-drift-check/

Key Files

  • heart/checks/profiling_drift.py (new), heart/state.py, heart/tick.sh, heart/readiness.py, heart/dashboard.py, tests/test_profiling_drift.py (new)

Original Prompt

PyAutoMind feature/pyautoheart/profiling_drift_check.md (origin: user request 2026-07-08, in-conversation during polish phase 2).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions