The rule: every action that changes an ECU or a LIN node, or sends on a real bus, asks the engineer first, naming the ECU or channel, its interface and the change. Sending on the Editor's own virtual bus asks nothing. None of this has been run against a production ECU or real hardware (see the overview).
What is confirmed
| Action | The confirmation names |
|---|---|
| A Diagnostic Console request that changes the ECU (any service but reading data, DTCs, memory and scaling, and tester present) | The ECU, its interface, the change and the request bytes |
| Clearing DTCs, writing identifiers, starting or stopping routines, ECU reset, session changes, programming and OEM sessions | The ECU, its interface and the change |
| Clearing J1939 DTCs (DM11, DM3) | The node and channel, every time, on a virtual bus too |
| Reprogramming one ECU | The ECU, its interface, the image or container and its SHA-256 (for a container also the variant and session), and every step that will be sent |
| A flash job | Once for the whole job: each ECU, its interface, the file and its SHA-256, the bytes and steps, the ECUs that cannot be programmed and why, and any end-of-line sequence's file, SHA-256 and changes |
| An end-of-line sequence that changes the ECU | Once per run: the ECU, its interface, the file and its SHA-256, and every change |
| Diagnostic test cases that change the ECU | Once per run: the ECU, its interface, the test file and its SHA-256, and each such case with its request |
| A test design run | Once per run: every action that reaches a real bus, changes an ECU or writes calibration, with its channel or ECU, and the design's path and SHA-256 |
| A calibration write, page switch, data set download | The ECU, its A2L, the transport, and each value before and after; a page switch names each memory segment and page |
| A parameter sweep | Once for the whole sweep: every value in order, and that the original value is written back |
| A frame, panel action, replay, fault injection, J1939 request or interactive send on a real bus | The change, the channel and the interface |
| NAD and frame identifier assignment on LIN | The node and the change |
| Keeping a simulated network awake, or releasing it, on a real bus | The node, the channel and what it does to the NM cluster |
| Importing a communication matrix into a DBC | What it adds, changes and leaves out as a conflict |
| Replacing a generated file or report | That it will be replaced |
A real bus is any backend but the Editor's virtual bus, including the Vector and Kvaser drivers' own virtual channels and python-can's interfaces. Clearing DTCs and reprogramming are also confirmed by the diagnostics service's own dialog every time. Declining writes nothing and sends nothing.
The confirmation of a Diagnostic Console request that changes the ECU, naming the ECU, its interface, the change and the request bytes.
The reprogramming confirmation naming the container, the variant, the ECU and every step that will be sent.
Records the module keeps
| Record | Where | What it holds |
|---|---|---|
| Operation Log | Diagnostics panel | Every diagnostic request and response with service, duration and outcome, and DoIP control messages |
| Flash job report | Save Flash Job Report..., JSON, where you choose | The tool's name, version and commit; times; per ECU its interface, ISO-TP settings, file and SHA-256, variant and session, identification before and after, how memory was verified, every step with outcome and duration |
| End-of-line report | Save End-of-Line Report..., JSON | The sequence and its SHA-256, the ECU's description with its SHA-256 and variant, the ECU, interface and transport, the tool version, times, the changes confirmed, identification before and after, every step |
| Diagnostic test run records and report | build/diagnostic-tests/, Save Diagnostic Test Report... | The test file and descriptions with their SHA-256, the ECU and its identification, the cases confirmed, every request and response |
| Test design run records and report | build/test-designs/, Save Test Design Report... | The design and databases with their SHA-256, the channels and ECUs, what was confirmed, every step with what was observed |
| CANoe run records | build/canoe/results/ | The test unit, the derived unit, canoe4sw-se's version, variant, parameter sets and verdicts |
| Traceability report | Generate Traceability Report... | Coverage tables and every source file's SHA-256, the tool version and time |
| Diagnostic description report | Generate Diagnostic Description Report | Each source file with size and SHA-256, tool version and time |
| DaVinci runs | build/davinci | The tool, its version and arguments, and the report |
| Calibration writes, connections and events | Output, channel Automotive | Each write applied from a data set, connections and the module's other events |
The Operation Log recording every diagnostic request with its ECU, service, outcome and duration, including timeouts and negative responses.
These records are the Editor's own, saved where you choose; they are the module's own formats, not vFlash Station's or an OEM tester's. The module does not send them to Neural Inverse Govern, and the organisation's governance policy does not gate the module's actions. Keep the reports with your release and production records. See Neural Inverse Govern for what organisation policy does cover.
Agents
The module registers 107 agent tools over the same services as the views:
| Group | Tools |
|---|---|
| Databases and matrices | listDatabases, describe, findMessage, checkDatabase, decodeFrame, encodeFrame, compareDatabases, generateC, exportCommunicationMatrix, importCommunicationMatrix |
| Channels and the bus monitor | listInterfaces, connect, disconnect, snapshot, waitFor, send, startRecording, stopRecording, startTriggeredRecording, stopTriggeredRecording, recordingStatus, statistics |
| Simulation and network management | startSimulation, stopSimulation, setSimulationSignals, listSimulations, injectSimulationFault, clearSimulationFaults, listNetworkManagement, setNetworkRequest |
| Traces | openTrace, queryTrace, traceStatistics, replayTrace, controlReplay, replayStatus |
| Diagnostics, flashing and DoIP | listEcus, describeEcu, readDtcs, readDtcRecords, clearDtcs, readEcuData, writeDid, ecuSession, resetEcu, unlockEcu, runRoutine, flashEcu, listDiagnosticServices, sendDiagnosticRequest, reportDiagnosticDescription, flashContainer, runEndOfLineSequence, discoverDoipEntities, generateDiagnosticTests, runDiagnosticTests |
| J1939, E2E and SecOC | j1939Network, j1939Request, j1939ClearDtcs, traceJ1939Network, protectionStatus, checkTraceProtection |
| LIN | listLinChannels, connectLin, disconnectLin, queryLinTrace, startLinSimulation, setLinSimulation, stopLinSimulation, linNodeConfiguration, linUdsRequest |
| Calibration and the A2L update | listCalibrationTargets, connectEcu, disconnectEcu, listCalibrationObjects, measure, readCharacteristic, writeCharacteristic, sweepCharacteristic, listCalibrationPages, switchCalibrationPage, compareDataSet, applyDataSet, compareCalibration, saveDataSet, planDataSetMerge, mergeDataSets, openEcuImage, saveEcuImage, closeEcuImage, startMeasurementRecording, measurementRecordingStatus, stopMeasurementRecording, readMeasurementFile, planA2lUpdate, applyA2lUpdate |
| Requirements and tests | requirementsCoverage, linkTestCaseToRequirements, testVariants, chooseTestRun, listTestDesigns, runTestDesign, compileTestDesignForCanoe |
| AUTOSAR authoring | describeSoftwareComponents, connectSoftwareComponentPorts, describeAdaptiveMachine, addAdaptiveServiceInstance |
Each is tagged read-only or state-changing, and those that act on hardware are tagged as such.
- Every hardware action and every ECU change asks the engineer every time, with the same content as the table above.
- When the chat ran a tool without asking (Bypass Approvals, Autopilot, the auto-approve setting, a hook, a pre-approved call), the tool asks in its own dialog before it acts.
- A tool called outside a chat that acts on hardware is confirmed twice: once by the tools service and once by the tool's own dialog.
- Read-only tools, DoIP discovery and dry runs ask nothing; on an ECU image, calibration tools ask nothing, as the image changes only when saved.
State: modelled. The tools and their confirmations are tested through the Editor's tools service, and the calibration tools' confirmations were run in the Editor through calls made outside a chat. In this build the Editor's default chat participant sends the conversation to the model without the selected tools, so a model does not call these tools from a chat; see What's next.