One commit per plugin, each replicating its v4 msg_curse layout. Each
task starts by reading the v4 source + catalogue (project memory rule
`feedback-tui-v5-must-mirror-v4`).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- SKILL-plugin.md: new section explaining when and how to write a
per-plugin TUI renderer; pointers to cpu reference + v4 catalogue.
- architecture §1.4: per-plugin renderer documented as the escape hatch
for layouts the generic table fallback cannot produce.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two TUI corrections raised by the v4/v5 visual comparison:
1. Internal fields (time_since_update, cpucore) leaked into the UI. They
are computation support (rate divisor, threshold normalizer) and
should never be displayed. Introduces a new `internal: True` flag in
the `fields_description` schema. Tagged:
- time_since_update (base class, every plugin)
- cpucore (cpu, load)
The flag is rendering-only: the field still goes through the REST
API and is available to `normalize_by` / `rate` computations.
2. Plugin blocks rendered as left/right cells with a fixed 1-space gap,
which made cpu/mem/load blocks misaligned. Now:
- scalar blocks: 2-column table (label left-aligned, value right-aligned)
- collection blocks: N-column table (primary key left-aligned, rest right)
Column widths auto-fit the widest content per block.
Docs:
- SKILL-plugin.md: `internal` added to renderer-hints table
- glances-v5-architecture-decisions.md §3.2: `internal` documented
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add the v5 configuration module with layered overlay (defaults → /etc →
XDG → → -C → env vars), typed get() accessor,
as_dict_secure() for CVE-2026-32609 redaction, and a reload() hook
preparing the Phase 4 mtime polling.
The module lives next to glances/config.py (v4) without import or
inheritance — strict isolation throughout the v5 transition.
42 unit tests (unittest only, no pytest per architecture decision §9),
~30 ms total. Ruff check + format clean.
Includes the SKILL-config.md contributor doc.
Refs: docs/architecture/glances-v5-architecture-decisions.md (§2, Phase 0)
- Add [mpp] section to conf/glances.conf with disable=True
- Add docs/aoa/mpp.rst documentation page and index entry
- Add unit test test_026_mpp with Rockchip MPP test fixtures
- Remove unnecessary hasattr guard on get_refresh()
- Init _last_stats_computed_time to time.time() to avoid stale first reading
- Guard against ZeroDivisionError in IO/network rate calculations
- Use title-case status from pylxd directly
- Add trailing newline to containers.rst
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>