|
| 1 | +# Agent Briefs (3 Workstreams) |
| 2 | + |
| 3 | +## Goal |
| 4 | + |
| 5 | +Run 3 agents with minimal overlap: |
| 6 | + |
| 7 | +- Agent A: General tab data-path issues (Personal Info + Time/Locality + Delays) |
| 8 | +- Agent B: Alerts/Security mapping |
| 9 | +- Agent C: Loading-stuck/reliability behavior |
| 10 | + |
| 11 | +This split keeps shared protocol/parser work in one place and avoids conflicting edits across multiple agents. |
| 12 | + |
| 13 | +## Shared Context for All Agents |
| 14 | + |
| 15 | +- Discussion thread: <https://github.com/tagyoureit/nodejs-poolController/discussions/1090#discussioncomment-15925386> |
| 16 | +- Newly extracted replay folders: |
| 17 | + - `data/1090/v3.008_replay.163` |
| 18 | + - `data/1090/v3.008_replay.164` |
| 19 | + - `data/1090/v3.008_replay.170` |
| 20 | + - `data/1090/v3.008_replay.171` |
| 21 | + - `data/1090/v3.008_replay.173` |
| 22 | +- Historical comparison replays: |
| 23 | + - `data/1090/v3.008_replay.157_config1` |
| 24 | + - `data/1090/v3.008_replay.160_config2` |
| 25 | + |
| 26 | +--- |
| 27 | + |
| 28 | +# Agent A Brief: General Tab (Personal Info + Time/Locality + Delays) |
| 29 | + |
| 30 | +## Scope |
| 31 | + |
| 32 | +- Personal Information mapping (inbound + outbound) |
| 33 | +- Timezone/Clock settings and unintended coupling to body temps/modes |
| 34 | +- Delays tab and new v3 fields (`Frz Cycle Time`, `Frz Override`, `Manual Operation Priority`) |
| 35 | + |
| 36 | +## Why this is grouped |
| 37 | + |
| 38 | +These items share the same config/state pathways and overlap in `Action 30` + `Action 168` handling. Keeping them together reduces parser conflicts. |
| 39 | + |
| 40 | +## Exact old comment excerpts to use |
| 41 | + |
| 42 | +> "Personal Information: The information in this section does not appear to link to the OCP (and maybe it isn't intended to). In particular, the City/State/Zip does not link between what is shown on the dashPanel and the WCP. Also, the Pool Alias, Owner and Zip fields on the dashPanel change when other changes are made, with the contents of the Zip field replacing the Pool Alias and then the Zip and Owner fields becoming blank. The Longitude field can't be edited in dashPanel and it does not track changes made with the WCP. The Latitude field can't be edited and is blank in dashPanel." |
| 43 | +
|
| 44 | +> "Timezone & Locality: Changing the settings from \"Internet / 12 hour\" to \"Manual / 24 Hour\" causes the Pool Set Point temp to change to 0 and the Spa Set Point Temp to change to 100 and the Spa Heat Mode to change from UltraTemp Only to Solar Only . (Replay 160)." |
| 45 | +
|
| 46 | +> "Delays: The settings in the Delays tab do not appear to link between dashPanel and the WCP. Also, dashPanel has a \"Manual Operation Priority\" checkbox that doesn't appear to match anything on the WCP. And, the WCP has \"Frz Cycle Time (min)\" and \"Frz Overide (min)\" fields that do not appear in dashPanel." |
| 47 | +
|
| 48 | +## Exact new comment excerpts to use |
| 49 | + |
| 50 | +> "Personal Information All fields except Lat/Lon entered on dashPanel are retained in dashPanel. Lat is blank. Lat/Lon are display only in dashPanel. Zip code, City, State and Country entered in dashPanel are not passed to WCP (other fields don’t exist in WCP). Zip code entered in WCP appears as Pool Alias in dashPanel.City entered in WCP appears as Phone in dashPanelState, Country, Latitude and Longitude entered in WCP are not reflected in dashPanel" |
| 51 | +
|
| 52 | +> "There continues to be an incorrect linkage between the time settings and the Pool/Spa temperature settings." |
| 53 | +
|
| 54 | +> "Setting Clock Source to “Server” on dashPanel causes error (Replay 163): TypeError: Cannot read properties of undefined (reading 'val') at IntelliCenterSystemCommands.setTZ (/home/pi/nodejs-poolController/controller/boards/SystemBoard.ts:1152:98) ..." |
| 55 | +
|
| 56 | +> "Setting Clock Mode (12/24 hour) in dashPanel does transfer to WCP. However, if Clock Source is “Manual” in dashPanel and WCP, changing Clock Mode in dashPanel also causes WCP Mode to switch to “Internet” (Replay 164)." |
| 57 | +
|
| 58 | +> "8:04 Changed Frz Cycle Time from 15 to 20 ... 8:24 Frz Override changed from 30 to 90" |
| 59 | +
|
| 60 | +## Replay priority |
| 61 | + |
| 62 | +1. `v3.008_replay.171` (personal info + delays + many config changes) |
| 63 | +2. `v3.008_replay.170` (timezone/locality coupling) |
| 64 | +3. `v3.008_replay.164` (manual/internet mode interaction) |
| 65 | +4. `v3.008_replay.163` (server clock source exception) |
| 66 | +5. Cross-check with `v3.008_replay.160_config2` |
| 67 | + |
| 68 | +## Deliverables |
| 69 | + |
| 70 | +- Byte-level mapping table (field -> action/type -> payload offsets -> direction) |
| 71 | +- Confirmed root-cause list per symptom |
| 72 | +- Patch list (file + method + behavior) |
| 73 | +- Regression checklist for General tab |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +# Agent B Brief: Alerts and Security |
| 78 | + |
| 79 | +## Scope |
| 80 | + |
| 81 | +- Populate/validate Alerts tab mappings |
| 82 | +- Populate/validate Security tab mappings |
| 83 | +- Verify round-trip behavior for WCP/OCP <-> njsPC <-> dashPanel |
| 84 | + |
| 85 | +## Exact old comment excerpts to use |
| 86 | + |
| 87 | +> "Alerts and Security: These tabs are currently empty. I will have to take a further look at the OCP/WCP menus to see if there are corresponding entries." |
| 88 | +
|
| 89 | +## Exact new comment excerpts to use |
| 90 | + |
| 91 | +> "Alerts and Notifications-Circuits 8:07 Alert Valve Rotation Delay from Off to On 8:08 Heater Cool Down Delay from Off to On" |
| 92 | +
|
| 93 | +> "Alerts and Notifications-Pumps NOTE: All of the Alerts in this section were changed from On to Off ... 8:09 Pentair VS/VF/VSF Rate and Power ... 8:11 Communication Lost" |
| 94 | +
|
| 95 | +> "Alerts and Notifications-Ultra Temp Heater NOTE: All of the Alerts in this section were changed from On to Off ... 8:17 Communication Lost" |
| 96 | +
|
| 97 | +> "Alerts and Notifications-IntelliChlor NOTE: All of the Alerts in this section were changed from On to Off ... 8:19 Communication Lost" |
| 98 | +
|
| 99 | +> "Start of REPLAY 173 ... 9:30 Enable Security – Administrator ... 9:32 Change Security Passcode from 7777 to 8888 ... 9:32 Enable Guest ... 9:33 Add “Vacation Mode” access to Guest ... 9:33 Add “All” access to Guest" |
| 100 | +
|
| 101 | +## Replay priority |
| 102 | + |
| 103 | +1. `v3.008_replay.171` (alerts changes) |
| 104 | +2. `v3.008_replay.173` (security changes) |
| 105 | + |
| 106 | +## Deliverables |
| 107 | + |
| 108 | +- Mapping matrix for each alert/security setting |
| 109 | +- Missing fields report (present on WCP/OCP but absent in dashPanel/njsPC) |
| 110 | +- Patch list and validation notes |
| 111 | +- Any required API schema updates for dashPanel consumption |
| 112 | + |
| 113 | +--- |
| 114 | + |
| 115 | +# Agent C Brief: Loading-Stuck and Reliability |
| 116 | + |
| 117 | +## Scope |
| 118 | + |
| 119 | +- Investigate root causes of loading hang/stalls under noisy comms |
| 120 | +- Evaluate refresh-trigger behavior (ACK(168)/ACK(184)/piggyback/config queue churn) |
| 121 | +- Propose mitigation strategy that does not suppress valid updates |
| 122 | + |
| 123 | +## Exact old comment excerpts to use |
| 124 | + |
| 125 | +> "A general issue which may be specific to my system is that periodically following a settings change initiated in dashPanel, the \"Loading\" message will appear and will hang before completion. That occurred at the end of Replay 157 with the updated hanging at 0%. Although nodejs-poolController continues to run, I have to restart it to clear the problem. My system is showing a lot of failed sends (55% failure rate) which might be related to this." |
| 126 | +
|
| 127 | +## Exact new comment excerpts to use |
| 128 | + |
| 129 | +> "I restarted the access point that the Elfin uses and have had significantly fewer transmit errors since then." |
| 130 | +
|
| 131 | +> "[12/24/2025, 10:47:00 AM] warn: Registration rejected by OCP via Action 217 (status=4) - duplicate registration attempt?" |
| 132 | +
|
| 133 | +## Replay priority |
| 134 | + |
| 135 | +1. `v3.008_replay.157_config1` (stuck at loading 0) |
| 136 | +2. `v3.008_replay.160_config2` (comparison run) |
| 137 | +3. Correlate with new runs: |
| 138 | + - `v3.008_replay.163` |
| 139 | + - `v3.008_replay.164` |
| 140 | + - `v3.008_replay.170` |
| 141 | + - `v3.008_replay.171` |
| 142 | + - `v3.008_replay.173` |
| 143 | + |
| 144 | +## Deliverables |
| 145 | + |
| 146 | +- Event-timeline of one failed and one successful config cycle |
| 147 | +- Trigger/churn analysis (`Requesting IntelliCenter configuration`, queued items, completion rates) |
| 148 | +- Proposed mitigation options with tradeoffs: |
| 149 | + - refresh debounce tuning |
| 150 | + - in-flight refresh guard |
| 151 | + - stale loading-state timeout/reset behavior |
| 152 | + - registration retry/backoff adjustments |
| 153 | +- Recommended implementation order |
| 154 | + |
| 155 | +--- |
| 156 | + |
| 157 | +# Coordination Rules (Important) |
| 158 | + |
| 159 | +- Agent A owns changes in shared General/config parser paths. |
| 160 | +- Agent B should not modify Agent A parser logic unless required and documented. |
| 161 | +- Agent C should avoid behavior changes that alter field parsing/mapping. |
| 162 | +- Final integration step should run all touched replay scenarios before merge. |
0 commit comments