Conversation
- Stop writing unchanged values to screenValues in updateValues once the aging fade is done so widgets don't re-render on every poll - Export AGING_* constants from VWidget.js so the screen knows how many polls the fade takes - Add INST ccsds.txt and hs_adcs.txt 1000 item screens to measure mostly static vs constantly changing values Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3957 +/- ##
==========================================
- Coverage 80.14% 80.12% -0.02%
==========================================
Files 901 901
Lines 68356 68394 +38
Branches 2645 2655 +10
==========================================
+ Hits 54784 54803 +19
- Misses 12907 12921 +14
- Partials 665 670 +5
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
AI adversarial reviewNote The fixes from this review are in #3961, a PR into ✅ Claude and Codex converged after 3 turn(s) with 1 fix commit(s). Reviewed commit: Open concerns for a human
Turn-by-turn logTurn 1: Claude (no changes)The change to Openc3Screen.vue and VWidget.js looks correct. Once a widget has finished fading an unchanged value (10 unchanged polls),
Turn 2: Codex (commit fd113d96e)Fixed two defects in update throttling. Dependency-free logic checks and git diff --check passed; full suites were unavailable, and pnpm was not installed.
Turn 3: Claude (no changes)I found nothing to change in the throttling or in Codex's fixes; the only open question is a maintainer decision about the demo plugin. Once an item has come back unchanged for more than AGING_UPDATES (10) polls, the screen stops writing it to
|
|
Per the AI review: note that I'm not using |
|
I had the tokens messed up so the AI Review couldn't automatically fix. You can still get its review artifacts from the Action artifacts and have it implement manually |
- openc3-cosmos-init/plugins/packages/openc3-vue-common/src/components/Openc3Screen.vue:255 - JSON comparison threw on telemetry arrays containing BigInts; replaced it with recursive equality. - openc3-cosmos-init/plugins/packages/openc3-vue-common/src/widgets/VWidget.js:84 - The fade watcher could compare the previous rendered value and stop fading prematurely; it now reads the current computed value. AI-Review-Bot: true AI-Review-Run: 36745680936
AI review fixes for #3957
|
clayandgen
left a comment
There was a problem hiding this comment.
I'm guessing the screens including INST and INST2 out of convenience? (as opposed to putting them in their own files)



What changed
Why it changed
Performance rendering screens with a lot of static items
Testing strategy
Created new screens with 1000 items: ccsds (mostly static) and hs_adcs (totally dynamic). This gives us a way to test performance between the 2.
Review notes
Further enhancements would be to not use
v-text-fieldand instead create a lightweight element that has no child components to update. This would require additional effort to match look and feel and avoid losing functionality.Here's a performance plot of the CCSDS screen which contains 1000 mostly stale items. The thing to note is the drop in listeners and the width of the yellow bars from about ~115ms to 29ms once the telemetry aging is complete:
Here's the screen (still only showing half):
