Skip to content

feat(mobile): consumer Advanced, Today, Inbox, and Brain surfaces#86

Merged
meidad merged 3 commits into
mainfrom
feat/mobile-consumer-surfaces
Jun 17, 2026
Merged

feat(mobile): consumer Advanced, Today, Inbox, and Brain surfaces#86
meidad merged 3 commits into
mainfrom
feat/mobile-consumer-surfaces

Conversation

@meidad

@meidad meidad commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

Wires the iOS app's drawer destinations to real daemon data via MobileApi, with consumer-curated view models and per-user controls.

View models (pure, unit-tested, dependency-free)

  • Loops (cron/loop-view.ts + cron/loop-overrides.ts): surface managed background loops (auto-dream, style-analyze) with friendly labels; per-user opt-out is honored at fire time by a gate in daemon/cron-engine.ts.
  • Tasks (cron/task-view.ts + cron/schedule-format.ts): curate user-scheduled tasks with prettified every/cron/at schedules.
  • Skills (skills/skill-view.ts): filter consumer-facing skills, hide dev/internal/channel tooling, resolve human-readable names.
  • Plugins (plugins/builtin-tools.ts): read-only built-in tool listing.

Daemon data composers

  • daemon/inbox.ts: pending drafts to approve + CATE agent requests.
  • daemon/today.ts: agenda + commitments + tasks, gated on the daily briefing.
  • memory/brain.ts: knowledge-graph overview for the Brain page.

MobileApi

GetInbox / GetToday / GetBrain, ListTasks / UpdateTask / DeleteTask, ListLoops / SetLoopEnabled, ListSkills / ToggleSkill, ListPlugins, and ApproveDraftWithEdit (captures user edits as a learning signal). Agent avatar added to the identity RPCs. sdk/tools.ts tags agent-scheduled tasks source:"agent".

Evals

eval/feature-manifest.ts declares the new surfaces (managed-loop-override, scheduled-tasks, brain/inbox/today overviews) and corrects the draft-edit-learning effect SQL to category='fact' AND key LIKE 'correction_%'.

Verification

  • pnpm typecheck clean
  • pnpm test: 527 passed (59 files), including new colocated tests for loop-view / task-view / skill-view

🤖 Generated with Claude Code

meidad and others added 3 commits June 12, 2026 20:24
Wire the iOS app's drawer destinations to real daemon data via MobileApi,
with consumer-curated view models and per-user controls.

View models (pure, unit-tested, dependency-free):
- cron/loop-view.ts: surface managed background loops (auto-dream, style-analyze)
  with friendly labels; cron/loop-overrides.ts adds per-user opt-out, honored at
  fire time by a gate in daemon/cron-engine.ts.
- cron/task-view.ts + cron/schedule-format.ts: curate user-scheduled tasks with
  prettified every/cron/at schedules.
- skills/skill-view.ts: filter consumer-facing skills, hide dev/internal/channel
  tooling, resolve human-readable names.
- plugins/builtin-tools.ts: read-only built-in tool listing for the Plugins page.

Daemon data composers:
- daemon/inbox.ts: pending drafts to approve + CATE agent requests.
- daemon/today.ts: agenda + commitments + tasks, gated on the daily briefing.
- memory/brain.ts: knowledge-graph overview for the Brain page.

MobileApi (proto + handlers): GetInbox/GetToday/GetBrain, ListTasks/UpdateTask/
DeleteTask, ListLoops/SetLoopEnabled, ListSkills/ToggleSkill, ListPlugins,
ApproveDraftWithEdit (captures edits as a learning signal), and agent avatar in
the identity RPCs. sdk/tools.ts tags agent-scheduled tasks source:"agent".

Evals: eval/feature-manifest.ts declares the new surfaces (managed-loop-override,
scheduled-tasks, brain/inbox/today overviews) and corrects the draft-edit-learning
effect SQL to category='fact' key LIKE 'correction_%'.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bring the branch up to date with main (Studio Phase 1a #87 + SDK cleanup) so
PR #86 merges cleanly. Both branches extended the MobileApi, so the conflicts
were unions plus one semantic merge:

- proto/nomos.proto: union of the Tasks/Brain/Inbox/Today RPCs (#86) and the
  Studio RPCs (#87).
- src/daemon/mobile-api.ts: union of imports, the handler-registration map, and
  the handler bodies. handleGetSettings keeps #86's config-driven implementation
  and grafts in the Studio `studio_cloud_ai` permission row (handleUpdatePermission
  already routes it to setCloudAIEnabled).
- Regenerated src/gen from the merged proto.

typecheck + lint clean; 644 tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@meidad meidad merged commit a26c589 into main Jun 17, 2026
6 checks 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.

1 participant