feat(kpa1500): enable toggle + separate configuration window (FR-AMP-01) - #183
Open
dc0sk wants to merge 1 commit into
Open
feat(kpa1500): enable toggle + separate configuration window (FR-AMP-01)#183dc0sk wants to merge 1 commit into
dc0sk wants to merge 1 commit into
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First slice of KPA1500 amplifier support (
FR-AMP-01), opt-in and off by default:Design decision on record
The link targets the KPA1500's own Ethernet CAT server (its remote-head
^CP/^IPinterface), a second connection alongside the K4 — not the K4'sECpassthrough. D12'sECis 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-kpacrate). 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 byfr_amp_01_kpa1500_defaults_off_and_persists(default-off, port/poll defaults, TOML round-trip, legacy-config load).--demorun confirmed the Settings section renders and the Configuration… button opens the separate window.🤖 Generated with Claude Code