CASE 01 / LOCAL-FIRST AGENT
息壤 · 2026 · ACTIVE
SOLUM
A personal agent that can be proactive without taking control away from its owner.
一个离线优先、可审计、跨桌面与移动端运行的个人智能助理。
Core, CLI, desktop app, sync, notification access, health and alarm boundaries.
Version read from the local workspace manifest.
Personal schedules, memory and audit data stay in the user-owned SQLite store.
A confirmation token is consumed once and cannot silently authorize later actions.
01 / Product evidence
See the system at work.
Captured from the working product and its repository-backed preview states.

Upcoming events and proactive suggestions stay visible beside the conversation, with adoption left to the owner.

Captured notifications enter a review queue before they can become durable schedules.

Every transformation remains inspectable as an input, event, reminder, action or suggestion.
02 / Problem and response
Role
Product direction · system architecture · interaction · full-stack implementation
A useful personal agent needs context and initiative, yet the same capabilities can make it opaque, invasive or unsafe.
Keep deterministic scheduling, memory, guards and notifications local; make cloud inference optional; require one-time grants for high-risk actions.
03 / System trace
How the system moves.
- 01
Capture
Natural language, system shares, screenshots and connectors enter a reviewable intake path.
- 02
Local core
Deterministic parsing, injected time, scheduling, routines and memory are resolved on device.
- 03
Guard
Consequences are previewed before high-impact tools can receive a single-use grant.
- 04
Optional cloud
The current message and an intentionally bounded context can use remote inference with offline fallback.
- 05
Act + audit
Reminders and approved actions execute, then append a durable, inspectable record.
04 / Engineering decisions
The important work happened at the boundaries.
Inject time instead of reading it
Core flows accept `now` from the caller, making reminders and proactive behavior deterministic to replay and test.
Separate useful memory from unrestricted history
Semantic facts, behavior and derived reminders have explicit ledgers and deletion paths instead of one opaque transcript.
Fail closed for action, fail soft for conversation
A cloud outage may reduce answer quality, but it cannot bypass a guard or stop local reminders from firing.
05 / Proof, not promise
These statements come from the project's local repository, manifests and validation notes—not invented portfolio metrics.
CLI flows can inject a fixed clock to replay scheduling, reminder and review behavior.
VERIFIED TRACELocal ingest and reminder flows remain available when the optional inference service is absent.
VERIFIED TRACEUnconfirmed destructive tools are rejected; confirmed grants are single-use and append to the audit ledger.
VERIFIED TRACE06 / Build record
Local-first Rust core, desktop shell and deterministic action guard established.
Account-backed optional inference and encrypted device sync boundaries added.
Cross-product data connectors and notification intelligence continue to evolve.