server/data_model.py:
- apply_procedural(record) — stub function; add computed fields to the
proc dict inside and they appear under record['procedural'] in every
record stored and broadcast.
- _get(data, *keys) — safe nested dict accessor for use inside
apply_procedural.
collect.py:
- New snapshots: apply_procedural() called after collect_snapshot(),
before appending to the store and broadcasting.
- Preloaded 24-h history: guarded apply (skip if 'procedural' already
present) applied after load_last_24h_records().
- Current-day store loaded from disk: same guarded apply after
load_store(), so legacy records sent to clients are enriched on the fly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
data_model, log_config, network, storage_helpers, we_connect are now
under server/. collect.py stays in the project root and imports via
the server package.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>