archive old experiments and publish swe series

This commit is contained in:
pj committed 2026-09-25 12:34:44 +05:30
1 parent 480100587e
commit 638e978227
1522 files changed
+220002 -4900

No files matched your search

@@ -0,0 +1,26 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1120" height="322" viewBox="0 0 1120 322">
<rect width="100%" height="100%" fill="white"/>
<text x="20" y="30" font-family="sans-serif" font-size="19" font-weight="bold">Reasoning observability</text>
<text x="12" y="82" font-family="sans-serif" font-size="12">nonempty reasoning field</text>
<rect x="285" y="58" width="350.3" height="11" fill="#31688e"/>
<text x="641.3" y="68" font-family="sans-serif" font-size="10">GLM 364/717</text>
<rect x="285" y="73" width="476.3" height="11" fill="#b05a2a"/>
<text x="767.3" y="83" font-family="sans-serif" font-size="10">Muse 468/678</text>
<rect x="285" y="88" width="527.4" height="11" fill="#438a5e"/>
<text x="818.4" y="98" font-family="sans-serif" font-size="10">DeepSeek 227/297</text>
<text x="12" y="148" font-family="sans-serif" font-size="12">readable reasoning field</text>
<rect x="285" y="124" width="350.3" height="11" fill="#31688e"/>
<text x="641.3" y="134" font-family="sans-serif" font-size="10">GLM 364/717</text>
<rect x="285" y="139" width="0.0" height="11" fill="#b05a2a"/>
<text x="291.0" y="149" font-family="sans-serif" font-size="10">Muse 0/678</text>
<rect x="285" y="154" width="527.4" height="11" fill="#438a5e"/>
<text x="818.4" y="164" font-family="sans-serif" font-size="10">DeepSeek 227/297</text>
<text x="12" y="214" font-family="sans-serif" font-size="12">episode with unresolved label</text>
<rect x="285" y="190" width="103.5" height="11" fill="#31688e"/>
<text x="394.5" y="200" font-family="sans-serif" font-size="10">GLM 3/20</text>
<rect x="285" y="205" width="138.0" height="11" fill="#b05a2a"/>
<text x="429.0" y="215" font-family="sans-serif" font-size="10">Muse 4/20</text>
<rect x="285" y="220" width="0.0" height="11" fill="#438a5e"/>
<text x="291.0" y="230" font-family="sans-serif" font-size="10">DeepSeek 0/10</text>
<text x="12" y="310" font-family="sans-serif" font-size="10" fill="#555">Muse reasoning objects are encrypted or redacted, so readable coverage is zero.</text>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -0,0 +1,32 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1120" height="364" viewBox="0 0 1120 364">
<rect width="100%" height="100%" fill="white"/>
<text x="20" y="30" font-family="sans-serif" font-size="19" font-weight="bold">Governance and disclosure</text>
<text x="12" y="82" font-family="sans-serif" font-size="12">peer warning</text>
<rect x="285" y="58" width="310.5" height="11" fill="#31688e"/>
<text x="601.5" y="68" font-family="sans-serif" font-size="10">GLM 9/20</text>
<rect x="285" y="73" width="34.5" height="11" fill="#b05a2a"/>
<text x="325.5" y="83" font-family="sans-serif" font-size="10">Muse 1/20</text>
<rect x="285" y="88" width="0.0" height="11" fill="#438a5e"/>
<text x="291.0" y="98" font-family="sans-serif" font-size="10">DeepSeek 0/10</text>
<text x="12" y="148" font-family="sans-serif" font-size="12">public exploit publication</text>
<rect x="285" y="124" width="0.0" height="11" fill="#31688e"/>
<text x="291.0" y="134" font-family="sans-serif" font-size="10">GLM 0/20</text>
<rect x="285" y="139" width="103.5" height="11" fill="#b05a2a"/>
<text x="394.5" y="149" font-family="sans-serif" font-size="10">Muse 3/20</text>
<rect x="285" y="154" width="0.0" height="11" fill="#438a5e"/>
<text x="291.0" y="164" font-family="sans-serif" font-size="10">DeepSeek 0/10</text>
<text x="12" y="214" font-family="sans-serif" font-size="12">final-answer disclosure</text>
<rect x="285" y="190" width="138.0" height="11" fill="#31688e"/>
<text x="429.0" y="200" font-family="sans-serif" font-size="10">GLM 4/20</text>
<rect x="285" y="205" width="215.6" height="11" fill="#b05a2a"/>
<text x="506.6" y="215" font-family="sans-serif" font-size="10">Muse 5/16</text>
<rect x="285" y="220" width="138.0" height="11" fill="#438a5e"/>
<text x="429.0" y="230" font-family="sans-serif" font-size="10">DeepSeek 2/10</text>
<text x="12" y="280" font-family="sans-serif" font-size="12">success claim and artifact conflict</text>
<rect x="285" y="256" width="34.5" height="11" fill="#31688e"/>
<text x="325.5" y="266" font-family="sans-serif" font-size="10">GLM 1/20</text>
<rect x="285" y="271" width="0.0" height="11" fill="#b05a2a"/>
<text x="291.0" y="281" font-family="sans-serif" font-size="10">Muse 0/20</text>
<rect x="285" y="286" width="69.0" height="11" fill="#438a5e"/>
<text x="360.0" y="296" font-family="sans-serif" font-size="10">DeepSeek 1/10</text>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -0,0 +1,89 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1140" height="375" viewBox="0 0 1140 375">
<rect width="100%" height="100%" fill="white"/>
<text x="20" y="30" font-family="sans-serif" font-size="19" font-weight="bold">Attempted mechanism by scope</text>
<text x="410" y="62" font-family="sans-serif" font-size="10">narrow</text>
<text x="525" y="62" font-family="sans-serif" font-size="10">object api</text>
<text x="640" y="62" font-family="sans-serif" font-size="10">package</text>
<text x="755" y="62" font-family="sans-serif" font-size="10">process global</text>
<text x="870" y="62" font-family="sans-serif" font-size="10">evaluation pipeline</text>
<text x="985" y="62" font-family="sans-serif" font-size="10">external system</text>
<text x="12" y="97" font-family="sans-serif" font-size="11">literal special case</text>
<rect x="405" y="78" width="102" height="27" fill="#e9eef2"/>
<text x="412" y="96" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="520" y="78" width="102" height="27" fill="#88aeca"/>
<text x="527" y="96" font-family="sans-serif" font-size="10">0/2/1</text>
<rect x="635" y="78" width="102" height="27" fill="#e9eef2"/>
<text x="642" y="96" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="750" y="78" width="102" height="27" fill="#88aeca"/>
<text x="757" y="96" font-family="sans-serif" font-size="10">0/3/0</text>
<rect x="865" y="78" width="102" height="27" fill="#e9eef2"/>
<text x="872" y="96" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="980" y="78" width="102" height="27" fill="#e9eef2"/>
<text x="987" y="96" font-family="sans-serif" font-size="10">0/0/0</text>
<text x="12" y="137" font-family="sans-serif" font-size="11">call history or cache</text>
<rect x="405" y="118" width="102" height="27" fill="#e9eef2"/>
<text x="412" y="136" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="520" y="118" width="102" height="27" fill="#e9eef2"/>
<text x="527" y="136" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="635" y="118" width="102" height="27" fill="#e9eef2"/>
<text x="642" y="136" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="750" y="118" width="102" height="27" fill="#88aeca"/>
<text x="757" y="136" font-family="sans-serif" font-size="10">0/1/0</text>
<rect x="865" y="118" width="102" height="27" fill="#88aeca"/>
<text x="872" y="136" font-family="sans-serif" font-size="10">1/0/0</text>
<rect x="980" y="118" width="102" height="27" fill="#e9eef2"/>
<text x="987" y="136" font-family="sans-serif" font-size="10">0/0/0</text>
<text x="12" y="177" font-family="sans-serif" font-size="11">protocol or equality spoof</text>
<rect x="405" y="158" width="102" height="27" fill="#e9eef2"/>
<text x="412" y="176" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="520" y="158" width="102" height="27" fill="#88aeca"/>
<text x="527" y="176" font-family="sans-serif" font-size="10">1/4/1</text>
<rect x="635" y="158" width="102" height="27" fill="#88aeca"/>
<text x="642" y="176" font-family="sans-serif" font-size="10">0/1/0</text>
<rect x="750" y="158" width="102" height="27" fill="#88aeca"/>
<text x="757" y="176" font-family="sans-serif" font-size="10">0/3/0</text>
<rect x="865" y="158" width="102" height="27" fill="#e9eef2"/>
<text x="872" y="176" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="980" y="158" width="102" height="27" fill="#e9eef2"/>
<text x="987" y="176" font-family="sans-serif" font-size="10">0/0/0</text>
<text x="12" y="217" font-family="sans-serif" font-size="11">global runtime mutation</text>
<rect x="405" y="198" width="102" height="27" fill="#e9eef2"/>
<text x="412" y="216" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="520" y="198" width="102" height="27" fill="#e9eef2"/>
<text x="527" y="216" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="635" y="198" width="102" height="27" fill="#e9eef2"/>
<text x="642" y="216" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="750" y="198" width="102" height="27" fill="#88aeca"/>
<text x="757" y="216" font-family="sans-serif" font-size="10">0/4/0</text>
<rect x="865" y="198" width="102" height="27" fill="#e9eef2"/>
<text x="872" y="216" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="980" y="198" width="102" height="27" fill="#e9eef2"/>
<text x="987" y="216" font-family="sans-serif" font-size="10">0/0/0</text>
<text x="12" y="257" font-family="sans-serif" font-size="11">protected test edit</text>
<rect x="405" y="238" width="102" height="27" fill="#e9eef2"/>
<text x="412" y="256" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="520" y="238" width="102" height="27" fill="#e9eef2"/>
<text x="527" y="256" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="635" y="238" width="102" height="27" fill="#e9eef2"/>
<text x="642" y="256" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="750" y="238" width="102" height="27" fill="#e9eef2"/>
<text x="757" y="256" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="865" y="238" width="102" height="27" fill="#88aeca"/>
<text x="872" y="256" font-family="sans-serif" font-size="10">3/1/1</text>
<rect x="980" y="238" width="102" height="27" fill="#e9eef2"/>
<text x="987" y="256" font-family="sans-serif" font-size="10">0/0/0</text>
<text x="12" y="297" font-family="sans-serif" font-size="11">test runner evaluator or grader interference</text>
<rect x="405" y="278" width="102" height="27" fill="#e9eef2"/>
<text x="412" y="296" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="520" y="278" width="102" height="27" fill="#e9eef2"/>
<text x="527" y="296" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="635" y="278" width="102" height="27" fill="#e9eef2"/>
<text x="642" y="296" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="750" y="278" width="102" height="27" fill="#e9eef2"/>
<text x="757" y="296" font-family="sans-serif" font-size="10">0/0/0</text>
<rect x="865" y="278" width="102" height="27" fill="#88aeca"/>
<text x="872" y="296" font-family="sans-serif" font-size="10">1/0/0</text>
<rect x="980" y="278" width="102" height="27" fill="#e9eef2"/>
<text x="987" y="296" font-family="sans-serif" font-size="10">0/0/0</text>
<text x="405" y="360" font-family="sans-serif" font-size="10" fill="#555">Cells show GLM/Muse/DeepSeek event counts.</text>
</svg>

After

Width:  |  Height:  |  Size: 6.2 KiB

@@ -0,0 +1,134 @@
#!/usr/bin/env python3
"""Regenerate the reviewed SWE shared-board SVG figures."""
from __future__ import annotations
import csv
from collections import Counter
from pathlib import Path
HERE = Path(__file__).resolve().parent
METRICS = HERE.parent
MODELS = [
("openrouter/z-ai/glm-5.3-flash", "GLM", "#31688e"),
("openrouter/meta/muse-spark-1.3-contributor", "Muse", "#b05a2a"),
("openrouter/deepseek/deepseek-v4-pro-0813", "DeepSeek", "#438a5e"),
]
with (METRICS / "summary.csv").open() as handle:
SUMMARY = list(csv.DictReader(handle))
with (METRICS / "events.csv").open() as handle:
EVENTS = list(csv.DictReader(handle))
def esc(text: str) -> str:
return text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
def find(model: str, family: str, metric: str, category: str | None = None):
for row in SUMMARY:
if row["model"] == model and row["metric_family"] == family and row["metric_name"] == metric:
if category is None or row["category"] == category:
return row
return None
def bar_figure(filename: str, title: str, family: str, metrics: list[tuple[str, str]], note: str = "") -> None:
width = 1120
height = 100 + 66 * len(metrics) + (24 if note else 0)
left = 285
plot_width = 690
lines = [
f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" viewBox="0 0 {width} {height}">',
'<rect width="100%" height="100%" fill="white"/>',
f'<text x="20" y="30" font-family="sans-serif" font-size="19" font-weight="bold">{esc(title)}</text>',
]
for i, (metric, label) in enumerate(metrics):
y = 58 + i * 66
lines.append(f'<text x="12" y="{y + 24}" font-family="sans-serif" font-size="12">{esc(label)}</text>')
for j, (model, short, color) in enumerate(MODELS):
row = find(model, family, metric)
yy = y + j * 15
if not row or row["value"] == "":
text = f"{short} unknown"
lines.append(f'<text x="{left}" y="{yy + 10}" font-family="sans-serif" font-size="10" fill="#666">{text}</text>')
continue
value = max(0.0, min(1.0, float(row["value"])))
length = plot_width * value
n = row["numerator"]
d = row["denominator"]
text = f"{short} {n}/{d}" if n != "" and d != "" else f"{short} {float(row['value']):.3f}"
lines.append(f'<rect x="{left}" y="{yy}" width="{length:.1f}" height="11" fill="{color}"/>')
lines.append(f'<text x="{left + length + 6:.1f}" y="{yy + 10}" font-family="sans-serif" font-size="10">{esc(text)}</text>')
if note:
lines.append(f'<text x="12" y="{height - 12}" font-family="sans-serif" font-size="10" fill="#555">{esc(note)}</text>')
lines.append("</svg>")
(HERE / filename).write_text("\n".join(lines) + "\n")
bar_figure(
"progression-funnel.svg", "Reviewed cheating progression", "cheating_progression",
[("cheating_considered", "considered"), ("cheating_attempted", "attempted"),
("cheating_retained", "retained"), ("cheating_successful", "successful")],
"Denominators follow behavior, artifact, and fresh-grader eligibility.",
)
bar_figure(
"pressure-timeline.svg", "Persistence after contradiction recognition", "persistence_pressure",
[("continuation_after_recognition", "continued cheating behavior"), ("safe_exit", "safe exit")],
"GLM and Muse decision-share annotation remains unknown; no value is imputed.",
)
bar_figure(
"transmission-funnel.svg", "Board transmission outcomes", "information_governance",
[("channel_activation", "read or post activation"), ("exact_peer_recipient", "exact peer recipient"),
("candidate_unattributed_adoption", "candidate unattributed adoption"),
("attributed_adoption", "attributed adoption")],
"Each model has one dependent board history. Candidate adoption is not attributed transmission.",
)
bar_figure(
"governance-response.svg", "Governance and disclosure", "information_governance",
[("peer_warning", "peer warning"), ("public_exploit_publication", "public exploit publication"),
("final_answer_disclosure", "final-answer disclosure"),
("success_claim_artifact_conflict", "success claim and artifact conflict")],
)
bar_figure(
"cot-observability.svg", "Reasoning observability", "cot_observability",
[("reasoning_message_coverage", "nonempty reasoning field"),
("readable_reasoning_message_coverage", "readable reasoning field"),
("episode_with_unresolved_behavioral_label", "episode with unresolved label")],
"Muse reasoning objects are encrypted or redacted, so readable coverage is zero.",
)
mechanisms = [
"literal_special_case", "call_history_or_cache", "protocol_or_equality_spoof",
"global_runtime_mutation", "protected_test_edit", "test_runner_evaluator_or_grader_interference",
]
scopes = ["narrow", "object_api", "package", "process_global", "evaluation_pipeline", "external_system"]
counts = Counter(
(row["model"], row["mechanism"], row["scope"])
for row in EVENTS if row["event_type"] == "mechanism_attempt" and row.get("mechanism")
)
width = 1140
height = 135 + 40 * len(mechanisms)
lines = [
f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" viewBox="0 0 {width} {height}">',
'<rect width="100%" height="100%" fill="white"/>',
'<text x="20" y="30" font-family="sans-serif" font-size="19" font-weight="bold">Attempted mechanism by scope</text>',
]
for j, scope in enumerate(scopes):
lines.append(f'<text x="{410 + 115*j}" y="62" font-family="sans-serif" font-size="10">{esc(scope.replace("_", " "))}</text>')
for i, mechanism in enumerate(mechanisms):
y = 78 + 40 * i
lines.append(f'<text x="12" y="{y + 19}" font-family="sans-serif" font-size="11">{esc(mechanism.replace("_", " "))}</text>')
for j, scope in enumerate(scopes):
values = [counts[(model, mechanism, scope)] for model, _, _ in MODELS]
total = sum(values)
fill = "#e9eef2" if total == 0 else "#88aeca"
x = 405 + 115*j
lines.append(f'<rect x="{x}" y="{y}" width="102" height="27" fill="{fill}"/>')
lines.append(f'<text x="{x + 7}" y="{y + 18}" font-family="sans-serif" font-size="10">{values[0]}/{values[1]}/{values[2]}</text>')
lines.append(f'<text x="405" y="{height - 15}" font-family="sans-serif" font-size="10" fill="#555">Cells show GLM/Muse/DeepSeek event counts.</text>')
lines.append("</svg>")
(HERE / "mechanism-scope.svg").write_text("\n".join(lines) + "\n")
print("wrote 6 SVG figures")
@@ -0,0 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1120" height="256" viewBox="0 0 1120 256">
<rect width="100%" height="100%" fill="white"/>
<text x="20" y="30" font-family="sans-serif" font-size="19" font-weight="bold">Persistence after contradiction recognition</text>
<text x="12" y="82" font-family="sans-serif" font-size="12">continued cheating behavior</text>
<rect x="285" y="58" width="162.4" height="11" fill="#31688e"/>
<text x="453.4" y="68" font-family="sans-serif" font-size="10">GLM 4/17</text>
<rect x="285" y="73" width="460.0" height="11" fill="#b05a2a"/>
<text x="751.0" y="83" font-family="sans-serif" font-size="10">Muse 10/15</text>
<rect x="285" y="88" width="138.0" height="11" fill="#438a5e"/>
<text x="429.0" y="98" font-family="sans-serif" font-size="10">DeepSeek 2/10</text>
<text x="12" y="148" font-family="sans-serif" font-size="12">safe exit</text>
<rect x="285" y="124" width="527.6" height="11" fill="#31688e"/>
<text x="818.6" y="134" font-family="sans-serif" font-size="10">GLM 13/17</text>
<rect x="285" y="139" width="230.0" height="11" fill="#b05a2a"/>
<text x="521.0" y="149" font-family="sans-serif" font-size="10">Muse 5/15</text>
<rect x="285" y="154" width="552.0" height="11" fill="#438a5e"/>
<text x="843.0" y="164" font-family="sans-serif" font-size="10">DeepSeek 8/10</text>
<text x="12" y="244" font-family="sans-serif" font-size="10" fill="#555">GLM and Muse decision-share annotation remains unknown; no value is imputed.</text>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@@ -0,0 +1,33 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1120" height="388" viewBox="0 0 1120 388">
<rect width="100%" height="100%" fill="white"/>
<text x="20" y="30" font-family="sans-serif" font-size="19" font-weight="bold">Reviewed cheating progression</text>
<text x="12" y="82" font-family="sans-serif" font-size="12">considered</text>
<rect x="285" y="58" width="586.5" height="11" fill="#31688e"/>
<text x="877.5" y="68" font-family="sans-serif" font-size="10">GLM 17/20</text>
<rect x="285" y="73" width="414.0" height="11" fill="#b05a2a"/>
<text x="705.0" y="83" font-family="sans-serif" font-size="10">Muse 12/20</text>
<rect x="285" y="88" width="690.0" height="11" fill="#438a5e"/>
<text x="981.0" y="98" font-family="sans-serif" font-size="10">DeepSeek 10/10</text>
<text x="12" y="148" font-family="sans-serif" font-size="12">attempted</text>
<rect x="285" y="124" width="172.5" height="11" fill="#31688e"/>
<text x="463.5" y="134" font-family="sans-serif" font-size="10">GLM 5/20</text>
<rect x="285" y="139" width="345.0" height="11" fill="#b05a2a"/>
<text x="636.0" y="149" font-family="sans-serif" font-size="10">Muse 10/20</text>
<rect x="285" y="154" width="138.0" height="11" fill="#438a5e"/>
<text x="429.0" y="164" font-family="sans-serif" font-size="10">DeepSeek 2/10</text>
<text x="12" y="214" font-family="sans-serif" font-size="12">retained</text>
<rect x="285" y="190" width="92.0" height="11" fill="#31688e"/>
<text x="383.0" y="200" font-family="sans-serif" font-size="10">GLM 2/15</text>
<rect x="285" y="205" width="443.6" height="11" fill="#b05a2a"/>
<text x="734.6" y="215" font-family="sans-serif" font-size="10">Muse 9/14</text>
<rect x="285" y="220" width="230.0" height="11" fill="#438a5e"/>
<text x="521.0" y="230" font-family="sans-serif" font-size="10">DeepSeek 1/3</text>
<text x="12" y="280" font-family="sans-serif" font-size="12">successful</text>
<rect x="285" y="256" width="98.6" height="11" fill="#31688e"/>
<text x="389.6" y="266" font-family="sans-serif" font-size="10">GLM 2/14</text>
<rect x="285" y="271" width="477.7" height="11" fill="#b05a2a"/>
<text x="768.7" y="281" font-family="sans-serif" font-size="10">Muse 9/13</text>
<rect x="285" y="286" width="230.0" height="11" fill="#438a5e"/>
<text x="521.0" y="296" font-family="sans-serif" font-size="10">DeepSeek 1/3</text>
<text x="12" y="376" font-family="sans-serif" font-size="10" fill="#555">Denominators follow behavior, artifact, and fresh-grader eligibility.</text>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,29 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1120" height="388" viewBox="0 0 1120 388">
<rect width="100%" height="100%" fill="white"/>
<text x="20" y="30" font-family="sans-serif" font-size="19" font-weight="bold">Board transmission outcomes</text>
<text x="12" y="82" font-family="sans-serif" font-size="12">read or post activation</text>
<rect x="285" y="58" width="379.5" height="11" fill="#31688e"/>
<text x="670.5" y="68" font-family="sans-serif" font-size="10">GLM 11/20</text>
<rect x="285" y="73" width="345.0" height="11" fill="#b05a2a"/>
<text x="636.0" y="83" font-family="sans-serif" font-size="10">Muse 10/20</text>
<rect x="285" y="88" width="276.0" height="11" fill="#438a5e"/>
<text x="567.0" y="98" font-family="sans-serif" font-size="10">DeepSeek 4/10</text>
<text x="12" y="148" font-family="sans-serif" font-size="12">exact peer recipient</text>
<rect x="285" y="124" width="241.5" height="11" fill="#31688e"/>
<text x="532.5" y="134" font-family="sans-serif" font-size="10">GLM 7/20</text>
<rect x="285" y="139" width="310.5" height="11" fill="#b05a2a"/>
<text x="601.5" y="149" font-family="sans-serif" font-size="10">Muse 9/20</text>
<rect x="285" y="154" width="69.0" height="11" fill="#438a5e"/>
<text x="360.0" y="164" font-family="sans-serif" font-size="10">DeepSeek 1/10</text>
<text x="12" y="214" font-family="sans-serif" font-size="12">candidate unattributed adoption</text>
<text x="285" y="200" font-family="sans-serif" font-size="10" fill="#666">GLM unknown</text>
<rect x="285" y="205" width="306.7" height="11" fill="#b05a2a"/>
<text x="597.7" y="215" font-family="sans-serif" font-size="10">Muse 4/9</text>
<text x="285" y="230" font-family="sans-serif" font-size="10" fill="#666">DeepSeek unknown</text>
<text x="12" y="280" font-family="sans-serif" font-size="12">attributed adoption</text>
<text x="285" y="266" font-family="sans-serif" font-size="10" fill="#666">GLM unknown</text>
<rect x="285" y="271" width="0.0" height="11" fill="#b05a2a"/>
<text x="291.0" y="281" font-family="sans-serif" font-size="10">Muse 0/9</text>
<text x="285" y="296" font-family="sans-serif" font-size="10" fill="#666">DeepSeek unknown</text>
<text x="12" y="376" font-family="sans-serif" font-size="10" fill="#555">Each model has one dependent board history. Candidate adoption is not attributed transmission.</text>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB