Skip to content

feat(kpa1500): enable toggle + separate configuration window (FR-AMP-01) - #183

Open
dc0sk wants to merge 1 commit into
mainfrom
feat/kpa1500-config
Open

feat(kpa1500): enable toggle + separate configuration window (FR-AMP-01)#183
dc0sk wants to merge 1 commit into
mainfrom
feat/kpa1500-config

Conversation

@dc0sk

@dc0sk dc0sk commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Summary

First slice of KPA1500 amplifier support (FR-AMP-01), opt-in and off by default:

  • A KPA1500 amplifier section in Settings with a Support: ON/OFF toggle and a Configuration… button.
  • A separate window ("K4 Remote — KPA1500") for the amplifier's connection — host, TCP port (default 1500), telemetry poll interval — persisted across sessions.

Design decision on record

The link targets the KPA1500's own Ethernet CAT server (its remote-head ^CP/^IP interface), a second connection alongside the K4 — not the K4's EC passthrough. D12's EC is SET-only and, per its own note, makes the K4 ignore the amplifier's replies until restart, so it cannot back a telemetry-aware panel; the amp's own Ethernet can. (Confirmed against the KPA1500 Programming Reference and the QK4 reference project, which polls the amp over exactly this interface.)

The window mirrors the existing detached diagnostics-window daemon pattern (open/close/ESC/title/per-window view dispatch).

Scope

Enable + connection surface only. Amplifier telemetry, metering and control are the next slice (k4-kpa crate). Only the KPA1500 is in scope — the KPA500 and KAT500 are serial-only, have no Ethernet server, and are excluded (absent even from QK4).

Verification

  • cargo fmt / clippy --all-targets -D warnings / full test suite — green (pre-commit gate).
  • xtask trace — green; FR-AMP-01 covered by fr_amp_01_kpa1500_defaults_off_and_persists (default-off, port/poll defaults, TOML round-trip, legacy-config load).
  • Feature strings present in the release binary; --demo run confirmed the Settings section renders and the Configuration… button opens the separate window.

🤖 Generated with Claude Code

Add opt-in KPA1500 amplifier support, first slice: a Settings toggle and
a detached configuration window for the amplifier's connection (host, TCP
port defaulting to 1500, telemetry poll interval), persisted across
sessions.

The link targets the KPA1500's own Ethernet CAT server (its remote-head
`^CP`/`^IP` interface), a second connection alongside the K4 — not the
K4's `EC` passthrough. D12's `EC` is SET-only and, per its own note,
makes the K4 ignore the amplifier's replies until restart, so it cannot
back a telemetry-aware panel; the amp's own Ethernet can.

The window mirrors the existing detached diagnostics-window daemon
pattern (open/close/ESC/title/per-window view dispatch). Port/poll inputs
are digit-filtered and fall back to 1500/500 rather than persisting an
unusable value.

Scope: enable + connection surface only. Amplifier telemetry, metering
and control are the next slice. Only the KPA1500 is in scope; the KPA500
and KAT500 are serial-only with no Ethernet server and are excluded.

Config-layer test fr_amp_01_kpa1500_defaults_off_and_persists covers the
default-off, port/poll defaults, TOML round-trip and legacy-config paths.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KiAgfnGv746wwVBSfFkoRY
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant