Skip to content

P0-18: Every key in TreeHouse/settings.json must have a reader; club_screen honours --config #196

Open

Description

@charliehuge

Part of #175 (audit Phase 0). Mostly subsumed by P0-14; do after it. Evidence: docs/audit/2026-11-09/detail/showcontrol-core.md §6 and §2 club_screen.py.

Unread keys in ShowControl/TreeHouse/settings.json today.

Key Lines Code reads
pico_dioramas, pico_structure 2-10 pico (coordinator.py:177). Gone with P0-14.
garage_windows.forge_and_flora.arc_led_count, bloom_led_count 69, 71 led_count (coordinator.py:208), default 48 on 20-px strips. Gone with P0-14.
garage_windows.forge_and_flora.flicker_intensity 74 base_flicker_intensity / max_flicker_intensity. Gone with P0-14.
attic (whole block) 95-102 Nothing. No attic in any Python. Gone with P0-14.
club_screen.interval_seconds 105 Nothing. club_screen.py:166-171,243 reads font_size_max, font_size_min, hold_top_seconds, scroll_speed_px_per_sec, hold_bottom_seconds, fade_duration_seconds, messages_file; only messages_file is in the file.
looking_glass.mirror_depth 62 Read into state, never sent to the renderer (video.py:73-75).

Do (after P0-14).

  • Replace club_screen.interval_seconds with the six keys club_screen.py actually reads (with the current code defaults), and update ADR-0017.
  • Either send mirror_depth to the renderer or delete the key.
  • club_screen.py: _load_config() ignores --config and always loads ./settings.json; honour the flag. It also hardcodes WIDTH, HEIGHT = 800, 480; move to settings or document why fixed.
  • Add a small test or script that lists top-level settings keys and asserts each is read somewhere in ShowControl/TreeHouse/*.py.

Done when. Zero orphan keys in settings.json; club_screen.py --config other.json loads other.json.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentImplementation task suitable for an AI agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions