Nocturne v1.1.0
Minor release. Backward-compatible features plus a bug fix.
Highlights
- Real token accounting. Token usage is now measured from the opencode event stream (input, output, reasoning, and cache tokens) and accumulated per task, so the token_budget guardrail and the report/Discord output reflect actual usage instead of a flat per-task estimate. Verified end to end against a live opencode session.
- Daemon reliability. The resumed and DOABLE paths in the poll cycle share one helper, and NEED_INPUT issues are now parked with a clarifying question instead of being silently re-triaged every cycle.
- Timezone-aware quiet hours. quiet_hours can be interpreted in a configured IANA timezone (quiet_hours_tz) instead of UTC only. Defaults to UTC.
- Stricter mypy. Re-enabled the attr-defined and return-value checks and fixed the gaps they surfaced.
- Cleaner generated commits. Build and cache artifacts (for example pycache and tool caches) are excluded from a worktree so they cannot be swept into a generated PR on repos without a complete .gitignore.
- Version metadata is aligned across pyproject, the package, and the nocturne version command.