Increase physical test polling interval from 5s to 15s (backend setInterval and frontend AutoProgress ms) to reduce polling frequency. Add handling to stop the interval when physicalTest.done, send the physical test report, and end testing. Change license filtering to be case-insensitive and match any value containing "permanent" (backend and frontend) so licenses are detected regardless of casing/format.
Emit a dedicated 'update_status_ready' event when a LineConnection becomes ready, and stop sending isReady in the 'line_output' payload. On the server side, normalize incoming run_all_dpelp data and filter lineIds to only include lines that are already ready; also bail out early if no eligible lines or station isn't configured to send wiki. On the frontend, initialize line state with isReady, stop deriving readiness from line_output, and listen for the new 'update_status_ready' event to update line readiness in the UI.
Reset latestScenario when a line disconnects and surface AI-detected issues in the UI. Backend: clear config.latestScenario on disconnect. Frontend: initialize latestScenario in App state, import useEffect and add isShowIssue state in CardLine with an effect that checks line.latestScenario.detectAI.issue (array) to toggle the badge. UI: reorganize feature badges layout and render a red "Issue" pill when an AI-detected issue exists.
Backend: Add debounceSendSummaryReport to LineConnection and snapshotting to debounce sendReportSummary (10 min) to avoid duplicate summary emails; adapt sendReportSummary to accept a snapshot and use snapshot data when available. Reset physicalTest and listFeatureTested on line disconnect and add initConfig helper. Improve PoE/SFP parsing (filter names with '/' and match 'unknown') and adjust report HTML (tested/missing counts, column counts). Add PS_INCOMPATIBLE log rule. Comment out automatic wiki/email send in socket provider. Physical test service: suppress getFormReport call on completion and include PoE/SFP breakdown in the HTML report counts. Frontend: fix terminal open logic to check userOpenCLI instead of userEmailOpenCLI and display device MAC in the terminal modal.
Append a CLEAR_TERMINAL_SCROLL_BACK marker on disconnect and consume it in the frontend to effectively clear terminal scrollback. Backend: add marker on client close and in socket provider, import convertFromKilobytesString and use it to format MEMORY and FLASH values in the report, and compute/list missing ports (separating PoE vs SFP) in the summary HTML. Frontend: emit the marker on line_disconnected and have TerminalXTerm replace the marker with multiple newlines (varying by miniSize) before writing/initializing terminal content to scroll to bottom.
Wrapped calls to axios, sendMessageToMail, and sendMessageToZulip in try-catch blocks to handle errors individually and log them. This prevents one failure from blocking the execution of subsequent service calls.
Moves LINK_WIKI and ERP_URL constants outside the check method for reuse. Updates error handling to set status based on which API call failed, and removes console logging for cleaner output. Always returns code 200 for consistency.
Added a 'Clear (scrollback)' option to the terminal modal, allowing users to clear only the scrollback buffer without emitting a clear event. Updated backend and helper logic to use 'testNotes' instead of 'notes' for serial number updates, and improved note formatting with timezone support. Also improved email content formatting and error reporting.
Introduces HealCheckController to perform a health check by posting to a wiki API. Adds a new route at /atc/health-check for accessing the health check functionality.
Refactored log buffer management to use 'allBuffer' for complete log storage and updated email content to include raw logs. Enhanced log table formatting and removed status from email header. Commented out interface up/down rules in helper.ts to adjust log rule detection.
Introduces functions to format test errors and AI log analysis as HTML tables and send them via email. Adds helper utilities for error mapping and HTML escaping, and updates types to support structured error rows. Also increases the log check interval and refactors buffer management for improved clarity.
Replaces per-rule application with a unified error-based approach in log processing. Expands and clarifies log rules, introduces deduplication and error counting in TestSession, and updates types to support richer error and result reporting. Improves final result output for better clarity and debugging.
Updated LineConnection to track processed scenario IDs and prevent duplicate scenario detection by passing a list of previously detected scenarios to detectScenarioByModel. Modified detectScenarioByModel to skip scenarios already in the list. Added a delay in waitUntilAllReady to ensure readiness before proceeding.
Uncommented code to run scenarios and send reports via email and Zulip in the backend, and commented out the scenario confirmation modal in the frontend. Also adjusted the height of the ScrollArea in the BottomToolBar component for improved UI layout.
Pass scenarioName from frontend to backend when running scenarios, and include it in log titles, email subjects, and Zulip messages. Also, expand command matching in template utilities and update default '[ENTER]' handling in line_connection. Minor logging improvements included.