diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..80a8914 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,17 @@ +# Changelog + +All notable changes to this project are documented here. + +## 0.2.0 - 2026-08-07 + +- Support the current `ChatGPT.app` desktop process and bundled Codex CLI. +- Prevent stale session and permission files from blocking lamp updates. +- Handle context compaction, active Stop hooks, session cleanup, and asynchronous hook ordering. +- Replace blocking process-table scans with lightweight app detection. +- Add night mode with automatic state restoration. +- Add bounded log rotation and safer live diagnostics. +- Install the macOS menu bar app in `~/Applications` and start it at login. + +## 0.1.0 - 2026-05-06 + +- Initial Codex hook integration and persistent BLE daemon for Moonside Halo lamps. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a9dc35d..a8f3c78 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,6 @@ Please include: Before opening a PR: ```bash -python3 -B -m unittest discover -s tests +python3 -m pytest -q python3 -B -m py_compile codex_moonside/*.py install_hooks.py ``` diff --git a/README.md b/README.md index 5c499db..50f1030 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,9 @@ Make a Moonside Halo lamp show local Codex status using Codex lifecycle hooks and BLE. +[![Tests](https://github.com/ulanenko/codex-moonside-lamp/actions/workflows/tests.yml/badge.svg)](https://github.com/ulanenko/codex-moonside-lamp/actions/workflows/tests.yml) +[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) + ```text Codex hook event -> codex-moonside-hook @@ -22,7 +25,7 @@ The hook exits quickly and never talks to BLE. The daemon owns the persistent BL ## Status -Alpha, tested locally. +Version 0.2.0 (alpha), tested locally. Tested setup: @@ -75,7 +78,7 @@ When the clock is inside the configured window, idle or ambient states are repla ## Install ```bash -git clone +git clone https://github.com/ulanenko/codex-moonside-lamp.git cd codex-moonside-lamp scripts/setup-local source .venv/bin/activate @@ -241,7 +244,7 @@ scripts/install-macos-service ## macOS Menu Bar App -This branch includes an experimental menu bar wrapper for macOS. It does not replace the Python daemon or talk to BLE directly. It reads the existing config, state, and log files, then calls the same local scripts and CLI commands you would run from Terminal. +The macOS menu bar app is a local wrapper around the Python daemon. It does not talk to BLE directly. It reads the existing config, state, and log files, then calls the same local scripts and CLI commands you would run from Terminal. Build, install, launch, and start the local unsigned app at login: diff --git a/SECURITY.md b/SECURITY.md index a273815..7032c95 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -9,5 +9,5 @@ This project is local-only: Do not put prompts, command output, secrets, or source file contents into state files or logs. The default hook intentionally stores only event/state metadata. -Report security issues privately to the repository owner once the project is -published. +Report security issues privately through a +[GitHub security advisory](https://github.com/ulanenko/codex-moonside-lamp/security/advisories/new). diff --git a/codex_moonside/__init__.py b/codex_moonside/__init__.py index 9f2ebef..14706fb 100644 --- a/codex_moonside/__init__.py +++ b/codex_moonside/__init__.py @@ -1,3 +1,3 @@ """Codex lifecycle hook integration for Moonside lamps.""" -__version__ = "0.1.0" +__version__ = "0.2.0" diff --git a/pyproject.toml b/pyproject.toml index 7cef3b1..78748fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "codex-moonside-lamp" -version = "0.1.0" +version = "0.2.0" description = "Codex lifecycle hook status indicator for Moonside Halo lamps over BLE." readme = "README.md" requires-python = ">=3.10"