APPLICATION-USER AGGREGATION
Connect each character explicitly. One primary character is the only signed-out login; linked characters are data-only until you switch the primary while authenticated.
{#if data.mode !== 'demo' && data.identityEnabled} {/if} {#if data.error}{data.error}
{/if} {#if data.userId && data.convexUrl && data.mode !== 'demo'}Assets: {character.assets.status} · synchronized: {character.assets.syncedAt ? new Date(character.assets.syncedAt).toISOString() : 'Not yet'}
Granted scopes: {character.scopes.join(', ') || 'None'}
Datasets: {character.datasets.map((dataset) => `${datasetLabel(dataset.dataset)}=${dataset.status}`).join(' · ')}
{/if} {#if character.assets.error}{character.assets.error}
{/if}Inventory locations: {data.locationEnabled ? locationState(character) : 'unavailable'}{#if data.locationEnabled && locationState(character) === 'missing'} · Structure consent is required for private location evidence.{/if}
{#if data.mode !== 'demo' && data.identityEnabled}This immediately blocks local datasets, discards the stored credential, and cancels pending local work. Reconnecting requires EVE authorization again.
No connected characters. Your first verified EVE login creates the primary application character.