Skip to content

alpha.23: Triggers, Places, Signals, Recall, Sync, streaming Jarvis, Plan, Surfaces, Voice - #24

Merged
codebooo merged 1 commit into
mainfrom
claude/lifeos-production-plan-v3-dmynx3
Jul 30, 2026
Merged

alpha.23: Triggers, Places, Signals, Recall, Sync, streaming Jarvis, Plan, Surfaces, Voice#24
codebooo merged 1 commit into
mainfrom
claude/lifeos-production-plan-v3-dmynx3

Conversation

@codebooo

Copy link
Copy Markdown
Owner

Nine of the ten researched ideas, skipping Health Connect as asked (0.1.0-alpha.23).

Jarvis core v2 (idea 2)

  • Token streaming. The on-device engine uses generateResponseAsync with 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.
  • Multi-hop tools. 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 (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 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 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 Speak action. Recognition already existed via Vosk.

Notes

  • Two Hilt dependency cycles showed up where a module's action handler needed the thing that dispatches actions (Triggers, Plan); both are broken with Provider, which is the correct fix rather than reshaping the graph.
  • Room schema 17 with an auto-migration: places, rules, fire log, signals, recall chunks, backup runs.

Verification

:app:assembleDebug, :app:assembleRelease (minified) and the full test task pass. The two live protocol pieces from earlier rounds (PrivateBin, clearoutside) are untouched.


Generated by Claude Code

…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
codebooo force-pushed the claude/lifeos-production-plan-v3-dmynx3 branch from dcab0b9 to 09b0dd9 Compare July 30, 2026 00:15
@codebooo
codebooo merged commit 8271550 into main Jul 30, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants