-
released this
2026-08-31 21:44:41 +00:00 | 2 commits to master since this releaseIris Release Notes — v0.1.3
Covers the last 5 commits (
b065d17→8657e6a).Bug Fixes
HTTP fallback transport
- Port-conflict pre-check now actually fires (
8657e6a)
acquire_scoped_lockreturns(acquired, existing_record), but the old
if not acquire_scoped_lock(...)tested the tuple — which is always
truthy — so the "port in use by another profile" pre-check never ran and a
conflict surfaced as a generic bind failure. The code now unpacks and tests
the first element, matching the canonical usage in
gateway/platforms/base.py.
Gateway version reporting
- Gateway no longer advertises
unknownversion in production installs
(0f5b5a1)
hermes plugins install <repo>#gateway-pluginships only the
gateway-plugin/subdirectory into~/.hermes/plugins/iris, so the
repo-rootVERSIONfile is absent there andplugin_version()fell back
tounknown— causing the app to show a false "App and gateway versions
differ" warning.version.py: resolution chain is now repo-rootVERSION(dev/symlink
install) →plugin.yamlversion field (production install) →unknown;
stdlib-only parse, with abase=param for tests.plugin.yaml: bumped stale0.1.0→0.1.2to matchVERSION.- Added regression test simulating the production layout.
App notifications
- Fixed double notification + double unread count for cron deliveries
(ea375fd)
A cron delivery emits two frames (high-priority notification banner +
message). When backgrounded, each posted its own system notification
(Cron: <job_id>and the channel name), and the message frame's
redelivery (live SSE + sync replay after the push-triggered reconnect)
incremented the unread badge twice.- Records when a high-priority banner (cron/approval/clarify) was posted
per lane; suppresses the message frame's system notification within a
5 s window (mirrors the gateway's push-coalesce window). - Dedupes unread counting per lane by message id so a redelivered frame
only counts once (recorded only when the message actually counts as
unread).
- Records when a high-priority banner (cron/approval/clarify) was posted
Documentation
-
Clarified ntfy privacy (
b065d17)
The docs claimed ntfy keeps push metadata on your own infrastructure, but
the defaultNTFY_SERVER_URLis the publichttps://ntfy.shcloud
service.README.md,docs/08-push.md,docs/install.md, and
docs/playstore-listing.mdnow make explicit that push metadata (topic,
notification title) passes through ntfy.sh unless you self-host ntfy. -
Refreshed
AGENTS.mdto match the current codebase (5b78e15)- Removed hardcoded ADB serial (differs per developer/machine).
- Added the second pre-commit hook (
check_version_sync) to hard rules. - Documented
tests/,scripts/,backdrops/, andCI-SETUP.mdin the
layout. - Noted the committed
tests/test_android.pycopy and
test_android_http.py.
Tooling / Internal
- New pre-commit hook: version sync guard (
0f5b5a1)
scripts/check_version_sync.sh(wired into.pre-commit-config.yaml)
fails any commit wheregateway-plugin/plugin.yamlversion drifts from the
repo-rootVERSIONfile.
Version
- Bumped
VERSION/plugin.yamlto 0.1.3 (8657e6a).
Downloads
- Port-conflict pre-check now actually fires (