Repository navigation
fix(settings): telemetry in real units from the start, host and port saved on commit with validation, psu fields follow imports - #157
Merged
Conversation
The idle placeholders were their own spec: IAS and Press Alt read "% FS" (and Press Alt keyed on D_ALT_NEEDLE) until the first telemetry tick, then kt / ft. The idle readouts are now the decoder's live readouts with nothing decoded (idleTelemetry), so the gauges show kt / ft / % from the start; the contract's TELEMETRY_IDLE is pinned to them (X10, #134).
…lds follow imports N5: the DCS host and command port were saved on every keystroke, and a junk port silently saved as 7778. They are now saved on commit (blur / Enter). Main checks the port (settings-form.ts commandPortOf: whole digits, 1-65535); a bad one saves nothing and config:edit answers why (ConfigEditResult), which the field shows under it (input--bad, set-err). The API guard records the new answer type. N8: Settings › Cockpit's PSU limit fields kept their own typed text after an import replaced the settings. They now start over from the pushed config on an import (and config:get), as the other form fields do. Refs #134
mottihoresh
force-pushed
the
fix/c5b-telemetry-settings
branch
from
October 17, 2026 18:33
a6951b9 to
9a41a80
Compare
mottihoresh
added a commit
that referenced
this pull request
Oct 18, 2026
…etry in real units, port validated on commit (#158) Chunk 5 of the fix track (#135): relay, telemetry and the settings form. Closes #134. Item PRs squash-merged into `fix/chunk-5`: - #156 — one `relayEndpoint` label for the pill, the Overview and the event log, correct per transport (Unicast reads "this PC:<port>"); Record only while relaying (or to stop a recording in progress), in Settings and on the Connection card, enforced in main before the save dialog; no device-waiting wording in Monitor; a Replay that drives the device shows the same waiting reason as Bridge. - #157 — one telemetry spec: idle gauges read kt/ft/% from the start; host and port are saved on commit (blur/Enter), a bad port shows an error and nothing is saved; the PSU custom-limit fields refresh after an import. Tested with a recorded replay before merge (checklist in #134); a live DCS session goes on the v0.2.0 QA run. Rebased on main after chunk 4. BEGIN_COMMIT_OVERRIDE fix(dcs): one relay endpoint label, record only while relaying, waiting wording matches the mode fix(settings): telemetry in real units from the start, host and port saved on commit with validation, psu fields follow imports END_COMMIT_OVERRIDE
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.
Part of chunk 5 (#134): items X10, N5 and N8. Base:
fix/chunk-5.X10: one telemetry spec
% FSuntil the first telemetry tick, then switch to kt and ft. Press Alt's idle id wasD_ALT_NEEDLE, notALT_FT.TELEMETRYinmain/dcs/sim-telemetry-decoder.ts.idleTelemetry()returns the decoder's live readouts with nothing decoded yet, so the gauges show kt, ft and % from the start. The contract'sTELEMETRY_IDLE(shared/dcs/ipc.ts) is the renderer's starting value. A test pins it to the decoder's output.N5: host and port
settings-form.tscommandPortOf, which accepts whole digits from 1 to 65535. A bad port saves nothing and pushes nothing.config:editthen answers{ ok: false, error }(newConfigEditResult). Both the Settings › Connection form and the Connection tab's DCS Link form show main's error using the existinginput--bad/aria-invalidoutline andset-errtext. No new CSS. A blur that follows an Enter with nothing new typed sends nothing. An import resets the typed text and the error.editConfignow answersConfigEditResultinstead ofAppConfig. The frozen copy is updated on purpose, with a header note. No channel was added, removed or renamed.N8: PSU limit fields
config:get) bumps the config store'sformsReset.PowerSupplyis keyed on it, so the fields restart from the pushed config. This works the same way as the other form fields, which restart from the config on an import. A form's own edit still leaves its typed text alone.Tests changed on purpose (they pinned the old behaviour)
sim-telemetry-decoder.test.ts: the "idle readouts are their own spec" test becomes "one spec": idle equals the live snapshot, with units% RPM / kt / % DN / ft / % QTY. A new test checks that the first frame keeps the idle ids, labels and units.t27: the idle gauges read—kt/—ftinstead of—% FS.settings-edit.test.ts: removed the "junk port saves as 7778" assertions. Added tests forcommandPortOf, for a junk port being refused with its error, and forSettingsService.editsaving and pushing nothing on a junk port. Updated the tests for the newSavedEdit/ConfigEditResultshapes.pushed-rules.seam.test.ts:config:edit { port: '77a' }is refused with the error.config.jsonandconfig:getkeep the last good port, and noconfig:changedis pushed.t28/t31: "saved as typed" becomes "saved on commit". These tests check that typing saves nothing, that blur and Enter each save, and that a blur after Enter does not send again. New tests check that a junk port shows the error witharia-invalidand saves nothing, and that a good port then saves and clears the error.t29(new): renders the Cockpit and Configuration sections together. A typed (refused) limit is followed by an import with other limits, and the fields show the imported limits.skyhawk-mock.ts:editConfiganswersConfigEditResultthe way main does.All new and changed tests fail on the old source. I checked this by stashing the non-test changes: 16 tests failed.
How verified
npm run lint,npm run lint:deps,npm run typecheckandnpm test(1421 tests) all pass locally, after rebasing ontofix/chunk-5at 8c48345 (#156). I have not tested on the DCS computer yet; that belongs in the chunk 5 device session.