Skip to content

feat: add Solis lattice fragment publisher - #4338

Open
mgazza wants to merge 1 commit into
feat/lattice-solax-fragment-adapterfrom
feat/lattice-solis-fragment-adapter
Open

feat: add Solis lattice fragment publisher#4338
mgazza wants to merge 1 commit into
feat/lattice-solax-fragment-adapterfrom
feat/lattice-solis-fragment-adapter

Conversation

@mgazza

@mgazza mgazza commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a pure, default-off Solis Lattice fragment publisher
  • model explicitly grouped local/cloud access paths, provider input cursors and inverter observations without touching live Solis discovery, CID, automatic-config or control code
  • publish REFERENCE-only topology and only API-verified inverter serials as generic strong identity
  • route discovery/config, liveness and removal changes through the common durable invalidation / fresh-read recompile path

Safety

  • not registered or invoked by live BatPred runtime code
  • emits no materialization roles, config projections, capabilities or writes
  • station, configured-but-unverified serial, endpoint, authentication, protocol, CID and TOU profile remain provider metadata rather than identity
  • local/cloud paths compose only when the caller explicitly groups them into one device snapshot
  • duplicate verified serials, duplicate access paths, same-cursor semantic mutation and mixed input-version regression fail closed
  • removal is a durable irreversible tombstone

Invalidation contract

Solis carries independent monotonic discovery and configuration cursors. Advancement of either cursor publishes a new durable provider generation and invalidates the shared compiler. Liveness and removal use the same path. The compiler then fresh-reads every registered publisher, so an invalidation payload is never treated as the authoritative snapshot.

Validation

  • Python 3.9: 81 focused/shared tests passed
  • Python 3.14: 81 focused/shared tests passed
  • black, ruff F401, cspell and diff checks passed
  • GitNexus: MEDIUM additive scope, 61 new/touched symbols and one internal set_livenessread_state flow
  • all inspected live Solis symbols are LOW risk and remain untouched

The wider discovery test command has pre-existing environment incompatibilities outside this tranche: Python 3.9 lacks google.protobuf; Python 3.14 has generated protobuf 7.34.1 against runtime 7.34.0.

Stack

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