{% extends "base.html" %} {% block title %}CareAgents settings{% endblock %} {% block bodyclass %}page-home{% endblock %} {% block content %}

Settings

{{ me.email }}

Back to your hub

Passkeys

{% if passkeys %} {% else %}

No passkey yet. Add one to sign in with your face or fingerprint.

{% endif %} Add a passkey
{# One personal invite link per account (careagents/invites.py). The link is the whole of what is shared; invite.js copies or shares it. #} {% if invite %}

Invite friends and family

Your link {% if invite.revoked %}turned off{% else %}{{ invite.used }} of {{ invite.cap }} used{% endif %}
{% if not invite.revoked %} {{ invite.url }} {% endif %}
{% if invite.revoked %}

This link no longer lets anyone join.

{% elif invite.used >= invite.cap %}

All {{ invite.cap }} places on your link are used.

{% else %}

Up to {{ invite.cap }} people can join with it. They start on made-up records.

{% endif %}
{% elif link_session %} {# Opened by the confirm link: the link is made only after a full sign-in (#928 F6), so say how to get it rather than leave the section out. #}

Invite friends and family

You opened CareAgents from the link in our email. Before we make your invite link, we email you a code to check it's you. Then we bring you back here.

Email me a code for my invite link
{% endif %}

Where you can reach your assistant

Webalways on
{# Not serviced in the beta (#536, D6): no webhook, no poller. No id, so home.js has nothing to bind. The tile is a label, not a control. #}
Telegramcoming soon
{% if imessage_connected %} {# One tile per connected phone, masked: enough for the owner to recognise, not the whole handle. Disconnect removes that one. #} {% for phone in imessage_connected %}
iMessage Connected: {{ phone.label }}
{% endfor %} {% elif imessage_handle %}
iMessage connect →
{% else %}
iMessagecoming soon
{% endif %} {# Not an app store app: the web app added to the home screen. #}
Phone app add to your home screen

iPhone: open this page in Safari, tap the Share button, then tap "Add to Home Screen".

Android: open this page in Chrome, tap the menu (three dots), then tap "Add to Home screen".

Apps you have shared records with

{% if grants %}
{% for g in grants %}
{#- Named by where its codes go, as on the consent page: the name is the app's own choice. Labels are escaped; after each dot. -#}
{% if g.redirect_host %}{% for label in g.redirect_host.split('.') %}{{ label }}{% if not loop.last %}.{% endif %}{% endfor %}{% else %}{{ g.client_name }}{% endif %}
{% if g.redirect_host %}
calls itself “{{ g.client_name }}”
{% endif %}
reads {{ g.tenant_label or 'one connection' }} through HealthClaw
{{ g.status }} {% if g.status != 'revoked' %} {% endif %}
{% endfor %}
{% else %}

You haven't shared your records with any app.

{% endif %}
{# Tone and routines, one form per assistant (one assistant per person spec, section 7). "Focuses on", not "Watching": nothing runs unprompted (owner decision D3). assistant_settings.js posts each form. #} {% if assistants %}
{% set several = assistants | length > 1 %} {# Plural over several, as for someone you care for (FHI-45). #}

{{ "Your assistants" if several else "Your assistant" }}

{% for a in assistants %}
{{ a.name }}{% if a.for_line %} {# hub.for_line, the hub's rule: never "your other", and "For you" once someone you care for is here. #} {{ a.for_line }}{% endif %}
{# An account from before keeps several assistants (owner decision D5): each says which records it reads, so they are told apart. #} {% if several and a.reads %}
Reads {{ "sample records" if a.reads == "Sample records" else a.reads }}
{% endif %}
Tone {% for key, p in tones %} {% endfor %}
Focuses on {% for r in routine_catalog %} {% endfor %}

These change what {{ a.name }} pays attention to, not what it can read.

{% if a.legacy_extra %} {% endif %}
{% if a.legacy_extra %} {% endif %}
{% endfor %}
{% endif %}

Sign out or leave

Deleting your account deletes the records behind every connection first, then your email, passkey and consents. We keep a log of who looked at your records, with no health details in it.

{% set delete_for = "account" %} {% include "_delete_modal.html" %} {# The hub's script: its dialog, announce and delete primitives are shared, and every handler is guarded by the element it binds. #} {% endblock %}