Skip to content

Contacts app, contacts permission, chat redesign and voice messages - #140

Merged
fnyaker merged 2 commits into
mainfrom
claude/project-thread-0fqjv4
Oct 18, 2026
Merged

fnyaker merged 2 commits into
mainfrom
claude/project-thread-0fqjv4

Conversation

@fnyaker

@fnyaker fnyaker commented Oct 18, 2026

Copy link
Copy Markdown
Owner

Requested by Maître · project thread

Before: chat kept its own flat contact list, the console had no address book, nodes outside the list had no way to be saved, chat was a single layout, and there were no voice messages.

After: a built-in Contacts app (several books, vCard import/export, sharing by invitation a human accepts) sits behind a contacts permission with contacts.read and contacts.write children. Nothing is granted by default, Android-style: chat shows a card asking to allow, read-only, or not now. Chat finds people through the books and the directory, saves a node as a contact, is redrawn with automatic desktop and mobile layouts, and sends voice messages (voice-<ms>.webm|ogg, 8 MiB / 10 min). The node card has an "Add to contacts" button. Every new string goes through the i18n catalogue in all seven languages.

How: src/apps/contacts*.py (state, sync, bridge, link), src/webassets/contacts.py and chat.py, permission tree in app_perms.py, NEEDS_GRANT and fleet _NEEDS_APPS extended. Docs: new Docs/Apps/contacts, plus chat, permissions, app API, i18n, console and architecture docs. Tests: 74 backend tests plus console, integration, voice, i18n coverage and hostile-input cases. Version 0.4.119. Unit suite 5221 passed, integration 155 passed.


Generated by Claude Code

…ssages

A real address-book app (several books, vCard import/export, sharing by
invitation) behind a contacts / contacts.read / contacts.write permission that
nothing grants by default. Chat finds people through it, can save a node as a
contact, is redrawn for desktop and mobile, and sends voice messages.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CMnAL75TgVVFU8VZof9ve3
…d contacts

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CMnAL75TgVVFU8VZof9ve3
@fnyaker fnyaker self-assigned this Oct 18, 2026
@fnyaker
fnyaker merged commit 75d7aae into main Oct 18, 2026
13 checks passed
@fnyaker
fnyaker deleted the claude/project-thread-0fqjv4 branch October 26, 2026 20:26
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.

2 participants