docs: rewrite documentation site (T01-T12)#970
Open
NodeJSmith wants to merge 151 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR is a large-scale documentation overhaul (per spec 070-doc-overhaul) that rewrites major docs sections, updates many snippet files, and adds CI guards to keep docs snippets and links healthy for the ReadTheDocs preview builds.
Changes:
- Added a CI script + workflow steps to detect orphaned docs snippet files and to run a built-site link check.
- Refined docs Pyright configuration to scope suppressions per-directory (so new snippets are type-checked more strictly by default).
- Rewrote/updated many docs pages, task/outlines artifacts, and code snippets to match the new JTBD structure and voice rules.
Reviewed changes
Copilot reviewed 272 out of 282 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/check_snippet_orphans.py | New CI guard script to detect unreferenced snippet files. |
| tests/TESTING.md | Updated docs text for app lifecycle tests listing. |
| docs/pyrightconfig.json | Scoped Pyright suppressions via execution environments for docs snippets. |
| docs/pages/web-ui/inspect-config-code.md | New/rewritten Web UI task page. |
| docs/pages/testing/time-control.md | Rewritten testing time-control documentation. |
| docs/pages/recipes/snippets/motion_lights.py | Updated recipe snippet (config fields + job naming). |
| docs/pages/recipes/snippets/motion_lights_split.py | Added split-handler variation recipe snippet. |
| docs/pages/recipes/service-call-reaction.md | Rewritten recipe prose + verification steps. |
| docs/pages/recipes/index.md | Updated recipes index structure and descriptions. |
| docs/pages/operating/upgrading.md | Added/rewritten operating guide for upgrading Hassette. |
| docs/pages/operating/snippets/ws_reconnect_events.py | Added snippet demonstrating reconnect-related bus events. |
| docs/pages/operating/snippets/timeout_overrides.py | Added snippet demonstrating per-handler/job timeout overrides. |
| docs/pages/operating/snippets/quiet_file_watcher.toml | Added TOML snippet for file watcher log tuning. |
| docs/pages/operating/snippets/per_app_log_level.toml | Added TOML snippet for per-app log levels. |
| docs/pages/operating/snippets/debug_scheduler.toml | Added TOML snippet for scheduler debug logging. |
| docs/pages/operating/snippets/debug_ha_comms.toml | Added TOML snippet for HA comms debug logging. |
| docs/pages/operating/snippets/basic_example.toml | Added basic TOML logging config example. |
| docs/pages/migration/testing.md | Rewritten migration testing guidance + new snippet include. |
| docs/pages/getting-started/snippets/run_output.txt | Updated expected quickstart output snippet. |
| docs/pages/getting-started/snippets/first_automation_step4.py | Reformatted first-automation step snippet. |
| docs/pages/getting-started/snippets/first_automation_step3.py | Reformatted first-automation step snippet. |
| docs/pages/getting-started/snippets/first_app.py | Simplified quickstart “first app” snippet. |
| docs/pages/getting-started/snippets/env_file.sh | Updated .env example content. |
| docs/pages/getting-started/is-hassette-right-for-you.md | New/rewritten evaluator page for fit assessment. |
| docs/pages/getting-started/ha_token.md | Rewritten HA token creation guide. |
| docs/pages/getting-started/docker/snippets/uv-lock.sh | Removed snippet (Docker deps doc simplification). |
| docs/pages/getting-started/docker/snippets/uv-cache-volume.yml | Removed snippet (Docker deps doc simplification). |
| docs/pages/getting-started/docker/snippets/ts-vol-mount.yml | Removed snippet (Docker troubleshooting simplification). |
| docs/pages/getting-started/docker/snippets/ts-uv-relock.sh | Removed snippet (Docker deps doc simplification). |
| docs/pages/getting-started/docker/snippets/ts-uv-cache-vol.yml | Removed snippet (Docker deps doc simplification). |
| docs/pages/getting-started/docker/snippets/ts-pyproject-dep.toml | Removed snippet (Docker deps doc simplification). |
| docs/pages/getting-started/docker/snippets/ts-project-dir-env.yml | Removed snippet (Docker deps doc simplification). |
| docs/pages/getting-started/docker/snippets/ts-pin-hassette-pyproject.toml | Removed snippet (Docker image tag docs update). |
| docs/pages/getting-started/docker/snippets/ts-memory-limit.yml | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-ls-apps.sh | Simplified command snippet. |
| docs/pages/getting-started/docker/snippets/ts-hot-reload.toml | Removed snippet (moved out of getting-started). |
| docs/pages/getting-started/docker/snippets/ts-health-check.sh | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-health-check-long-start.yml | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-grep-errors.sh | Simplified log-grep command snippet. |
| docs/pages/getting-started/docker/snippets/ts-find-requirements.sh | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-diagnostics.sh | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-dep-install-logs.sh | Updated grep patterns for install logs. |
| docs/pages/getting-started/docker/snippets/ts-dep-conflict.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-curl-ha.sh | Updated HA connectivity test snippet. |
| docs/pages/getting-started/docker/snippets/ts-chmod.sh | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-check-logs-tail.sh | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-check-constraints.sh | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-cat-pyproject.sh | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-app-dir-toml.toml | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-app-dir-src-env.yml | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/ts-app-config.toml | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/tag-prerelease-explicit.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/tag-prerelease-compose.yml | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/tag-pinned-compose.yml | Updated pinned image tag example. |
| docs/pages/getting-started/docker/snippets/tag-format-versioned.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/tag-format-pr.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/tag-format-main.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/tag-format-latest.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/requirements-example.txt | Updated requirements example packages. |
| docs/pages/getting-started/docker/snippets/pyproject-example.toml | Updated pyproject dependencies example. |
| docs/pages/getting-started/docker/snippets/prod-reload.toml | Removed snippet (moved out of getting-started). |
| docs/pages/getting-started/docker/snippets/env-file.sh | Updated Docker .env example. |
| docs/pages/getting-started/docker/snippets/docker-version-check.sh | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/docker-pull-update.sh | Simplified update command snippet. |
| docs/pages/getting-started/docker/snippets/docker-compose-logs.sh | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/dir-structure.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/deps-startup-flow.mmd | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/deps-src-dir-structure.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/deps-src-compose.yml | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/deps-requirements-dir-structure.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/deps-pyproject-compose.yml | Minor compose snippet adjustment. |
| docs/pages/getting-started/docker/snippets/deps-install-deps-env.yml | Expanded to a complete compose example enabling dep install. |
| docs/pages/getting-started/docker/snippets/deps-flat-dir-structure.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/deps-example2-pyproject.toml | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/deps-example2-compose.yml | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/deps-example1-requirements.txt | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/deps-example1-compose.yml | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/deps-app-using-package.py | Added example app importing an extra dependency. |
| docs/pages/getting-started/docker/snippets/custom-image.dockerfile | Removed snippet (scope reduction). |
| docs/pages/getting-started/docker/snippets/custom-image-compose.yml | Removed snippet (scope reduction). |
| docs/pages/core-concepts/states/snippets/states_generic_access.py | Added inline Pyright ignore for fictional import. |
| docs/pages/core-concepts/states/snippets/state_typed_di.py | Added typed DI example snippet. |
| docs/pages/core-concepts/states/snippets/state_duration.py | Added duration-based state change example snippet. |
| docs/pages/core-concepts/states/snippets/state_basic_subscribe.py | Added basic typed state subscription example snippet. |
| docs/pages/core-concepts/states/snippets/state_attribute_change.py | Added attribute-change subscription example snippet. |
| docs/pages/core-concepts/states/domain-states.md | Added placeholder/stub page for DomainStates reference. |
| docs/pages/core-concepts/scheduler/snippets/scheduler_self_cancel.py | Updated self-cancel example snippet to avoid private naming. |
| docs/pages/core-concepts/configuration/snippets/single_instance.toml | Updated TOML path to [hassette.apps.<key>]. |
| docs/pages/core-concepts/configuration/snippets/multiple_instances.toml | Updated TOML paths to [hassette.apps.<key>] + [[...config]]. |
| docs/pages/core-concepts/configuration/snippets/file_discovery.md | Adjusted CLI override wording. |
| docs/pages/core-concepts/configuration/snippets/basic_config.toml | Minor comment cleanup + removed array-of-tables example. |
| docs/pages/core-concepts/bus/snippets/handlers/non_state_raw_topic.py | Added snippet for non-state raw topic subscription. |
| docs/pages/core-concepts/bus/snippets/handlers/non_state_internal.py | Added snippet for internal websocket connect/disconnect hooks. |
| docs/pages/core-concepts/bus/snippets/handlers/non_state_call_service.py | Added snippet for service call subscription with DI. |
| docs/pages/core-concepts/bus/snippets/filtering_service_callable.py | Added Pyright ignore for callable operator issue in snippet. |
| docs/pages/core-concepts/bus/snippets/dependency-injection/union_types.py | Reformatted union DI example snippet. |
| docs/pages/core-concepts/bus/snippets/dependency-injection/state_object_extractors.py | Updated DI extractor example snippet content. |
| docs/pages/core-concepts/bus/snippets/dependency-injection/quick_example.py | Reformatted handler signature. |
| docs/pages/core-concepts/bus/snippets/dependency-injection/multiple_dependencies.py | Simplified multi-dependency DI example snippet. |
| docs/pages/core-concepts/bus/snippets/dependency-injection/mixing_kwargs.py | Updated example for kwargs + DI composition. |
| docs/pages/core-concepts/bus/snippets/bus_rate_control.py | Updated debounce/throttle/once examples and markers. |
| docs/pages/core-concepts/bus/snippets/bus_basic_subscribe.py | Added a DI-first subscription example snippet. |
| docs/pages/core-concepts/apps/snippets/lifecycle_sync.py | Added AppSync lifecycle example snippet. |
| docs/pages/core-concepts/apps/snippets/lifecycle_hooks.py | Updated lifecycle hooks example. |
| docs/pages/core-concepts/apps/snippets/apps_check_state.py | Updated DomainStates indexing example. |
| docs/pages/core-concepts/api/snippets/api_utilities.py | Reformatted fire_event/set_state examples. |
| docs/pages/core-concepts/api/snippets/api_template.py | Refactored template snippet into a string variable. |
| docs/pages/core-concepts/api/snippets/api_response.py | Reformatted service call returning a response. |
| docs/pages/core-concepts/api/snippets/api_logbook.py | Refactored to compute start/end instants explicitly. |
| docs/pages/core-concepts/api/snippets/api_history.py | Reformatted get_history call for readability. |
| docs/pages/core-concepts/api/snippets/api_helpers.py | Reformatted helper service calls. |
| docs/pages/core-concepts/api/snippets/api_get_state.py | Updated typed state example. |
| docs/pages/core-concepts/api/snippets/api_get_state_value.py | Added simple get_state_value snippet. |
| docs/pages/core-concepts/api/services.md | Rewritten API services page content + snippet references. |
| design/specs/070-doc-overhaul/tasks/T09-write-web-ui.md | Added task doc for Web UI section rewrite. |
| design/specs/070-doc-overhaul/tasks/T05-pyright-cleanup.md | Added task doc for scoping Pyright suppressions. |
| design/specs/070-doc-overhaul/tasks/exemplar-selections.md | Added exemplar selection rationale. |
| design/specs/070-doc-overhaul/outlines/web-ui/overview.md | Added Web UI overview outline. |
| design/specs/070-doc-overhaul/outlines/web-ui/manage-apps.md | Added Manage Apps page outline. |
| design/specs/070-doc-overhaul/outlines/web-ui/logs.md | Added Logs page outline. |
| design/specs/070-doc-overhaul/outlines/web-ui/inspect-config-code.md | Added Inspect Config/Code outline. |
| design/specs/070-doc-overhaul/outlines/web-ui/debug-handler.md | Added Debug Handler outline. |
| design/specs/070-doc-overhaul/outlines/testing/time-control.md | Added Testing/Time Control outline. |
| design/specs/070-doc-overhaul/outlines/testing/quickstart.md | Added Testing quickstart outline. |
| design/specs/070-doc-overhaul/outlines/testing/factories.md | Added Testing factories/reference outline. |
| design/specs/070-doc-overhaul/outlines/testing/concurrency.md | Added Testing concurrency outline. |
| design/specs/070-doc-overhaul/outlines/recipes/vacation-mode-toggle.md | Added recipe outline. |
| design/specs/070-doc-overhaul/outlines/recipes/service-call-reaction.md | Added recipe outline. |
| design/specs/070-doc-overhaul/outlines/recipes/sensor-threshold.md | Added recipe outline. |
| design/specs/070-doc-overhaul/outlines/recipes/overview.md | Added recipes overview outline. |
| design/specs/070-doc-overhaul/outlines/recipes/motion-lights.md | Added motion-lights outline notes. |
| design/specs/070-doc-overhaul/outlines/recipes/debounce-sensor-changes.md | Added recipe outline. |
| design/specs/070-doc-overhaul/outlines/recipes/daily-notification.md | Added recipe outline. |
| design/specs/070-doc-overhaul/outlines/operating/upgrading.md | Added operating upgrading outline. |
| design/specs/070-doc-overhaul/outlines/operating/overview.md | Added operating overview outline. |
| design/specs/070-doc-overhaul/outlines/operating/log-levels.md | Added operating log-level tuning outline. |
| design/specs/070-doc-overhaul/outlines/migration/testing.md | Added migration testing outline. |
| design/specs/070-doc-overhaul/outlines/migration/scheduler.md | Added migration scheduler outline. |
| design/specs/070-doc-overhaul/outlines/migration/overview.md | Added migration overview outline. |
| design/specs/070-doc-overhaul/outlines/migration/configuration.md | Added migration configuration outline. |
| design/specs/070-doc-overhaul/outlines/migration/concepts.md | Added migration mental-model outline. |
| design/specs/070-doc-overhaul/outlines/migration/bus.md | Added migration bus/events outline. |
| design/specs/070-doc-overhaul/outlines/migration/api.md | Added migration API outline. |
| design/specs/070-doc-overhaul/outlines/home.md | Added home page outline. |
| design/specs/070-doc-overhaul/outlines/getting-started/quickstart.md | Added getting-started quickstart outline. |
| design/specs/070-doc-overhaul/outlines/getting-started/is-hassette-right-for-you.md | Added evaluator page outline. |
| design/specs/070-doc-overhaul/outlines/getting-started/hassette-vs-ha-yaml.md | Marked as absorbed into evaluator page. |
| design/specs/070-doc-overhaul/outlines/getting-started/ha-token.md | Added HA token page outline. |
| design/specs/070-doc-overhaul/outlines/getting-started/first-automation.md | Added first-automation outline. |
| design/specs/070-doc-overhaul/outlines/getting-started/docker-troubleshooting.md | Added Docker troubleshooting outline. |
| design/specs/070-doc-overhaul/outlines/getting-started/docker-setup.md | Added Docker setup outline. |
| design/specs/070-doc-overhaul/outlines/getting-started/docker-image-tags.md | Added Docker image tags outline. |
| design/specs/070-doc-overhaul/outlines/getting-started/docker-dependencies.md | Added Docker dependencies outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/states/domain-states.md | Documented removal rationale in outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/scheduler/overview.md | Added scheduler overview outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/internals/service-details.md | Added internals per-service outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/internals/overview.md | Documented folding decision for internals index. |
| design/specs/070-doc-overhaul/outlines/core-concepts/internals/lifecycle.md | Added internals lifecycle outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/internals/architecture-data-flow.md | Added internals architecture/data-flow outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/database-telemetry.md | Added database/telemetry outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/configuration/applications.md | Added application configuration outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/cache/patterns.md | Added cache patterns outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/cache/overview.md | Added cache overview outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/bus/predicate-reference.md | Added predicates/conditions/accessors reference outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/bus/overview.md | Added bus overview outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/bus/dependency-injection.md | Added DI reference outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/bus/custom-extractors.md | Added custom extractors outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/architecture.md | Added architecture page restructure outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/apps/task-bucket.md | Added task bucket outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/apps/lifecycle.md | Added apps lifecycle outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/apps/configuration.md | Documented absorption of apps/config page. |
| design/specs/070-doc-overhaul/outlines/core-concepts/api/utilities.md | Added API utilities outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/api/services.md | Added API services outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/api/overview.md | Added API overview outline. |
| design/specs/070-doc-overhaul/outlines/core-concepts/api/entities.md | Added entities/states outline. |
| design/specs/070-doc-overhaul/outlines/cli/workflows.md | Added CLI workflows outline. |
| design/specs/070-doc-overhaul/outlines/cli/overview.md | Added CLI overview outline notes. |
| design/specs/070-doc-overhaul/outlines/cli/configuration.md | Added CLI configuration outline. |
| design/specs/070-doc-overhaul/outlines/cli/commands.md | Added CLI command reference outline notes. |
| design/specs/070-doc-overhaul/followups.md | Added follow-ups tracker for remaining doc overhaul tasks. |
| CLAUDE.md | Updated framework overview lifecycle hooks list. |
| .github/workflows/docs.yml | Added docs workflow steps for orphan snippet check + link checking artifact workflow. |
| .claude/rules/doc-rules.md | Updated docs rules (recipe structure + line length guidance). |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #970 +/- ##
=======================================
Coverage 85.92% 85.93%
=======================================
Files 345 345
Lines 20280 20280
Branches 2682 2682
=======================================
+ Hits 17425 17427 +2
+ Misses 2021 2018 -3
- Partials 834 835 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…audit Operating: - Split upgrade instructions into pip and uv sections - Add uv tool upgrade note for tool installs - Add backup warning before major version upgrades Web UI: - Add curl quick-check for health endpoints - Define @only_app decorator in manage-apps BLOCKED state Migration: - Add fire_event section to api.md (was in index table but missing) - Add pytest-asyncio install step to testing.md - Add name= requirement to checklist pitfalls
Bus section (7 pages): - Add Subscription.cancel() explanation, ListenerNameRequiredError note - Define app key in verification commands, link monitoring UI - Add prose lead-ins for on_state_change examples - Clarify **opts as shared parameters with anchor link - Link hassette.toml references to configuration page - Add telemetry database link for listener persistence - Clarify D.StateNew vs D.TypedStateChangeEvent distinction - Add P.Not inline example, P.StateFrom/StateTo motivation - Clarify P.ServiceDataWhere two-form distinction - Expand 'Handler skipped' behavior, add D.MaybeEntityId use case - Add Bus.emit cross-app motivation, D.* compatibility note - Move ChangeType/ComparisonCondition/MISSING_VALUE definitions before first table use on predicate-reference page - Move accessor compatibility summary to section intro Scheduler: - Define trigger objects inline with examples - Add DuplicateJobNameError on name collision - Link monitoring UI and define app key in verification Apps: - Complete accessor list (add self.cache, self.task_bucket) - Clarify lifecycle database as SQLite telemetry DB - Reword on_initialize description functionally States: - Add self.states as App attribute note - Clarify group entity_id dual meaning - Add ZonedDateTime .to_stdlib() conversion note - Replace 'validate entities' with 'parse raw HA state dicts' - Replace StateProxy reference with user-facing reconnect behavior API: - Add .value/.attributes to get_state() return description Persona review skill: - Add briefing file workflow (extract -> assemble -> dispatch) - Fix schema enum for stuck-at-step-N (use pattern, not literal) - Fix template JSON examples (concrete values, not pipe-strings) - Fix persona extraction trailing separator - Fix extract_persona to return None instead of sys.exit
Getting-started: - Move async/await explanation before code block (Alex hits async def with no warning otherwise) - Replace jargon in self.bus/scheduler/api descriptions with concrete functional language - Link hassette.toml to configuration page - Clarify zero invocation count with plain language Testing: - Add AppConfig config dict explanation - Clarify RecordingApi is wired automatically by harness - Add bus parenthetical definition on first use - Replace 'state proxy' with 'in-process entity state cache' Apps/configuration: - Add hassette.toml file location (project root) - Add AppConfig functional definition inline Apps/task-bucket: - Establish self.task_bucket as App attribute on first use - Use full self.task_bucket.spawn() call form in prose Scheduler/methods: - Link timeout config to hassette.toml - Add reload trigger context to if_exists explanation Migration: - Add name= and await explanations after Quick Reference table (both were only explained in Common Pitfalls, too late for readers using the table as a migration guide)
Web UI: - Define 'handler' inline in opening paragraph - Replace 'telemetry accumulates' with concrete description - Replace 'ring buffer size' with plain language in config table - Replace 'telemetry backpressure' with actionable plain language Operating: - Move hassette.toml section reference to top of WebSocket section (was buried 34 lines after first config key reference) Troubleshooting: - Replace 'bare hostnames' with concrete example (homeassistant.local) - Replace 'state proxy' with 'self.states' - Replace 'upsert' with 'replaced automatically' - Replace 'auto-migration is not attempted' with plain language
C.Comparison("gt", 28.0) silently returned False for every HA state value
because states arrive as strings and the TypeError from str-vs-float
ordering was swallowed. Retry with float coercion, matching the existing
Increased/Decreased semantics. changed_to=C.Comparison(...) with numeric
thresholds now fires as documented.
…units bug in cache snippet
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Full documentation rewrite per spec 070-doc-overhaul. Opening PR for readthedocs preview build.
Scope
Rewrites all documentation sections from blank using JTBD-driven outlines, consistent voice guide, and tested snippets:
T13 (final sweep, snippet cleanup, merge) remains.