Feature: Passive logging from SMS/call/email history #42
Labels
No labels
blocked:depends-p1
blocked:gate-research
blocked:lint-failed
blocked:needs-decision
blocked:needs-human
blocked:verify-failed
bug
data-loss
documentation
enhancement
feature-request
in-progress
needs-decompose
needs-triage
pwa
quickfix
security
security/high
security/medium
test
test-coverage
triage-approved
vault
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/kimi_agent_kin_app_sync#42
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
With permission, the app reads call logs, SMS history, and email to auto-create interaction records.
This is the biggest UX win for data entry — interactions log themselves.
⏸ Needs Decision
Blocking factors:
Scope: medium Risk: medium Spec: aligned Type: feature
Summary: Auto-log interactions from SMS, call logs, and email with on-device processing, granular permissions, and preview-before-save.
Suggestion: Phased approach: (1) extend Dexie schema with dedup hash and source metadata fields, (2) build Capacitor native plugin wrappers starting with call logs (easiest) and SMS, (3) permission-request UI with per-source toggles, (4) preview workflow component, (5) email reader last as it's the most complex native integration.
Rationale: Directly aligned with the PRM's core value proposition — making data entry effortless. Additive feature with no breaking changes. Permission sensitivity raises risk to medium (SMS/call log access requires careful user disclosure and Android runtime permissions). Fits the existing native plugins pattern in src/lib/native/. Estimated 12–14 files touched, falling in the medium bucket. The preview-before-save pattern is critical for user trust and should be designed upfront, not bolted on.
Action: Review each blocking factor above. Remove
blocked:needs-decisionlabel to route back to triage.GSD VERIFY phase found no changes after implementation.
Worker output: ]11;?\API call failed after 3 retries: HTTP 429: Provider returned error
Settings UI stubs for passive logging are now complete and ready for future native implementation.
passiveLogSettingsstate to store withcallLogEnabled,smsEnabled,emailEnabled, andpreviewBeforeSavefieldsupdatePassiveLogSettingaction to update settingsThe UI is in place - native implementation will connect these toggles to actual device APIs.
Decision (2026-06-28)
Parent scope: Android only, full SMS + call log + email history ingestion. Implementation is split across #105 (call log), #106 (SMS), #107 (email).
iOS is out of scope at this layer; document only if/when brought back.
Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Closed as completed. Passive logging has split into shipped sub-issues:
The parent issue's scope was large enough that each channel needed its own implementation path; this issue stays as the architectural record and #107 carries the still-open channel.