autoRefreshEnabled = x.checked} disabled={isUpdating}> Auto-refresh ({AUTO_REFRESH_INTERVAL}s)

Last known bundle

{lastKnownBundle.number}
{#if !isConflict}
{lastKnownBundle?.hash?.slice(0, 7)}
{:else}
⚠️ conflict!
{/if}
{#if lastKnownBundle?.time} {formatDistanceToNow(lastKnownBundle.time, { addSuffix: true })}{/if}
{#if instancesInConflict.length > 0} ⚠️ Fork alert on {instancesInConflict.length} instances! {:else if !isConflict} ✅ Everything fine! {/if}

Next bundle

95 ? 'animate-pulse' : ''}>
{#if lastKnownBundle.number > 0}
{lastKnownBundle.number + 1}
{formatNumber(lastKnownBundle.mempool || 0)} / {formatNumber(BUNDLE_OPS)} ({lastKnownBundle.mempoolPercent}%)
{#if lastKnownBundle.etaNext}
ETA: {formatDistanceToNow(lastKnownBundle.etaNext)}
{/if}
{/if}
{#if lastKnownBundle.number > 0}

Statistics

Instances: {instances.filter(i => i._head && !i._conflict).length} latest / {instances.length} total
PLC Operations: {formatNumber((lastKnownBundle.number * BUNDLE_OPS) + (lastKnownBundle.mempool || 0))}
Bundles Size: {#if lastKnownBundle.totalSize}{filesize(lastKnownBundle.totalSize)}{/if}
Uncompressed: {#if lastKnownBundle.totalSizeUncompressed}{filesize(lastKnownBundle.totalSizeUncompressed)}{/if}
{/if}
{#each orderBy(instances, ...instanceOrderBy) as instance} {#if instance.status?.error} {:else} {/if} {/each}
endpoint ok? last mempool age head root version rsv? ws? uptime latency
{instance.url.replace("https://", "")} {#if instance._head && instance.status?.ok}{#if instance._conflict}⚠️{:else}✅{/if}{:else if instance.status?.ok && instance._oldRoot}🦇{:else if instance.status?.ok}🔄{:else if instance.status?.error}❌{:else}⌛{/if}Error: {instance.status?.error}{#if instance.status?.bundles?.last_bundle}{instance.status?.bundles?.last_bundle}{/if} {#if instance.status?.mempool && (instance._head || instance._oldRoot)}{formatNumber(instance.status?.mempool.count)}{:else if instance.status?.error}error{:else if instance.status}syncing{/if} {#if instance.status?.mempool} {#if instance._head || instance._oldRoot} {secondsAge(instance.status?.mempool.last_op_age_seconds || 0)} {:else} {bundleAge(instance)} {/if} {/if} {#if instance.status?.bundles?.head_hash}{instance.status?.bundles?.head_hash.slice(0, 7)}{/if} {#if instance.status?.bundles?.root_hash}{instance.status?.bundles?.root_hash.slice(0, 7)}{/if} {#if instance.status?.server?.version}{normalizedVersion(instance.status?.server?.version)}{/if} {#if instance.status?.server?.resolver_enabled}✔︎{:else if instance.status}-{/if} {#if instance.status?.server?.websocket_enabled}✔︎{:else if instance.status}-{/if}{#if instance.status?.server?.uptime_seconds}{formatUptime(instance.status?.server?.uptime_seconds)}{/if} {#if instance.status?.latency}{Math.round(instance.status?.latency)}ms{/if}
PLC Directory: {PLC_DIRECTORY} (origin)
First hash (root): {ROOT.slice(0)}
Last updated: {formatISO9075(lastUpdated)}

Source Code | ❤️ Made with love for #atproto community by @tree.fail using Vite & Svelte