Skip to content

Home 2.2.1: security updates, ARP alert detail, monthly Dependabot - #110

Merged
mattmacrocket merged 9 commits into
mainfrom
chore/2026-11-03-roadmap
Nov 3, 2026
Merged

mattmacrocket merged 9 commits into
mainfrom
chore/2026-11-03-roadmap

Conversation

@mattmacrocket

Copy link
Copy Markdown
Collaborator

Prepares Home 2.2.1. Home 2.2.0 was tagged at 75ff60d but never published: its release run was cancelled before any approval because a critical certifi advisory arrived while it waited. 2.2.1 contains everything 2.2.0 had, plus the changes below.

Changes

  • Security updates. certifi 2026.10.18 (GHSA-6q48-6c7w-9gw2, critical) and multidict 6.9.1 (GHSA-54p9-h82j-f925, medium) arrived on main through chore(deps): bump certifi from 2026.7.22 to 2026.10.18 in /sensor #108 and chore(deps): bump multidict from 6.7.1 to 6.9.1 in /sensor #109. This branch carries the same versions. The sensor's httpx clients (AI endpoints, Home Assistant over HTTPS) trust certifi's bundle. aiohttp, used for Slack and webhooks, does not.
  • ARP identity conflict alert detail. The alert sheet only had a layout for port risk. Every other type fell through to the decoy SOURCE and INTRUSION cards, which read keys those alerts never store, so the cards rendered empty. A new AlertDetailPresentation type routes each alert type to the cards that match its stored fields and drops empty cards. ARP conflicts list each conflict with its IPs, MACs, the known device behind each address, likely benign causes, and the stored risk and fix text. The sensor records known_devices per conflict, keeps the last conflicts on auto-resolve, and adds an address-only summary to new and updated events. Event emission rules, severity, and dedup are unchanged.
  • Dependabot. Version updates move from weekly to monthly for all three ecosystems. Each ecosystem gets a security-updates group, so an advisory batch is one PR per ecosystem. Dependabot security updates are now enabled in repository settings. The supply-chain test parses the config and pins both.
  • Docs and agent instructions. Commits the CLAUDE.md adapter and the Known Gotchas section of AGENTS.md, and adds a Public Disclosure Rule. The user guide names the Studio Build Mac in full and documents ARP Identity Conflict alerts.
  • Version. App, sensor, and installer move to 2.2.1. Release notes move to docs/releases/2.2.1.md. The lock differs from main only in the sensor's own version line.

Testing

  • Sensor: uv run pytest tests/ -q: 2657 passed, 6 skipped. ruff check . clean, uv lock --check passes.
  • App: swift test passed: 437, 130, and 39 tests.
  • New tests were watched failing first: 5 sensor analyzer tests, the AlertDetailPresentationTests suite (12 tests), and the Dependabot schedule and grouping assertions.

The alert detail sheet only special-cased port risk. Every other type
fell through to the decoy SOURCE and INTRUSION cards, which read keys
that ARP conflict, review reminder and anomaly alerts never store, so
those sheets rendered empty cards.

App: AlertDetailPresentation routes each alert type to the cards that
read its stored shape and drops any card with no rows. ARP conflicts
get a section with one plain-language entry per conflict, its IPs and
MACs, the known device behind each address, the stored risk and fix,
and the resolved state.

Sensor: record_arp_conflicts attaches known_devices (matched by IP or
MAC) to each stored conflict and keeps the last conflicts on
auto-resolve. Event emission is unchanged: a device-only change is
written silently, so a rename cannot re-page Slack or push. New and
updated events carry an address-only summary for outbound channels.
The Known Gotchas section existed only in a local checkout, so agents
working from a fresh clone never saw it. Commit it as written, with the
example MAC replaced by a documentation-range value of the same unpadded
shape.

Add a Public Disclosure Rule: no real machine names, hostnames,
addresses, usernames, or other test-environment details in commits,
committed files, pull requests, issues, release notes, or tags.
Fifteen operator-facing mentions said only "Studio". The quoted sensor
log message and LM Studio references are unchanged.
Weekly version updates opened up to three pull requests a week, and each
one reran full CI on every other open pull request because main requires
branches to be up to date. Move all three ecosystems to monthly.

Vulnerability fixes no longer depend on this schedule: Dependabot
security updates, grouped per ecosystem, are now enabled in repository
settings. The supply-chain test parses the config and pins the monthly
schedule for each ecosystem.
Enabling security updates opened one pull request per package even with
the repository's grouped setting on. Declare a security-updates group
next to each version-updates group so an advisory batch arrives as one
pull request per ecosystem. The supply-chain test pins both groups.
certifi 2026.10.23 drops the emSign roots whose intermediate keys were
compromised (GHSA-6q48-6c7w-9gw2, critical). httpx trusts certifi's
bundle, so the sensor's AI endpoint clients were affected.

multidict 6.9.1 fixes a reference leak in items-view union and
subtraction (GHSA-54p9-h82j-f925, medium). Stay on the 6.x line rather
than the 7.x major that an unconstrained upgrade selects.
Home 2.2.0 was tagged but not published: a critical certifi advisory
arrived while its release waited for approval. 2.2.1 carries everything
2.2.0 contained plus the certifi and multidict security updates, the ARP
identity conflict alert detail, and monthly Dependabot version updates.

Bump the app, sensor, and installer versions, move the release notes to
2.2.1 with the new changes, and document ARP identity conflict alerts in
the user guide under the name the app shows.
@mattmacrocket
mattmacrocket merged commit 4a62228 into main Nov 3, 2026
6 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