Skip to content

Daily life and review

Documented state: 1.0.0-alpha.19 on main; this is the canonical Alpha 19 baseline. This page describes daily input, local reminders, person profiles and the journal review.

Today: a voluntary check-in, not a mandatory list

The Today page is the primary input surface. It is designed for a short, honest entry without forcing completeness.

  • Sections start collapsed by default and remember their state.
  • Fields remain voluntary; unanswered values are unknown and are not interpreted as zero or negative.
  • Changes are saved automatically through a debounced, serialized queue.
  • Entries can be recorded for today and up to three calendar days in the past.
  • Sections can be hidden on selected weekdays without changing their history.

“Lightweight” does not mean offering only a toy-sized minimum. The general-audience variant starts with six meaningful sections and no more than four normal fields per section: well-being, sleep, everyday life & structure, relationships, body & nourishment, and self-care & reflection. Every section may stay closed and every field may be skipped. The Recovery variant starts separately with seven sections and 25 active fields: well-being, sleep, everyday life & structure, connection & support, body & nourishment, regulation & self-care, and Recovery & stability. Each section likewise contains no more than four fields. Daily Recovery fields describe stability, protective factors and used steps; abstinence and relapse remain explicit events and counters rather than a daily yes/no field.

flowchart LR
    U[Input in Today] --> D[Debounced change]
    D --> Q[Serialized save queue]
    Q --> E[Daily entry]
    E --> J[Journal]
    E --> A[Analytics]

A save error leaves the current input visible. The UI shows the save state so that a technical failure does not look like a lost entry.

Configurable sections and fields

Edit mode changes the structure of the check-in, not the content of a single day. Users can:

  • add sections and fields,
  • adjust names, options and default values,
  • hide fields or sections,
  • configure goal direction and analytics behavior,
  • assign sections to a Life Wheel axis,
  • choose whether a section opens by default.

Changes that alter the historical meaning of a field create a safe new field version. Older values remain analyzable through the shared logicalId.

A new general-audience installation stores only this current initial configuration. Old v5 fields are not pre-created as hidden content. If such definitions and values are already present in an existing database or an imported historical backup, they are retained and remain historically resolvable. The same applies to the new Recovery start: a new installation creates only the 25 current fields, while historical definitions already present are not deleted.

Synthetic sample data

An empty tracking database can load two fully synthetic periods: 90 days for a normal product walkthrough and 1,095 days for long-term patterns and performance. General Audience receives only neutral everyday-life data. The Recovery variant instead receives a Recovery history with urges, triggers, explicit urge-free check-ins, relapses and their atomically linked counter resets for the active change area. The multi-year history remains uneven and shows longer stable intervals, not an artificially perfect success curve. All demo records carry source: "demo" and can be removed without touching real entries or real Companion memories.

Repeatable events

Things that can happen several times on one day are stored as events instead of being forced into a single daily field.

Event Captured context
social contact person or group, connection, optional note
exercise activity, duration, exertion, feeling afterward, optional note
self-care activity, duration, relaxation, clarity, feeling afterward, optional note
meal meal or dish, category, amount, balance, feeling afterward, optional note
trigger reusable trigger, change area, optional note
urge intensity, change area and, at higher intensity, additional context

Autocomplete uses stable catalog objects. This keeps people, groups, sports, meals and triggers historically attributable after later renaming.

Person profiles

In addition to the visible name, a person can have local context data:

  • relationship to the person,
  • an optional custom label,
  • an optional person group,
  • an optional birthday,
  • an optional short context note.

This information stays local. It helps the journal provide context and may be included in the Companion's explicitly approved read-only excerpt.

Person groups also have stable IDs. Connection milestones therefore keep their historical meaning even when a group is renamed later.

Local reminders

Steady can configure voluntary local check-in reminders:

  • in the morning, evening or at a custom time,
  • on selected weekdays,
  • with Android permission checks,
  • with neutral lock-screen text that contains no tracking or recovery details.

The reminder is a local device feature and uses Android's normal inexact scheduling without special exact-alarm access. Android may batch delivery within a system-selected window to protect battery life. The reminder creates no tracking value, and a skipped check-in is not stored as a failure.

Journal: chronological context

The journal answers “What happened when?” It combines:

  • daily field values,
  • reflection and free-text fields,
  • social contacts,
  • exercise, self-care and meals,
  • triggers, urge events and recovery events.

The calendar and day details use the same domain sections as Today. Open and closed sections and the calendar state are remembered locally.

Journal search can find stored days by date, person, activity or text term. It searches the existing local history; there is no external search index.

Personal outliers

For suitable numerical metrics, the journal can mark unusually positive or negative days. A marker appears only when:

  • enough comparison data is available,
  • the metric's preferred goal direction is known,
  • the current value is unusual compared with the person's own history.

An outlier is a descriptive classification of the user's own history, not a diagnosis or a comparison with other people.

Data and privacy boundaries

  • Today and Journal use the same local data source.
  • Journal views do not create copies of tracking data.
  • Unanswered fields remain unknown.
  • Recovery program-context Inventory entries are intentionally excluded from the Journal analytics model.
  • The Companion has no write access to check-ins or events.

Relevant implementation