Repository navigation
fix: keep redhat theme nodes across a control UI reload - #2
Conversation
The disposer removed font and artwork nodes by id. The host activates the replacement before disposing the previous owner, so the new activation reused those nodes and the old disposer deleted them. Install fresh nodes and remove only the ones this activation created. Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed October 6, 2026, 7:28 PM ET / 23:28 UTC (Revision 7). ClawSweeper reviewWhat this changesThe Red Hat theme creates fresh font and artwork nodes for each Control UI activation and removes only those nodes during cleanup, with regression coverage for overlapping activations. Merge readiness✅ Ready for maintainer review This remains a useful, focused fix absent from main. The supplied live reload trace demonstrates the changed node lifecycle, and no blocking patch defect was found. Priority: P2 Review scores
Verification
How this fits togetherTidepool supplies optional OpenClaw themes. The Red Hat browser plugin adds font and artwork resources when the Control UI activates it, then cleans them up when that activation ends. flowchart TD
A[Plugin revision reload] --> B[Red Hat activation]
B --> C[Create font and artwork nodes]
C --> D[Replace previous nodes]
D --> E[Control UI document]
A --> F[Previous activation cleanup]
F --> G[Remove owned nodes only]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Keep activation-owned DOM cleanup so a successful plugin revision reload retains its replacement font and artwork resources. Do we have a high-confidence way to reproduce the issue? Yes, source establishes the failure: main reuses nodes, the host activates the replacement first, and previous cleanup removes the shared ids. No reviewer-side runtime reproduction was executed. Is this the best way to solve the issue? Yes, retaining each activation's node references is a narrow repair that preserves the existing SDK, resource URLs, configuration, and theme definitions. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning medium; reviewed against 523c316407ff. LabelsLabel changes: No label changes. Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (6 earlier review cycles)
|
Reloading the Red Hat Control UI plugin activates its replacement before disposing the previous activation. The previous cleanup looked up nodes by ID and removed the replacement font link and artwork style.
Each activation now installs and owns its own DOM nodes, and disposal removes only those objects. The plugin remains self-contained. Maintainer follow-up simplifies the DOM adapter, documents reload behavior, and runs the new regression tests in CI.
Validation: reproduced the baseline failure against the real activation source with a synthetic document (both nodes disappeared after old disposal); both ownership regression tests pass. A clean Linux environment passed
pnpm install --frozen-lockfile && pnpm test && pnpm build. Independent Codex review found no actionable P0–P2 findings. CI: https://github.com/openclaw/tidepool/actions/runs/37597362260Thanks @SebTardif for the fix and original live reload investigation. Theme selection and full gateway appearance rendering were not revalidated in this maintenance pass.