Skip to content

Commit df4a6e6

Browse files
fix: align public API and docs with project philosophy
Export Brightness, PulsatingEffect, and NAMED_COLORS from the top-level package. Fix brand name references to "Dimplex, Faber, and Real Flame" across __init__.py, pyproject.toml, and cli.py. Remove stale fan-only heat-mode from README, fix brightness docs (low/high not 0-255), and remove light-status from argparse help text. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 093e6d4 commit df4a6e6

7 files changed

Lines changed: 98 additions & 7 deletions

File tree

.ai/task-manager/plans/13--philosophy-alignment-fixes/plan-13--philosophy-alignment-fixes.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,46 @@ Six targeted text fixes across four files:
124124
- Existing CI pipeline (ruff, mypy, pytest) for validation
125125
- No new dependencies or tools required
126126

127+
## Execution Blueprint
128+
129+
```mermaid
130+
graph TD
131+
01["Task 01: Public API exports"] --> Done["Done"]
132+
02["Task 02: Documentation fixes"] --> Done
133+
```
134+
135+
### ✅ Phase 1: All Fixes
136+
**Parallel Tasks:**
137+
- ✔️ Task 01: Export missing model types from __init__.py
138+
- ✔️ Task 02: Fix documentation and brand name inconsistencies
139+
140+
### Execution Summary
141+
- Total Phases: 1
142+
- Total Tasks: 2
143+
- All tasks completed in parallel
144+
145+
## Execution Summary
146+
147+
**Status**: ✅ Completed Successfully
148+
**Completed Date**: 2026-02-26
149+
150+
### Results
151+
- **Public API**: Added `Brightness`, `PulsatingEffect`, and `NAMED_COLORS` to `__init__.py` imports and `__all__`.
152+
- **Brand names**: Updated from "Dimplex/Faber" or "Dimplex" to "Dimplex, Faber, and Real Flame" in `__init__.py`, `pyproject.toml`, and `cli.py`.
153+
- **README**: Removed `fan-only` from heat-mode example, changed brightness from "0-255" to "low, high".
154+
- **CLI**: Removed `light-status` from argparse settable parameter list.
155+
- All 1044 tests pass, mypy clean, ruff clean.
156+
157+
### Noteworthy Events
158+
No significant issues encountered. All changes were small, targeted text edits.
159+
160+
### Recommendations
161+
None — all philosophy gaps identified in the audit have been addressed.
162+
127163
## Notes
128164

129165
### Change Log
130166

131167
- 2026-02-25: Initial plan creation
132168
- 2026-02-25: Refinement — all 8 gaps verified against codebase; added `__all__` placement guidance for new exports; no clarifications needed from user
169+
- 2026-02-26: Execution completed — all 8 fixes applied
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
id: 1
3+
group: "philosophy-alignment-fixes"
4+
dependencies: []
5+
status: "completed"
6+
created: 2026-02-26
7+
skills:
8+
- "python-packaging"
9+
---
10+
# Export missing model types from __init__.py
11+
12+
## Objective
13+
Add Brightness, PulsatingEffect, and NAMED_COLORS to the public API.
14+
15+
## Acceptance Criteria
16+
- [x] `from flameconnect import Brightness, PulsatingEffect, NAMED_COLORS` works
17+
- [x] All three are listed in `__all__`
18+
- [x] mypy passes
19+
20+
## Output Artifacts
21+
- Updated `src/flameconnect/__init__.py`
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
id: 2
3+
group: "philosophy-alignment-fixes"
4+
dependencies: []
5+
status: "completed"
6+
created: 2026-02-26
7+
skills:
8+
- "documentation"
9+
---
10+
# Fix documentation and brand name inconsistencies
11+
12+
## Objective
13+
Align brand names, remove stale references, and fix inaccurate parameter docs.
14+
15+
## Acceptance Criteria
16+
- [x] Brand names say "Dimplex, Faber, and Real Flame" in __init__.py, pyproject.toml, cli.py
17+
- [x] README heat-mode example does not mention fan-only
18+
- [x] README brightness shows low/high instead of 0-255
19+
- [x] argparse help text does not mention light-status
20+
- [x] All CI checks pass
21+
22+
## Output Artifacts
23+
- Updated `src/flameconnect/__init__.py`, `pyproject.toml`, `src/flameconnect/cli.py`, `README.md`

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,10 @@ flameconnect set <fire_id> mode manual
123123
# Set flame speed (1-5)
124124
flameconnect set <fire_id> flame-speed 3
125125

126-
# Set brightness (0-255)
127-
flameconnect set <fire_id> brightness 200
126+
# Set brightness (low, high)
127+
flameconnect set <fire_id> brightness low
128128

129-
# Set heat mode (normal, boost, eco, fan-only)
129+
# Set heat mode (normal, boost, eco)
130130
flameconnect set <fire_id> heat-mode eco
131131

132132
# Set heater target temperature

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
55
[project]
66
name = "flameconnect"
77
version = "0.1.0"
8-
description = "Async Python library for controlling Dimplex/Faber fireplaces via the Flame Connect cloud API"
8+
description = "Async Python library for controlling Dimplex, Faber, and Real Flame fireplaces via the Flame Connect cloud API"
99
readme = "README.md"
1010
license = "Apache-2.0"
1111
requires-python = ">=3.13"

src/flameconnect/__init__.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""Async Python library for controlling Dimplex/Faber fireplaces."""
1+
"""Async Python library for controlling Dimplex, Faber, and Real Flame fireplaces."""
22

33
from __future__ import annotations
44

@@ -13,6 +13,8 @@
1313
ProtocolError,
1414
)
1515
from flameconnect.models import (
16+
NAMED_COLORS,
17+
Brightness,
1618
ConnectionState,
1719
ErrorParam,
1820
Fire,
@@ -32,6 +34,7 @@
3234
MediaTheme,
3335
ModeParam,
3436
Parameter,
37+
PulsatingEffect,
3538
RGBWColor,
3639
SoftwareVersionParam,
3740
SoundParam,
@@ -55,6 +58,7 @@
5558
"FlameConnectError",
5659
"ProtocolError",
5760
# Enums
61+
"Brightness",
5862
"ConnectionState",
5963
"FireMode",
6064
"FlameColor",
@@ -65,6 +69,7 @@
6569
"LightStatus",
6670
"LogEffect",
6771
"MediaTheme",
72+
"PulsatingEffect",
6873
"TempUnit",
6974
"TimerStatus",
7075
# Dataclasses
@@ -81,6 +86,8 @@
8186
"SoundParam",
8287
"TempUnitParam",
8388
"TimerParam",
89+
# Constants
90+
"NAMED_COLORS",
8491
# Type aliases
8592
"Parameter",
8693
]

src/flameconnect/cli.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -830,7 +830,10 @@ def build_parser() -> argparse.ArgumentParser:
830830
"""Build and return the argparse parser for the CLI."""
831831
parser = argparse.ArgumentParser(
832832
prog="flameconnect",
833-
description=("Control Dimplex fireplaces via the Flame Connect cloud API"),
833+
description=(
834+
"Control Dimplex, Faber, and Real Flame fireplaces"
835+
" via the Flame Connect cloud API"
836+
),
834837
)
835838
parser.add_argument(
836839
"-v",
@@ -865,7 +868,7 @@ def build_parser() -> argparse.ArgumentParser:
865868
"Parameter name: mode, flame-speed, brightness, pulsating,"
866869
" flame-color, media-theme, heat-mode, heat-temp, timer,"
867870
" temp-unit, flame-effect, media-light, media-color,"
868-
" overhead-light, overhead-color, light-status, ambient-sensor"
871+
" overhead-light, overhead-color, ambient-sensor"
869872
),
870873
)
871874
sp_set.add_argument("value", help="Value to set")

0 commit comments

Comments
 (0)