Releases: Lwb89dev/kairos
Releases · Lwb89dev/kairos
Release list
kairos.0.1.1.apk
[0.1.1] - 2026-07-28
Added
- Task reminders. A task with a due date can carry several notifications
("at the due time", 5/15/30 minutes, 1/2 hours or 1 day before); setting a
deadline for the first time adds a one-hour reminder that can be changed or
removed. Reminders are handed to the system when the task is saved and
delivered by it, so nothing runs in the background, and they follow the task
to the account's other devices. A single switch in Settings turns them all
off and back on without losing the per-task choices. - Astraea calendar integration. A dated task can be published as an Astraea
calendar event, so it appears in that app's calendar and home-screen widget
on the day it is due. Opt-in per task, from the editor. When both apps are
installed, Kairos also sends Astraea a local instruction with an explicit
notification request, independently of Nostr. - Local Kairos ↔ Astraea interoperability. Android uses an explicit,
package-bound intent; Linux uses a per-user Unix-domain socket. Upserts,
edits, unchecks and deletions are delivered through a versioned JSON
protocol, with notification deduplication instructions for Astraea. - The Astraea calendar option is now available for dated tasks even without a
Nostr account or selected relay; the local bridge works offline and Nostr
remains the durable cross-device channel when configured. - Four more suggested relays (
relay.primal.net,relay.nostr.band,
nostr.mom,relay.snort.social) alongside the existing two, for
redundancy when one is slow or unreachable. As before, none is selected
unless the user taps it. - Relays on the local network can now be added to the ordinary relay list,
not only to the dedicated home-relay slot, overwss://or plaintext
ws://. Plaintext remains refused towards any host outside the local
network.
Fixed
- A personal home relay using a
ws://or private-network address was
accepted by the interface but silently discarded when saved, and again when
reloaded, so the setting was lost on restart. Relay normalization existed in
three divergent copies; there is now a single one used everywhere.
Security
- Bounded the work a relay reply can impose. A relay answering a request with
thousands of events carrying the account's public key and an invalid
signature could block the interface for tens of seconds. Replies are now
reduced before any signature verification, the amount verified per sync is
capped, and verification yields regularly so the app stays responsive. - Closed several ways to write an internal address that got past the
loopback/private-network refusal on public relay entries, including
IPv4-in-IPv6 forms and integer notations such as2130706433or127.1. - Applied that same refusal to profile-avatar downloads, which follow
redirects chosen by a remote host and previously had no such check. - Rejected relay URLs containing control characters or out-of-range ports
instead of storing a normalized version of them. - Closed websocket connections to relays removed from the configuration
instead of leaving them open until the app restarted. - Restricted Android TLS trust to the system certificate store.
kairos.0.1.0.apk
Kairos v0.1.0 — Initial Release
Kairos is an offline-first task manager with optional encrypted Nostr synchronization.
Features
- Create, edit, complete and delete tasks locally.
- Offline-first encrypted local storage.
- Optional NIP-44 encrypted synchronization over user-selected Nostr relays.
- Self-custodial authentication with no centralized account.
- Task descriptions, tags, priorities and colors.
- Local reminders with timezone and daylight-saving support.
- Optional Astraea calendar mirroring for dated tasks.
- Deterministic Nostr event coordinates to prevent duplicate records.
- Reliable deletion through encrypted tombstones and NIP-09 cleanup requests.
- Per-task local-only mode for data that must never leave the device.
- Relay URL validation and secure transport requirements.
- Bounded relay fan-out, timeouts and hostile-relay protections.
- Localization support for multiple languages.
Security and privacy
Kairos does not require a central server. Tasks remain local unless synchronization is explicitly enabled. Synchronized task data is encrypted before being published to Nostr relays.
Validation
- Full Flutter test suite passing.
- Static analysis passing.
- Relay and hostile-input integration tests included.
- Astraea calendar interoperability covered by regression tests.
This is the first public release of Kairos.