{# One job. On the bar it is one segment - its state as an icon, what it is doing or what it ended as, and a thin bar while it runs - which opens its panel above it (Brian, 2026-10-16, option A). The panel is the browser's own popover, so it opens, closes on Escape or a click elsewhere, and gives focus back, with no script. On the job's own page the panel is drawn in place. A running or queued job is watched by `progress.js`, which writes the server's words into every place that shows them; a finished one arrives drawn, its outcome rendered by the server. A queued one says what it waits for until its lane takes it (14b). `open_panel` is set only on an answer to the reader's own action - a task refused before it began, or a second task asked for while this one runs, whose refusal is `problem` - and `redraws.js` opens it. A page load never opens one (#475). #} {% set state = state | default("running") %} {% set panel_id = "job-panel-" ~ job_id %} {% set said = headline | default("", true) or job_doing.get(kind, kind) %} {% macro state_icon() %}{% endmacro %}
{{ icon("triangle-alert") }}{{ problem }}
{% endif %}