Skip to content

initial commit#166026

Draft
jeeftor wants to merge 1 commit intohome-assistant:devfrom
jeeftor:feature/init-qa-monarch
Draft

initial commit#166026
jeeftor wants to merge 1 commit intohome-assistant:devfrom
jeeftor:feature/init-qa-monarch

Conversation

@jeeftor
Copy link
Contributor

@jeeftor jeeftor commented Mar 19, 2026

Breaking change

Proposed change


Bronze — Evidence

Rule Status Evidence
action-setup exempt No hass.services.async_register calls anywhere in the integration
appropriate-polling done coordinator.py#L54update_interval=timedelta(hours=4)
brands done Integration is published in HA core; brand assets exist in the external brands repo
common-modules done Coordinator logic in coordinator.py; constants in const.py
config-flow-test-coverage done test_config_flow.py — 4 scenarios: success, duplicate entry, invalid auth, MFA flow
config-flow done config_flow.py exists; validate_login() called before async_create_entry
dependency-transparency done manifest.json lists typedmonarchmoney==0.7.0 in requirements
docs-actions exempt No service actions registered
docs-high-level-description done Docs page has a description of the Monarch Money service
docs-installation-instructions done Docs page has step-by-step installation instructions
docs-removal-instructions todo Docs page has no removal instructions section
entity-event-setup exempt All entities extend CoordinatorEntity; no additional event subscriptions
entity-unique-id done entity.py#L29-L31 (cashflow) and entity.py#L61-L63 (accounts)
has-entity-name done entity.py#L16_attr_has_entity_name = True
runtime-data done __init__.py#L23entry.runtime_data = mm_coordinator
test-before-configure done config_flow.py calls validate_login() before async_create_entry
test-before-setup done __init__.py#L22async_config_entry_first_refresh() triggers _async_setup which raises ConfigEntryError on auth failure
unique-config-entry done config_flow.py#L140-L141async_set_unique_id + _abort_if_unique_id_configured

Silver — Evidence

Rule Status Evidence
action-exceptions exempt No service actions
config-entry-unloading done __init__.py#L28-L32async_unload_entry implemented
docs-configuration-parameters todo Docs page does not describe configuration parameters in detail
docs-installation-parameters todo Docs page does not describe each parameter (email, password, MFA code) individually
entity-unavailable done CoordinatorEntity marks entities unavailable automatically; MonarchMoneyAccountEntity.available also checks account presence
integration-owner done manifest.jsoncodeowners: ["@jeeftor"]
log-when-unavailable done DataUpdateCoordinator handles unavailability logging automatically
parallel-updates todo PARALLEL_UPDATES constant not defined in sensor.py
reauthentication-flow todo No async_step_reauth in config_flow.py
test-coverage todo Only one snapshot test for the sensor platform; overall coverage not verified >95%

Gold — Evidence

Rule Status Evidence
devices done entity.py — both entity classes populate DeviceInfo
diagnostics todo No diagnostics.py file
discovery-update-info exempt Cloud service; network discovery not applicable
discovery exempt Cloud service; no DHCP/SSDP/Zeroconf/USB discovery
docs-data-update todo Docs do not describe the 4-hour polling interval
docs-examples todo No usage examples in docs
docs-known-limitations todo No known limitations section in docs
docs-supported-devices todo Supported account types/subtypes not enumerated in docs
docs-supported-functions todo Not all sensors (income, expense, savings, savings rate, balance, value, age) described in docs
docs-troubleshooting todo No troubleshooting section in docs
docs-use-cases todo No use-cases section in docs
dynamic-devices todo No mechanism to add/remove devices after initial setup
entity-category done sensor.py#L71EntityCategory.DIAGNOSTIC on age sensor
entity-device-class done SensorDeviceClass.MONETARY and SensorDeviceClass.TIMESTAMP used in sensor.py
entity-disabled-by-default todo Diagnostic age sensor and lesser-used sensors are not disabled by default
entity-translations done translation_key set on all entity descriptions in sensor.py
exception-translations todo Config flow exceptions do not use translated messages
icon-translations done icons.json provides icons for sensor entities
reconfiguration-flow todo No async_step_reconfigure in config_flow.py
repair-issues todo No repair issues raised; no reauthentication path for token expiry
stale-devices todo Closed/removed Monarch Money accounts are not purged from the device registry

Platinum — Evidence

Rule Status Evidence
async-dependency done typedmonarchmoney is fully async (built on gql/aiohttp); coordinator.py imports ClientResponseError from aiohttp
inject-websession todo TypedMonarchMoney.__init__ accepts (session_file, timeout, token) — no aiohttp.ClientSession injection supported
strict-typing todo No .strict-typing marker file; not verified against mypy --strict

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:
  • Link to developer documentation pull request:
  • Link to frontend pull request:

Checklist

  • I understand the code I am submitting and can explain how it works.
  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.
  • Any generated code has been carefully reviewed for correctness and compliance with project standards.

If user exposed functionality or configuration variables are added/changed:

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies a diff between library versions and ideally a link to the changelog/release notes is added to the PR description.

To help with the load of incoming pull requests:

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds quality scale metadata for the Monarch Money integration by creating a quality_scale.yaml file and removing the integration from the exemption list in the quality scale script.

Changes:

  • Added quality_scale.yaml with comprehensive quality scale rule assessments for the Monarch Money integration (Bronze, Silver, Gold, and Platinum tiers)
  • Removed monarch_money from the INTEGRATIONS_WITHOUT_QUALITY_SCALE_FILE list to indicate the integration now has a quality scale file

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
script/hassfest/quality_scale.py Removed monarch_money from the exemptions list
homeassistant/components/monarch_money/quality_scale.yaml Added complete quality scale rule assessments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants