Joshua King 9fd06f40bb fix: address review findings - frozen dataclass, type-exclusive validation, storage mapping, strict from_dict, resolved-module purity guard
- RuleType values are now unique model names with an explicit
  storage_value mapping (monthly_day/monthly_weekday -> 'monthly',
  custom_days -> 'custom'), fixing the enum aliasing collapse where
  two members sharing a value collapsed into one
- to_dict serializes the model name so from_dict(to_dict()) is a true
  lossless round-trip; storage mapping is the DAO's documented job
- real @dataclass(frozen=True); non-string non-enum rule_type rejected
- every type carries ONLY its shape's fields: weekday_set forbidden on
  DAILY/monthly/yearly; day_of_month+nth forbidden on WEEKLY/CUSTOM_DAYS/
  YEARLY; month forbidden on monthly rules (the earlier silent-accept of
  these was the root cause behind the kwargs1 mystery)
- from_dict validates weekday_set entries BEFORE set() coercion ([0,
  False] cannot collapse) and never leaks raw TypeError from unknown-key
  sorting
- purity guard resolves the module by find_spec so relative 'from .db'
  imports are caught
2026-09-14 10:44:59 -04:00

NestQuest - House Chaos Coordination

Home Assistant custom integration for managing chores, custody schedules, and house coordination.

Overview

NestQuest helps households coordinate daily life, chore tracking, custody schedules, and shared tasks directly within Home Assistant. It provides sensors, calendar events, and service calls designed for busy households and modern co-parenting setups.

Installation

  1. Ensure HACS (Home Assistant Community Store) is installed.
  2. In Home Assistant, open HACS > Integrations.
  3. Select the three-dots menu in the top right and click Custom repositories.
  4. Enter the repository URL: https://github.com/talon2king/NestQuest
  5. Select category Integration and click Add.
  6. Search for NestQuest and click Download.
  7. Restart Home Assistant.

Note: Development happens in the private Gitea repository (https://code.cubecraftlabs.com/Maniacs_Mansion/NestQuest). The GitHub repository is a public mirror maintained for HACS distribution.

Manual Installation

  1. Download the latest release from the repository.
  2. Copy the custom_components/nestquest directory into your Home Assistant installation's config/custom_components/ folder:
    cp -R custom_components/nestquest <config_dir>/custom_components/
    
  3. Restart Home Assistant.

Configuration

After installation and restart:

  1. Navigate to Settings > Devices & Services in Home Assistant.
  2. Click Add Integration and search for NestQuest.
  3. Follow the on-screen configuration flow.

Developer Setup and Testing

This project uses uv for fast Python package and dependency management.

Prerequisites

  • Python 3.11 or newer
  • uv installed on your machine

Setup Environment

To set up the development environment and install dependencies:

uv sync

Running Tests

Run the test suite with pytest:

uv run pytest

License

This project is licensed under the MIT License - see the LICENSE file for details.

S
Description
No description provided
Readme MIT
6.7 MiB
Languages
TypeScript 41.2%
Python 39.7%
JavaScript 17.9%
CSS 1.1%