Skip to content

Commit 2d3e560

Browse files
committed
Add basic charts on the index page
1 parent 02e0514 commit 2d3e560

File tree

4 files changed

+419
-321
lines changed

4 files changed

+419
-321
lines changed

report/parse_logs.py

Lines changed: 45 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,9 @@ def _parse_steps_by_chat_pairs(self, agent_logs: list[LogPart]) -> list[dict]:
210210

211211
return steps
212212

213-
def _syntax_highlight_content(self, content: str, default_language: str = "") -> str:
213+
def _syntax_highlight_content(self,
214+
content: str,
215+
default_language: str = "") -> str:
214216
"""Syntax highlights content while preserving visible tags."""
215217

216218
# Escape everything first so raw logs are safe to render in HTML
@@ -240,45 +242,48 @@ def _normalize_lang(lang: str) -> str:
240242

241243
lang_key = _normalize_lang(default_language)
242244

243-
escaped = _sub(r'<conclusion>(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)</conclusion>',
244-
r'<span class="log-tag">&lt;conclusion&gt;</span>'
245-
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto reason-block">\1</pre>'
246-
r'<span class="log-tag">&lt;/conclusion&gt;</span>', escaped)
247-
escaped = _sub(r'&lt;reason&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/reason&gt;',
248-
r'<span class="log-tag">&lt;reason&gt;</span>'
249-
r'<div class="markdown-block whitespace-pre-wrap break-words overflow-x-auto">\1</div>'
250-
r'<span class="log-tag">&lt;/reason&gt;</span>', escaped)
251-
252-
escaped = _sub(r'&lt;bash&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/bash&gt;',
253-
r'<span class="log-tag">&lt;bash&gt;</span>'
254-
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
255-
r'<span class="log-tag">&lt;/bash&gt;</span>',
256-
escaped)
257-
escaped = _sub(r'&lt;build_script&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/build_script&gt;',
258-
r'<span class="log-tag">&lt;build_script&gt;</span>'
259-
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-cpp">\1</code></pre>'
260-
r'<span class="log-tag">&lt;/build_script&gt;</span>',
261-
escaped)
262-
escaped = _sub(r'&lt;fuzz target&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/fuzz target&gt;',
263-
rf'<span class="log-tag">&lt;fuzz target&gt;</span>'
264-
rf'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-{lang_key}">\1</code></pre>'
265-
rf'<span class="log-tag">&lt;/fuzz target&gt;</span>',
266-
escaped)
267-
268-
escaped = _sub(r'&lt;stdout&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/stdout&gt;',
269-
r'<span class="log-tag">&lt;stdout&gt;</span>'
270-
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
271-
r'<span class="log-tag">&lt;/stdout&gt;</span>',
272-
escaped)
273-
escaped = _sub(r'&lt;stderr&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/stderr&gt;',
274-
r'<span class="log-tag">&lt;stderr&gt;</span>'
275-
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
276-
r'<span class="log-tag">&lt;/stderr&gt;</span>',
277-
escaped)
278-
escaped = _sub(r'&lt;return_code&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/return_code&gt;',
279-
r'<span class="log-tag">&lt;return_code&gt;</span>'
280-
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code>\1</code></pre>'
281-
r'<span class="log-tag">&lt;/return_code&gt;</span>', escaped)
245+
escaped = _sub(
246+
r'&lt;conclusion&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/conclusion&gt;',
247+
r'<span class="log-tag">&lt;conclusion&gt;</span>'
248+
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto reason-block">\1</pre>'
249+
r'<span class="log-tag">&lt;/conclusion&gt;</span>', escaped)
250+
escaped = _sub(
251+
r'&lt;reason&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/reason&gt;',
252+
r'<span class="log-tag">&lt;reason&gt;</span>'
253+
r'<div class="markdown-block whitespace-pre-wrap break-words overflow-x-auto">\1</div>'
254+
r'<span class="log-tag">&lt;/reason&gt;</span>', escaped)
255+
256+
escaped = _sub(
257+
r'&lt;bash&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/bash&gt;',
258+
r'<span class="log-tag">&lt;bash&gt;</span>'
259+
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
260+
r'<span class="log-tag">&lt;/bash&gt;</span>', escaped)
261+
escaped = _sub(
262+
r'&lt;build_script&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/build_script&gt;',
263+
r'<span class="log-tag">&lt;build_script&gt;</span>'
264+
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-cpp">\1</code></pre>'
265+
r'<span class="log-tag">&lt;/build_script&gt;</span>', escaped)
266+
escaped = _sub(
267+
r'&lt;fuzz target&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/fuzz target&gt;',
268+
rf'<span class="log-tag">&lt;fuzz target&gt;</span>'
269+
rf'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-{lang_key}">\1</code></pre>'
270+
rf'<span class="log-tag">&lt;/fuzz target&gt;</span>', escaped)
271+
272+
escaped = _sub(
273+
r'&lt;stdout&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/stdout&gt;',
274+
r'<span class="log-tag">&lt;stdout&gt;</span>'
275+
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
276+
r'<span class="log-tag">&lt;/stdout&gt;</span>', escaped)
277+
escaped = _sub(
278+
r'&lt;stderr&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/stderr&gt;',
279+
r'<span class="log-tag">&lt;stderr&gt;</span>'
280+
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code class="language-bash">\1</code></pre>'
281+
r'<span class="log-tag">&lt;/stderr&gt;</span>', escaped)
282+
escaped = _sub(
283+
r'&lt;return_code&gt;(\s*[^\s].*?[^\s]\s*|(?:\s*[^\s].*?)?)&lt;/return_code&gt;',
284+
r'<span class="log-tag">&lt;return_code&gt;</span>'
285+
r'<pre class="whitespace-pre-wrap break-words overflow-x-auto"><code>\1</code></pre>'
286+
r'<span class="log-tag">&lt;/return_code&gt;</span>', escaped)
282287

283288
return escaped
284289

report/templates/index/index.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,10 @@
506506
<div x-show="chartsOpen" class="p-4 border-t">
507507
<div class="chart-row">
508508
<div id="coverage-chart" class="chart-box"></div>
509-
<div id="bugs-chart" class="chart-box"></div>
509+
<div id="language-coverage-chart" class="chart-box"></div>
510+
</div>
511+
<div class="chart-row">
512+
<div id="crash-reasons-chart" class="chart-box"></div>
510513
</div>
511514
</div>
512515
</div>

0 commit comments

Comments
 (0)