Skip to content

Fix #156: handle LidMalfunctionActivated in ProcessAlarm - #157

Merged
jwoglom merged 1 commit into
devfrom
claude/tconnectsync-156-strict-typing-mtpedm
Jul 21, 2026
Merged

Fix #156: handle LidMalfunctionActivated in ProcessAlarm#157
jwoglom merged 1 commit into
devfrom
claude/tconnectsync-156-strict-typing-mtpedm

Conversation

@jwoglom

@jwoglom jwoglom commented Jul 21, 2026

Copy link
Copy Markdown
Owner

ProcessAlarm.skip_event() read event.alarmId on every EventClass.ALARM event, but LidMalfunctionActivated (a sibling of LidAlarmActivated in that class) has no alarmId, so a malfunction alarm crashed the sync with AttributeError.

  • Narrow with isinstance before reading alarmId; malfunction events now upload as "Malfunction" as intended, and sync continues.
  • Add missing typing and regression tests: malfunction processing, mixed alarm batches, the event shape, and an AlarmEvent/EventClass.ALARM sync guard.

…uardrail

ProcessAlarm.skip_event() read event.alarmId on every EventClass.ALARM event,
but LidMalfunctionActivated (a sibling of LidAlarmActivated in that class) has
no alarmId, so a malfunction alarm crashed the sync with AttributeError.

- Narrow with isinstance before reading alarmId; malfunction events now upload
  as "Malfunction" as intended, and sync continues.
- Type the alarm handlers against an explicit AlarmEvent union and add an
  assert_never exhaustiveness guard, so a type checker rejects unguarded
  subtype attribute access and flags any newly added ALARM event type.
- Fix a latent None-leak: alarm_to_nsentry now always returns a dict.
- Add mypy as a gradual-typing beachhead (setup.cfg [mypy], CI step, Pipfile
  typecheck script), scoped to process_alarm.py. This configuration fails on
  exactly the #156 class of bug.
- Add regression tests: malfunction processing, mixed alarm batches, the event
  shape, and an AlarmEvent/EventClass.ALARM sync guard.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LpMTd5LzkqFLZTUKd3H8em
@jwoglom
jwoglom merged commit ddeaa79 into dev Jul 21, 2026
4 checks passed
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.

2 participants