Bag of Changes#23
Open
uh-oh-monteiro wants to merge 15 commits into
Open
Conversation
* Add DDNS health indicator to single-station dashboard status bar Render the tri-state DDNS record health reported by the station server in the single-station status bar, below the IP line: MATCH -> green check (resolves to the station's current IP) MISMATCH -> red cross (resolves, but to a different/stale IP) UNKNOWN -> grey question (could not resolve: NXDOMAIN, timeout, no FQDN) The line is omitted entirely when the server reports no DDNS information (the multi-station dashboard path and older servers do not send these fields), so the change degrades safely against an un-bumped backend. The fields (ddns_hostname / ddns_resolved_ip / ddns_status) are produced by the backend counterpart in halter-corp/hardware-test-framework#1567. NOTE: the committed dist/ bundle is NOT regenerated in this commit. The Angular 4 / webpack 3 / node-sass 7 toolchain could not be built in the authoring environment (Node 25 / Python 3.12 lacks distutils, node-sass native build fails). Run "npm install && npm run build" in web_gui with a compatible Node before deploying, and commit the regenerated dist/. See the accompanying APPLY.md. Co-Authored-By: clank-halter[bot] <2696940+clank-halter[bot]@users.noreply.github.com> Clank-Job-Id: 6ae51244-e605-4ce0-9e50-ebf172b7b87d * Pin Node 16 in web_ui CI job so node-sass can build The web_ui job used setup-node without a version, picking up the runner's default (now Node 22). node-sass@7 can't compile its native addon on Node >= 18, so npm install failed. Pin Node 16 to unblock CI. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: kurtmc <2661907+kurtmc@users.noreply.github.com> Co-authored-by: clank-halter[bot] <2696940+clank-halter[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Commit 3214561 (#20) added the single-station DDNS indicator source but could not regenerate the committed dist/ bundle (the Angular 4 / webpack 3 / node-sass 7 toolchain needs Node 16), so the served bundle still ran the pre-DDNS JS and the indicator never rendered on the station. Rebuilt dist/ under Node 16 (npm install --ignore-scripts && npm rebuild node-sass && npm run build). New bundle hash 2fc68a8 now contains the ddnsStatus / ddns-indicator rendering. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Surface structured test failures to factory operators instead of raw logs. When a failed test carries outcome_details, the station summary now renders a prominent red panel with: - "What to do": operator-facing remediation steps (primary content). - A de-emphasised engineering "Issue" line (fault code + short message). - For unmapped/unexpected errors (no remediation), a "Report to engineering" button that POSTs the station/test context plus the error logs to the station server's /fault-report relay. The GUI never calls external services: station_server exposes a /fault-report endpoint that delegates to a handler injected by the framework (501 if unset), which forwards to hardware-test-service. The report payload matches hardware-test-service's IReportFaultRequestDTO (fixtureId/testPlan/dutId/code/issue/traceback); the station relay fills in the canonical fixtureNumber before forwarding. station-data filters out the internal OperatorActionRequired marker and splits the description into issue / "what to do" for the panel. Includes the rebuilt web_gui dist bundle (app.6cf0568f...). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The web_ui job left setup-node unpinned, so it used the runner's default Node. ubuntu-latest moved to a newer Node where node-sass ^7 (libsass 3.5.5) no longer compiles, breaking the native build. Pin Node 16 — the version the stations run and the committed dist is built with. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Brings the DDNS health indicator (#20) and its dist rebuild onto the operator-fault-panel branch. Conflicts were of two kinds: - continuous_integration.yml: both sides pinned Node 16; kept the commented `'16'` form. - web_gui/dist/*: both sides rebuilt the bundle to different webpack content hashes. Generated artifacts are not hand-merged; instead the cleanly-merged source (DDNS + operator panel, no source conflicts) was rebuilt with `npm run build` under Node 16, producing a single fresh bundle (app.e9c4d879...) that carries both features. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Operator fault panel in the station GUI
- The report buttons now show a spinner, disable while in flight, then a good/fail result. State is keyed by a stable code+issue id so it survives the station's periodic re-polls (an object-keyed map reverted the button). - A known fault whose remediation steps did not resolve it gets a distinct red "Report Issue" button that POSTs to a new /fault-escalate relay (raises a PagerDuty incident via hardware-test-service), shown below the hint and kept separate from the grey "Notify Halter" report for uncaught errors. - station_server: add FaultEscalateHandler + set_fault_escalate_handler + /fault-escalate route, delegating to an injected handler exactly like /fault-report (the GUI never calls external services itself). - Rebuild dist. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
An aborted test is a reset (e.g. the station service restarting on a deploy), not a fault — so its outcome_details must not surface as an operator action. Gate the panel behind a showFaultPanel getter that excludes ABORTED. Rebuild dist. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts: # openhtf/output/web_gui/dist/css/app.4cad1b230047e7d0f056.css # openhtf/output/web_gui/dist/css/app.4cad1b230047e7d0f056.css.map # openhtf/output/web_gui/dist/css/app.575e9bb61286fde76cb9.css # openhtf/output/web_gui/dist/css/app.575e9bb61286fde76cb9.css.map # openhtf/output/web_gui/dist/css/app.587dc395b04f17af29f3.css # openhtf/output/web_gui/dist/css/app.587dc395b04f17af29f3.css.map # openhtf/output/web_gui/dist/index.html # openhtf/output/web_gui/dist/js/app.4cad1b230047e7d0f056.js # openhtf/output/web_gui/dist/js/app.575e9bb61286fde76cb9.js # openhtf/output/web_gui/dist/js/app.587dc395b04f17af29f3.js # openhtf/output/web_gui/dist/js/polyfills.4cad1b230047e7d0f056.js # openhtf/output/web_gui/dist/js/polyfills.4cad1b230047e7d0f056.js.map # openhtf/output/web_gui/dist/js/polyfills.575e9bb61286fde76cb9.js # openhtf/output/web_gui/dist/js/polyfills.575e9bb61286fde76cb9.js.map # openhtf/output/web_gui/dist/js/polyfills.587dc395b04f17af29f3.js # openhtf/output/web_gui/dist/js/polyfills.587dc395b04f17af29f3.js.map # openhtf/output/web_gui/dist/js/vendor.4cad1b230047e7d0f056.js # openhtf/output/web_gui/dist/js/vendor.575e9bb61286fde76cb9.js # openhtf/output/web_gui/dist/js/vendor.587dc395b04f17af29f3.js # openhtf/output/web_gui/dist/js/vendor.587dc395b04f17af29f3.js.map # openhtf/output/web_gui/src/app/stations/station/station-data.ts
This reverts commit d237187.
Coverage Report for CI Build 28709453179Coverage increased (+0.3%) to 60.498%Details
Uncovered Changes
Coverage Regressions1 previously-covered line in 1 file lost coverage.
Coverage Stats
💛 - Coveralls |
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.
halter-mods is the
main branch here (or at least it was when we had an htf fork). Unsure ifmaster` is now the trunk.Anyway, I wanted to make a change to show the slot number on the history panel, but realised all you folks were working off a non-
halter-modsbranch. So I found the branch which was most up to dateremotes/origin/feat/operator-fault-report-escalateand made my branch off that. Attempting to merge it all in now lol