v0.18.3 - Pendulum Migration in history.py and monitor.py (2026-03-05)¶
What Changed?¶
This release replaces stdlib datetime with pendulum in history.py and
monitor.py, and fixes a hardcoded "Asia/Tokyo" timezone in history.py.
Both scripts now use get_timezone() for local timezone resolution, making
them portable across different timezone environments.
What's New¶
Main Feature: Pendulum and get_timezone() in history.py and monitor.py¶
What it does:
history.py: timezone field now resolved viaget_timezone()(was hardcoded"Asia/Tokyo"); timestamps usependulum.now("UTC")andpendulum.parse()instead of stdlibdatetimemonitor.py: detected timestamp conversion now usespendulum.from_timestamp(..., tz=get_timezone())instead ofdatetime.fromtimestamp(..., tz=timezone.utc).astimezone()
How to use it:
# Uses system timezone (default)
uv run history.py
# Override timezone via environment variable
KAZUNOKO_TZ=Europe/Paris uv run monitor.py ./data
Installation¶
Quick Start¶
# Get the release
git checkout 0.18.3
# Setup
uv sync
# Run CLI
uv run kazunoko --help
What's Different from the Last Version?¶
🔧 Changed¶
history.py: replaced hardcoded"Asia/Tokyo"withget_timezone()for the device timezone fieldhistory.py: replaceddatetime.now(timezone.utc)withpendulum.now("UTC")anddatetime.fromisoformat()withpendulum.parse()inupdate_status()history.py: replaceddatetime.now("UTC").isoformat()withpendulum.now("UTC").isoformat()in__post_init__monitor.py: replaceddatetime.fromtimestamp(..., tz=timezone.utc).astimezone()withpendulum.from_timestamp(..., tz=get_timezone())inrender()
Is It Safe to Upgrade?¶
Backward Compatible: Yes
history.py: timezone field in saved JSONL now reflects system timezone instead of always"Asia/Tokyo"— setKAZUNOKO_TZ=Asia/Tokyoto preserve previous behavior explicitlymonitor.py: displayed timestamps now reflect local timezone viaget_timezone()— no behavioral change for users already inAsia/Tokyo
Tests Passed¶
- ✅ Builds without errors
- ✅
uvx ruff check src/passes - ✅ Pre-commit hooks pass
Release Details¶
- Date: 2026-03-05
- Version: v0.18.3
- Files Changed: 2
- Commits:
22642c4,18843c6,655d7d2
Next Steps¶
- Consider exposing
KAZUNOKO_TZin the CLI as a global option