{% extends "base.html" %} {% block title %}Run log · modelpass bench{% endblock %} {% block body %}

Run log

One line per completed run, newest first, from {{ path }}. This is the durable answer to how do I know it was the subscription? — the terminal event proves it to whoever is holding the stream at the time; this file is what remains afterwards.

The last three columns are what tickets 1.5, 1.7 and 1.12 made askable of a stored history: were the cache breakpoints I wrote actually honoured, was this run at the sampling its config says, and is this failure worth trying again. The retry verdict is computed from the row's own runtime and terminal status by the same function the library gives your loop — modelpass never retries for you.

A ledger, not a transcript: no prompts, no responses, no credential. The full argument, including the live falsification experiment behind it, is in docs/subscription-proof-2026-08-17.md — along with the check that does not depend on modelpass at all: your vendor's usage page should show no charge for any run recorded here as subscription.

{% if not enabled %}
The run log is switched off for this home. [settings] runLog = false in your connection file. Runs completed while it is off are not recorded and cannot be recovered later.
{% endif %} {% if not records %}

{% if exists %} The log file exists but has no readable records yet. {% else %} Nothing recorded yet. The file appears after the first completed run. {% endif %}

{% else %}
{% for r in records %} {% endfor %}
when (UTC) connection auth mode runtime model tokens status guards cache sampling retry
{{ r.timestamp }} {{ r.connection }} {% if r.failed_over_from %}
failed over from {{ r.failed_over_from }}
{% endif %}
{% if r.auth_mode == 'subscription' %} subscription {% else %} {{ r.auth_mode }} {% endif %} {{ r.runtime }} {{ r.model or '—' }} {{ '{:,}'.format(r.total_tokens or 0) }}
{{ '{:,}'.format(r.input_tokens or 0) }} in / {{ '{:,}'.format(r.output_tokens or 0) }} out
{{ r.status }} {% if r.timed_out %}
the bound this call was given ran out; the tokens beside it are what was spent before it did
{% endif %}
{% if r.guards_configured %} configured {% else %} none {% endif %} {% if r.cache_breakpoints_requested or r.cache_breakpoints_honoured %} {{ r.cache_breakpoints_honoured }}/{{ r.cache_breakpoints_requested }} {% if r.cache_breakpoints_dropped %}
breakpoints written that never reached the vendor — this run paid for a prefix it thought it had cached
{% else %}
breakpoints honoured
{% endif %} {% else %} {% endif %}
{% if r.sampling_requested or r.sampling_applied %} {% for k, v in r.sampling_applied.items() %}{{ k }}={{ v }}{% if not loop.last %}, {% endif %}{% endfor %} {% if r.sampling_moved %}
not as requested
asked: {% for k, v in r.sampling_requested.items() %}{{ k }}={{ v }}{% if not loop.last %}, {% endif %}{% endfor %}
{% endif %} {% for n in r.sampling_notes %}
{{ n }}
{% endfor %} {% else %} {% endif %}
{% if r.retry_verdict %} {{ r.retry_verdict }} {% if r.retry_note %}
{{ r.retry_note }}
{% endif %} {% else %} {% endif %}

Showing the most recent {{ records | length }} record(s). The file itself is append-only JSON Lines — readable with jq, a spreadsheet, or five lines of Python, which is what makes it evidence rather than decoration.

{% endif %} {% endblock %}