From 9ed60bf9217eea7df28f857f9e724bb9fc9dbfa2 Mon Sep 17 00:00:00 2001 From: Tristan Pinsonneault-Marotte Date: Wed, 5 Aug 2026 11:00:28 -0700 Subject: [PATCH 1/3] Add JackhammerAgent panel Custom ocs-web panel for the Jackhammer OCS agent with: - Per-slot configuration status indicators from the monitor process - Slot selection checkboxes for the hammer task - Boolean option controls (no_reboot, skip_setup, dump_logs, dump_rogue) - Last hammer result display (succeeded/failed slots) - Mock agent YAML for development testing Co-Authored-By: Claude Opus 4.6 --- agent/jackhammeragent.yaml | 26 ++++ src/App.vue | 2 + src/panels/JackhammerAgent.vue | 220 +++++++++++++++++++++++++++++++++ 3 files changed, 248 insertions(+) create mode 100644 agent/jackhammeragent.yaml create mode 100644 src/panels/JackhammerAgent.vue diff --git a/agent/jackhammeragent.yaml b/agent/jackhammeragent.yaml new file mode 100644 index 0000000..6ae260d --- /dev/null +++ b/agent/jackhammeragent.yaml @@ -0,0 +1,26 @@ +agent_class: 'JackhammerAgent' +instance_id: 'jackhammer-1' +processes: + monitor: + startup: true + data_settings: { + 'timestamp_field': 'timestamp' + } + data: { + "timestamp": 1721234567.0, + "slots": { + "2": {"configured": true, "configuring": false}, + "3": {"configured": false, "configuring": true}, + "4": {"configured": null, "configuring": null} + } + } +tasks: + hammer: + data: { + "slots": [2, 3, 4], + "reboot": true, + "succeeded_slots": [2, 3], + "failed_slots": {"4": "EPICS connection timed out after 180s"}, + "error": null, + "timestamp": 1721234590.0 + } diff --git a/src/App.vue b/src/App.vue index d033d5c..6634d43 100644 --- a/src/App.vue +++ b/src/App.vue @@ -159,6 +159,7 @@ import DS378Agent from './panels/DS378.vue'; import TauHKAgent from './panels/TauHKAgent.vue'; import FLSAgent from './panels/FLSAgent.vue'; + import JackhammerAgent from './panels/JackhammerAgent.vue'; /* Make a map of components to use in activeComp computed property; see @@ -188,6 +189,7 @@ 'DS378Agent': DS378Agent, 'TauHKAgent': TauHKAgent, 'FLSAgent': FLSAgent, + 'JackhammerAgent': JackhammerAgent, }; diff --git a/src/panels/JackhammerAgent.vue b/src/panels/JackhammerAgent.vue new file mode 100644 index 0000000..dab6a85 --- /dev/null +++ b/src/panels/JackhammerAgent.vue @@ -0,0 +1,220 @@ + + + + + From ba2e50ac4e1cbb7b93d419492bf71c5cce48a3de Mon Sep 17 00:00:00 2001 From: Tristan Pinsonneault-Marotte Date: Mon, 24 Aug 2026 10:56:20 -0700 Subject: [PATCH 2/3] fix(panels/JackhammerAgent): Remove access restriction. --- src/panels/JackhammerAgent.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/JackhammerAgent.vue b/src/panels/JackhammerAgent.vue index dab6a85..5a854a7 100644 --- a/src/panels/JackhammerAgent.vue +++ b/src/panels/JackhammerAgent.vue @@ -62,7 +62,7 @@
From 3915cc6a7fec7c13726ba62e30a24eb5e5f5ad27 Mon Sep 17 00:00:00 2001 From: Tristan Pinsonneault-Marotte Date: Mon, 24 Aug 2026 11:10:40 -0700 Subject: [PATCH 3/3] fix: Rename JackhammerAgent to SmurfHammerAgent. --- agent/{jackhammeragent.yaml => smurfhammeragent.yaml} | 4 ++-- src/App.vue | 4 ++-- src/panels/{JackhammerAgent.vue => SmurfHammerAgent.vue} | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) rename agent/{jackhammeragent.yaml => smurfhammeragent.yaml} (90%) rename src/panels/{JackhammerAgent.vue => SmurfHammerAgent.vue} (99%) diff --git a/agent/jackhammeragent.yaml b/agent/smurfhammeragent.yaml similarity index 90% rename from agent/jackhammeragent.yaml rename to agent/smurfhammeragent.yaml index 6ae260d..a14dbb5 100644 --- a/agent/jackhammeragent.yaml +++ b/agent/smurfhammeragent.yaml @@ -1,5 +1,5 @@ -agent_class: 'JackhammerAgent' -instance_id: 'jackhammer-1' +agent_class: 'SmurfHammerAgent' +instance_id: 'smurf-hammer-1' processes: monitor: startup: true diff --git a/src/App.vue b/src/App.vue index 6634d43..d8b5ecb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -159,7 +159,7 @@ import DS378Agent from './panels/DS378.vue'; import TauHKAgent from './panels/TauHKAgent.vue'; import FLSAgent from './panels/FLSAgent.vue'; - import JackhammerAgent from './panels/JackhammerAgent.vue'; + import SmurfHammerAgent from './panels/SmurfHammerAgent.vue'; /* Make a map of components to use in activeComp computed property; see @@ -189,7 +189,7 @@ 'DS378Agent': DS378Agent, 'TauHKAgent': TauHKAgent, 'FLSAgent': FLSAgent, - 'JackhammerAgent': JackhammerAgent, + 'SmurfHammerAgent': SmurfHammerAgent, }; diff --git a/src/panels/JackhammerAgent.vue b/src/panels/SmurfHammerAgent.vue similarity index 99% rename from src/panels/JackhammerAgent.vue rename to src/panels/SmurfHammerAgent.vue index 5a854a7..fed5177 100644 --- a/src/panels/JackhammerAgent.vue +++ b/src/panels/SmurfHammerAgent.vue @@ -115,7 +115,7 @@