Skip to content

Exclude live battery controller objects from debug exports - #5516

Draft
mgazza wants to merge 1 commit into
feat/engine-control-service-startupfrom
fix/control-service-debug-export
Draft

mgazza wants to merge 1 commit into
feat/engine-control-service-startupfrom
fix/control-service-debug-export

Conversation

@mgazza

@mgazza mgazza commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator

Enrolled engines attach a control service and write gate containing thread locks. PredBat debug downloads and periodic history serialize nonexcluded instance members, so the new service caused TypeError: cannot pickle '_thread.lock' object. Exclude both live controller objects through the shared debug/state filter, preserving normal debug data and keeping runtime credentials outside serialization.

Based on #5515. Regression invokes actual UserInterface.create_debug_yaml with real service/gate objects and a synthetic credential; output loads, ordinary fields survive, both objects and credential are absent. All30 control/service cases and pre-commit checks pass. GitNexus staged detection: two expected files, LOW; new-test insertion is attributed to the adjacent unchanged registry runner by the base index. Actual debug path impact HIGH (two direct callers, three scheduled/debug flows), reviewed before the narrow exclusion edit. No production changes.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant