alpha.23: Triggers, Places, Signals, Recall, Sync, streaming Jarvis, Plan, Surfaces, Voice - #24
Merged
Conversation
…aces, Voice Nine of the ten researched ideas, skipping Health Connect as asked. Jarvis core v2 - Token streaming: the on-device engine now uses generateResponseAsync with a progress listener, so replies appear as they decode. A sentinel chunk hands over the sanitized full text at the end, which keeps turn tokens split across two fragments from ever showing. - Multi-hop tool use: up to two module reads per turn, each answered in a fresh pass, so "compare my screen time with my focus streak" works without either living in the always-on prompt. - New tools: rules, backups, reindex, plan a day, speak. Triggers (new module) - Rules are trigger, optional conditions, action: time of day, arriving at or leaving a place, a Wi-Fi network, an NFC tag, a matching notification, screen time over a threshold, battery below a level, or a reminder firing. - Actions are anything the cross-module contract exposes - tasks, notes, reminders, timers, focus, Brick modes, macros, pastes, downloads, screen-time sync and export, watering a plant. - Day-of-week and time-window conditions, a one-a-minute per-rule cooldown so a chatty app cannot run a macro forty times, run-by-hand testing, and a fire log that records every attempt with its outcome. Places (new core module) - Android has no geofence API outside Play Services, so a place is a Wi-Fi network name, a coordinate with a radius, or both. Matching polls every two minutes and never asks for an active fix. - Enter and leave are published on the event bus; the Places tab lives in Triggers, with "use where I am now" to fill a place in. Signals (new module) - Notification capture behind one grant, skipping ongoing and group-summary rows, deduping repeats inside a minute, tagging codes, parcel updates and receipts, trimming after 30 days. - A digest groups by app for "what did I miss", and rules can fire on a match. Recall (new core module) - Semantic index over notes, captures, memex clips, chat history and readable files under /LifeOS, chunked and embedded on-device, refreshed incrementally so the usual run costs almost nothing. Sync (new module) - Encrypted snapshots: VACUUM INTO for a consistent copy, AES-256-GCM with PBKDF2 key material from a passphrase, generations kept locally and pushed to a WebDAV folder on the NAS. - Every run is read back and decrypted to prove it works; a restore is staged and applied before Room opens the database on the next cold start, which is the only safe moment to swap it. Plan - Due tasks are placed into real gaps between events inside working hours as ordinary calendar events, so every placement stays movable and deletable. Surfaces - A "Next up" Glance widget, plus quick-settings tiles for capture and a 25-minute focus block. Voice - Replies can be spoken through the device's own on-device engine, and any module can speak through a Speak action. Room schema 17 (places, rules, fire log, signals, recall chunks, backup runs). Version 0.1.0-alpha.23. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011kSsXNrSk6NDjM2FjFZ7Y9
codebooo
force-pushed
the
claude/lifeos-production-plan-v3-dmynx3
branch
from
July 30, 2026 00:15
dcab0b9 to
09b0dd9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Nine of the ten researched ideas, skipping Health Connect as asked (0.1.0-alpha.23).
Jarvis core v2 (idea 2)
generateResponseAsyncwith a progress listener, so the reply appears as it decodes — first-token latency replaces total latency as the felt cost. A sentinel chunk hands over the sanitized full text at the end, so a turn token split across two fragments can never leak into the visible answer.Triggers (idea 1, new module)
A rule is a trigger, optional conditions, and an action. Triggers: time of day, arriving at or leaving a place, a Wi-Fi network, an NFC tag, a matching notification, screen time over a threshold, battery below a level, a reminder firing. Actions: anything the cross-module contract exposes — tasks, notes, reminders, timers, focus, Brick modes, macros, pastes, downloads, screen-time sync and export, watering a plant.
Day-of-week and time-window conditions, a per-rule one-a-minute cooldown so a chatty app can't run a macro forty times, run-by-hand testing, and a fire log that records every attempt and its outcome — "why did that happen" always has an answer. Jarvis reads and writes rules through the same vocabulary the editor uses, so he can't invent a trigger that does nothing.
Places (idea 7, new core module)
No geofence API exists outside Play Services, so a place is a Wi-Fi network name, a coordinate with a radius, or both. Matching polls every two minutes and never requests an active fix — cheaper than real geofences and reliable indoors. Enter/leave publish on the event bus, which is what Triggers listens to. The Places tab lives inside Triggers, with "use where I am now".
Signals (idea 6, new module)
Notification capture behind one grant: ongoing and group-summary rows skipped, repeats deduped inside a minute, codes/parcels/receipts tagged, rows trimmed after 30 days. A digest groups by app for "what did I miss", and rules can fire on a match.
Recall (idea 3, new core module)
Semantic index over notes, captures, memex clips, chat history and readable files under
/LifeOS, chunked and embedded on-device, refreshed incrementally so the usual pass costs almost nothing.[[get: recall | query]]replaces keyword search.Sync (idea 4, new module)
VACUUM INTOfor a consistent copy, AES-256-GCM with PBKDF2 key material from a passphrase, generations kept locally and pushed to a WebDAV folder on the NAS. Every run is read back and decrypted to verify it — an unverified backup isn't a backup. Restore is staged and applied before Room opens the database on the next cold start, which is the only safe moment to swap it. Losing the passphrase means losing the backups; the screen says so.Plan (idea 8)
Due tasks are placed into real gaps between existing events inside working hours, as ordinary calendar events — every placement stays movable and deletable, nothing hidden.
Surfaces (idea 9)
A "Next up" Glance home-screen widget, plus quick-settings tiles for capture and a 25-minute focus block.
Voice (idea 10)
Replies can be spoken through the device's own on-device engine (Samsung TTS on your phone), and any module can speak through a
Speakaction. Recognition already existed via Vosk.Notes
Provider, which is the correct fix rather than reshaping the graph.Verification
:app:assembleDebug,:app:assembleRelease(minified) and the fulltesttask pass. The two live protocol pieces from earlier rounds (PrivateBin, clearoutside) are untouched.Generated by Claude Code