{% from "_macros.html" import th %} {#- five-state badge coloring: warn=needs action, green=healthy, info=paused, red=dead, gray=retired -#} {% set status_badge = {'login_required': 'refused', 'active': 'success', 'cooldown': 'running', 'banned': 'failed', 'retired': 'cancelled'} %} {% set kind_badge = {'login': 'success', 'probe': 'running', 'small_batch': 'running', 'lease_acquired': 'running', 'lease_released': 'no_op', 'lease_expired': 'refused', 'auth_failed': 'failed', 'suspect_yield': 'zero_yield', 'banned': 'failed', 'note': 'no_op'} %}

身份 identities {{ summary.total }} 活跃 active {{ summary.active }} 需登录 login_required {{ summary.login_required }} 租借中 leased {{ summary.leased }}

新建账号 New account

选源 + 起别名即登记身份,并自动分配独立出口(不同账号默认不同出口)。 Pick a source + an alias to register an identity; a dedicated egress is assigned automatically (distinct accounts get distinct egress by default).

需登录队列 Login-required queue

失败次数多者先处理,从未登录过的(新登记)排最前。 Most failures first; never-logged-in registrations at the head.

{{ th('源', 'Source') }}{{ th('账号', 'Account') }}{{ th('自动化', 'Automation') }}{{ th('最近登录', 'Last login') }}{{ th('失败次数', 'Failures') }} {% for i in queue %} {% else %} {% endfor %}
{{ i.source }} {{ i.account_alias }} {{ i.automation }} {{ i.last_login_at or '从未登录 never logged in' }} {{ i.failure_count }}
队列为空,没有需要登录的身份 Empty queue — no identities need a login.

身份矩阵 Identity matrix

按源分组:账号 / 五态状态 / 自动化程度 / 最近登录 / 最近成功 / 连续零产出 / 租借。 Grouped by source: account, five-state status, automation, last login/success, zero-run streak, lease.

{{ th('账号', 'Account') }}{{ th('状态', 'Status') }}{{ th('自动化', 'Automation') }}{{ th('最近登录', 'Last login') }}{{ th('最近成功', 'Last success') }}{{ th('连续零产出', 'Zero-run streak') }}{{ th('租借', 'Lease') }} {% for g in groups %} {% for i in g.identities %} {% endfor %} {% else %} {% endfor %}
{{ g.source }} {% if g.auth_profile %}认证源 authenticated{% endif %} {{ g.identities | length }} 身份 identities
{{ i.account_alias }} {{ i.status }} {% if i.status == 'login_required' %}
{% endif %}
{{ i.automation }} {{ i.last_login_at or '—' }} {{ i.last_success_at or '—' }} {% if i.consecutive_zero_runs %}{{ i.consecutive_zero_runs }}{% else %}0{% endif %} {% if i.leased %}租借中 leased {{ i.lease_owner }} {% elif i.lease_expired %}租约过期 lease expired {% else %}—{% endif %}
尚无身份 No identities registered yet.

事件流 Event stream 最近 20 条 latest 20

login / probe / small_batch / lease / 失效与封禁留痕,可按身份回放。 The auditable login/probe/lease trail, replayable per identity.

{{ th('时间', 'Time') }}{{ th('类型', 'Kind') }}{{ th('身份', 'Identity') }}{{ th('详情', 'Detail') }}{{ th('租借令牌', 'Lease token') }} {% for ev in events %} {% else %} {% endfor %}
{{ ev.created_at or '—' }} {{ ev.kind }} {{ ev.source }} / {{ ev.account_alias }} {{ ev.detail or '—' }} {{ (ev.lease_token or '')[:8] or '—' }}
尚无事件 No identity events yet.

登录站 Login stations

进行中/最近的登录站:状态(拉起中 / 等待操作 / 完成 / 失败 / 超时 / 回收)、期限与观察窗入口;超期未完成的站会被标记超时并可回收。 Live and recent login stations: status, deadline and the observation-view entry; an overdue station is marked timeout and can be reclaimed.

{{ th('站', 'Station') }}{{ th('身份', 'Identity') }}{{ th('状态', 'Status') }}{{ th('出口', 'Egress') }}{{ th('期限', 'Deadline') }}{{ th('操作', 'Actions') }} {% for t in stations %} {% include "_station_row.html" %} {% else %} {% endfor %}
暂无登录站 No login stations yet.