Skip to content

actop 1.4.10

Choose a tag to compare

@binlecode binlecode released this 09 Aug 19:03
· 86 commits to main since this release
4436ef5

Changed

  • TUI charts in dots glyph mode (the default) now pack 2 time samples per
    character
    by using both braille dot columns (left = earlier sample, right =
    later), doubling horizontal density to a continuous btop-style line instead of
    the previous sparse single-column poles. Applies to both the section charts
    (BrailleChart._render_dots) and the inline per-core / power sparklines
    (_inline_spark), which now share one _braille_cell_bits primitive. block
    glyph mode is unchanged (1 sample/character). The chart time-span label accounts
    for the 2×-denser dots sampling.

Added

  • TUI Fan row: each fan's RPM reading is prefixed with a braille-cascade spinner
    (⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏) whose spin rate is proportional to RPM, driven by its own timer
    decoupled from the sampler poll cadence.

Docs

  • docs/DESIGN-system.md: document the dense 2-samples-per-character braille
    rendering (§5.2), refresh the grid/stack/process TUI capture frames, and add
    §4.2.1 explaining why temperature is reported per-cluster (not per-core) —
    including the Apple Silicon sensor-count reality and how btop's per-core
    temperature column actually spreads a few cluster sensors across rows.
  • Rename docs/DESIGN-sdlc-cicd-release.mddocs/DESIGN-sdlc-cicd.md
    ("release" is already implied by CI/CD) and update all references.

Tests

  • tests/test_runtime_contracts.py: enforce the functional-tests-only mandate —
    remove test_soc_info_contract and test_top_processes_contract (pure
    shape/bounds assertions whose code paths are already covered behaviorally by
    test_config.py and test_per_process_power.py), and rewrite the RAM test
    into a native-parse sanity guard (the derived-field invariants it previously
    asserted were tautological; the load-bearing check is that the raw reading is
    physically sane).