ELEMENTAL / ENGINEERING NOTES
Native records.
An agent that can work with them.
Records with sources. Actions with boundaries. Conversations you can return to. Built into one native system.
- 01You ask a question
- 02The model chooses tools
- 03Read or governed write
- 04Check results and sources
One set of records for the app and its tools
SwiftUI handles entry, review, browsing and conversation. ElementalCore holds platform-neutral rules; one GRDB/SQLite database in the App Group stores records, source relationships and conversations, while original files live in an app-private file store referenced by stable identifiers. There is no Elemental account, developer server or analytics SDK. The interface and the optional Metis assistant use the same repositories and formal commands, so a plan never becomes actual intake, a skip writes no intake fact and deducts no inventory, and report comparisons keep the values as reported; a comparison describes the records and does not explain why a value changed. Apple Health is a separate read-only projection; missing readings are not treated as zero, clearing its cache does not revoke system permission, and nothing is written back.
Conversations and current work checkpoints stay in that local system, and a saved conversation can be reopened when there is more to add; longer model context may be compacted, a run stops when the app moves to the background, and available references are valid for the current turn. Export produces a portable package of supported records and available original files, with missing files listed individually; full conversations, Apple Health caches and credentials are excluded, and the package is not a restorable database backup. Elemental operates no cloud sync service.
Product-label and clinical-report recognition run on device: Vision OCR and rule-based parsing, with an optional Foundation Models enhancement on supported devices. Originals are archived first, and the review screen marks low-confidence rows, undisclosed amounts, unsupported units and invalid values; an undisclosed amount is never stored as zero. Only Metis sends records or attachments to a provider, and only after separate send consent: chat photos and PDF pages are prepared as masked images (masking can miss information), TXT and Markdown are redacted, CSV and JSON are rejected, and keeping originals on device is optional and off by default; the original itself is never sent. Deleting local data cannot erase copies a provider has already received.
Let the model choose steps; check the writes
A user-configured model can call tools over several rounds, read their results and choose what to do next. Read tools open records, clinical results and report comparisons; local time and calculation tools also serve everyday questions. Require approval pauses for every tool call, reads included; Full access runs supported tools without asking. Sending consent stays a separate decision, and a rejected call cannot be worked around through another tool. Optional web search, for a DeepSeek model service, is off by default, calls one fixed search endpoint, and treats the returned pages as untrusted public data; search queries may include conversation content.
1.7 extends writes to correction and control: Metis can edit product details, personal context, body metrics, intake, clinical results and report details; permanently delete five kinds of record — a personal context, a body metric, an intake row, a clinical result or a whole report; archive or restore a product; and set a future schedule (daily, selected weekdays, every N days, as needed) that only affects dates after the change. A delete approval shows the record and states that the deletion is permanent, with no recycle bin; archiving keeps the product's history. Each write is a typed command: before commit the app rechecks the current permission and concurrency token, then commits the facts and receipt in one transaction. Retrying the same operation and content returns the existing receipt instead of writing twice; a stale edit token is rejected; and a replay cannot restore a deleted record.
Metis memories are a visible, editable part of the record set, not a hidden profile. They appear in Settings, are included in the export, and are selected for a question by a deterministic, bounded rule. Deleting one stops it being injected into later questions; it does not delete the records the memory referred to.
Verification
A recorded dose affects inventory, the record history and later reports, so the tests target those connections: the same data read through different features, and the same write repeated or interrupted.
- Core domain rules — 492 tests: record, inventory and report rules, the agent loop, safety boundaries and write contracts.
- App unit and integration — 2,110 tests: GRDB persistence, services, agent tools and approvals, attachments, export, notifications, widgets, read-only HealthKit and OCR review.
- UI automation — 150 tests: Today, Library, Metis, settings and accessibility flows.
All 2,752 tests pass.
Elemental 1.7 is available on the App Store: core recording works without an account, and optional Metis uses your own compatible provider, API key and model.