Skip to content

feat: add Fox cloud lattice fragment publisher - #4339

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

feat: add Fox cloud lattice fragment publisher#4339
mgazza wants to merge 1 commit into
feat/lattice-solis-fragment-adapterfrom
feat/lattice-fox-fragment-adapter

Conversation

@mgazza

@mgazza mgazza commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a pure, default-off Fox Cloud Lattice fragment publisher
  • model explicit station/device observations without importing or modifying live Fox OAuth, discovery, scheduler, automatic-config or control paths
  • publish REFERENCE-only topology with Fox-qualified station identity and strong hardware serial identity
  • route discovery, 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
  • device type, online state, battery/PV presence, third-party generation and scheduler support are observations only
  • duplicate stations, unknown station membership and duplicate hardware serial ownership fail before publication
  • stale discovery is ignored; same-version semantic mutation fails closed
  • removal is a durable irreversible tombstone
  • a clean subprocess test proves importing this module does not transitively import live fox.py

Blast-radius isolation

GitNexus reports the live FoxAPI class as CRITICAL: 14 direct consumers and 201 affected symbols, including scheduler/write tests. This PR deliberately leaves that class and all its consumers untouched. The new publisher has only test callers.

Invalidation contract

Every accepted discovery, liveness or removal change advances the durable provider generation and invalidates the shared compiler. The compiler fresh-reads all registered publishers before composition and retains last-known-good state on provider failure.

Validation

  • Python 3.9: 133 shared fragment/compiler tests passed
  • Python 3.14: 133 shared fragment/compiler tests passed
  • existing Fox test module followed by the new module: 9/9 passed
  • black, ruff F401, cspell and diff checks passed
  • independent review approved after replacing a suite-order-dependent import assertion
  • GitNexus staged scope: MEDIUM additive, 55 new symbols and one internal set_livenessread_state flow; no live Fox edge

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