diff --git a/kipina-codebench/results/2026-04-14T11-54.html b/kipina-codebench/results/2026-04-14T11-54.html
new file mode 100644
index 0000000..57f8290
--- /dev/null
+++ b/kipina-codebench/results/2026-04-14T11-54.html
@@ -0,0 +1,183 @@
+
+
+
+
+
+Kipina Model Benchmark
+
+
+
+
+Kipina Model Benchmark
+
+
+
+
+Mallikohtainen yhteenveto
+
+
+Kaikki tulokset
+
+
+
+
+
diff --git a/kipina-codebench/results/2026-04-14T11-54.json b/kipina-codebench/results/2026-04-14T11-54.json
new file mode 100644
index 0000000..1d4b7a4
--- /dev/null
+++ b/kipina-codebench/results/2026-04-14T11-54.json
@@ -0,0 +1,117 @@
+[
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 2,
+ "validationIssues": 0,
+ "fixRounds": 3,
+ "testsTotal": 0,
+ "testsPassed": 0,
+ "testsFailed": 0,
+ "totalDurationMs": 79193,
+ "totalTokens": 10304,
+ "avgTokPerSec": 141.2083113764173,
+ "promptChars": 12199,
+ "promptTokensEst": 3050,
+ "score": 0,
+ "stars": "☆☆☆☆☆",
+ "error": "Testit kaatuivat",
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 1
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 2,
+ "validationIssues": 0,
+ "fixRounds": 3,
+ "testsTotal": 10,
+ "testsPassed": 6,
+ "testsFailed": 4,
+ "totalDurationMs": 66764,
+ "totalTokens": 8896,
+ "avgTokPerSec": 142.57944640796882,
+ "promptChars": 12391,
+ "promptTokensEst": 3098,
+ "score": 56,
+ "stars": "★★★☆☆",
+ "error": null,
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 2
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 2,
+ "validationIssues": 0,
+ "fixRounds": 3,
+ "testsTotal": 1,
+ "testsPassed": 0,
+ "testsFailed": 1,
+ "totalDurationMs": 76403,
+ "totalTokens": 9962,
+ "avgTokPerSec": 137.0023398819064,
+ "promptChars": 12432,
+ "promptTokensEst": 3108,
+ "score": 20,
+ "stars": "★☆☆☆☆",
+ "error": "Syntaksivirhe",
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 3
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 1,
+ "validationIssues": 0,
+ "fixRounds": 3,
+ "testsTotal": 13,
+ "testsPassed": 7,
+ "testsFailed": 6,
+ "totalDurationMs": 81345,
+ "totalTokens": 10535,
+ "avgTokPerSec": 139.42076339875726,
+ "promptChars": 11419,
+ "promptTokensEst": 2855,
+ "score": 52,
+ "stars": "★★★☆☆",
+ "error": null,
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 4
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 1,
+ "validationIssues": 0,
+ "fixRounds": 3,
+ "testsTotal": 12,
+ "testsPassed": 11,
+ "testsFailed": 1,
+ "totalDurationMs": 72723,
+ "totalTokens": 9567,
+ "avgTokPerSec": 141.2709378394512,
+ "promptChars": 11416,
+ "promptTokensEst": 2854,
+ "score": 75,
+ "stars": "★★★★☆",
+ "error": null,
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 5
+ }
+]
\ No newline at end of file
diff --git a/kipina-codebench/results/2026-04-14T11-55.html b/kipina-codebench/results/2026-04-14T11-55.html
new file mode 100644
index 0000000..fd1e34f
--- /dev/null
+++ b/kipina-codebench/results/2026-04-14T11-55.html
@@ -0,0 +1,183 @@
+
+
+
+
+
+Kipina Model Benchmark
+
+
+
+
+Kipina Model Benchmark
+
+
+
+
+Mallikohtainen yhteenveto
+
+
+Kaikki tulokset
+
+
+
+
+
diff --git a/kipina-codebench/results/2026-04-14T11-55.json b/kipina-codebench/results/2026-04-14T11-55.json
new file mode 100644
index 0000000..11682c4
--- /dev/null
+++ b/kipina-codebench/results/2026-04-14T11-55.json
@@ -0,0 +1,113 @@
+[
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": false,
+ "specEntities": 0,
+ "validationIssues": 0,
+ "fixRounds": 0,
+ "testsTotal": 0,
+ "testsPassed": 0,
+ "testsFailed": 0,
+ "totalDurationMs": 0,
+ "totalTokens": 0,
+ "avgTokPerSec": 0,
+ "promptChars": 0,
+ "promptTokensEst": 0,
+ "score": 0,
+ "stars": "",
+ "error": "JSON-speksi epäonnistui",
+ "round": 1
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 1,
+ "validationIssues": 0,
+ "fixRounds": 3,
+ "testsTotal": 0,
+ "testsPassed": 0,
+ "testsFailed": 0,
+ "totalDurationMs": 56798,
+ "totalTokens": 5105,
+ "avgTokPerSec": 99.4097006568848,
+ "promptChars": 11326,
+ "promptTokensEst": 2832,
+ "score": 0,
+ "stars": "☆☆☆☆☆",
+ "error": "Testit kaatuivat",
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 2
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 2,
+ "validationIssues": 0,
+ "fixRounds": 3,
+ "testsTotal": 0,
+ "testsPassed": 0,
+ "testsFailed": 0,
+ "totalDurationMs": 114297,
+ "totalTokens": 10163,
+ "avgTokPerSec": 97.19131591932717,
+ "promptChars": 12182,
+ "promptTokensEst": 3046,
+ "score": 0,
+ "stars": "☆☆☆☆☆",
+ "error": "Testit kaatuivat",
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 3
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": false,
+ "specEntities": 0,
+ "validationIssues": 0,
+ "fixRounds": 0,
+ "testsTotal": 0,
+ "testsPassed": 0,
+ "testsFailed": 0,
+ "totalDurationMs": 0,
+ "totalTokens": 0,
+ "avgTokPerSec": 0,
+ "promptChars": 0,
+ "promptTokensEst": 0,
+ "score": 0,
+ "stars": "",
+ "error": "JSON-speksi epäonnistui",
+ "round": 4
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 2,
+ "validationIssues": 0,
+ "fixRounds": 3,
+ "testsTotal": 12,
+ "testsPassed": 11,
+ "testsFailed": 1,
+ "totalDurationMs": 112008,
+ "totalTokens": 9892,
+ "avgTokPerSec": 97.0586619009377,
+ "promptChars": 12406,
+ "promptTokensEst": 3102,
+ "score": 75,
+ "stars": "★★★★☆",
+ "error": null,
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 5
+ }
+]
\ No newline at end of file
diff --git a/kipina-codebench/results/2026-04-14T12-01.html b/kipina-codebench/results/2026-04-14T12-01.html
new file mode 100644
index 0000000..c5e9856
--- /dev/null
+++ b/kipina-codebench/results/2026-04-14T12-01.html
@@ -0,0 +1,183 @@
+
+
+
+
+
+Kipina Model Benchmark
+
+
+
+
+Kipina Model Benchmark
+
+
+
+
+Mallikohtainen yhteenveto
+
+
+Kaikki tulokset
+
+
+
+
+
diff --git a/kipina-codebench/results/2026-04-14T12-01.json b/kipina-codebench/results/2026-04-14T12-01.json
new file mode 100644
index 0000000..6fb68c5
--- /dev/null
+++ b/kipina-codebench/results/2026-04-14T12-01.json
@@ -0,0 +1,113 @@
+[
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": false,
+ "specEntities": 0,
+ "validationIssues": 0,
+ "fixRounds": 0,
+ "testsTotal": 0,
+ "testsPassed": 0,
+ "testsFailed": 0,
+ "totalDurationMs": 0,
+ "totalTokens": 0,
+ "avgTokPerSec": 0,
+ "promptChars": 0,
+ "promptTokensEst": 0,
+ "score": 0,
+ "stars": "",
+ "error": "JSON-speksi epäonnistui",
+ "round": 1
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 2,
+ "validationIssues": 0,
+ "fixRounds": 3,
+ "testsTotal": 11,
+ "testsPassed": 11,
+ "testsFailed": 0,
+ "totalDurationMs": 143640,
+ "totalTokens": 12611,
+ "avgTokPerSec": 96.28061629672216,
+ "promptChars": 12125,
+ "promptTokensEst": 3031,
+ "score": 80,
+ "stars": "★★★★☆",
+ "error": null,
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 2
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 2,
+ "validationIssues": 0,
+ "fixRounds": 2,
+ "testsTotal": 12,
+ "testsPassed": 12,
+ "testsFailed": 0,
+ "totalDurationMs": 116061,
+ "totalTokens": 10181,
+ "avgTokPerSec": 96.63321228455318,
+ "promptChars": 12435,
+ "promptTokensEst": 3109,
+ "score": 80,
+ "stars": "★★★★☆",
+ "error": null,
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 3
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": false,
+ "specEntities": 0,
+ "validationIssues": 0,
+ "fixRounds": 0,
+ "testsTotal": 0,
+ "testsPassed": 0,
+ "testsFailed": 0,
+ "totalDurationMs": 0,
+ "totalTokens": 0,
+ "avgTokPerSec": 0,
+ "promptChars": 0,
+ "promptTokensEst": 0,
+ "score": 0,
+ "stars": "",
+ "error": "JSON-speksi epäonnistui",
+ "round": 4
+ },
+ {
+ "model": "qwen3:8b",
+ "scenario": "blog",
+ "reqOk": true,
+ "specOk": true,
+ "specEntities": 2,
+ "validationIssues": 0,
+ "fixRounds": 2,
+ "testsTotal": 11,
+ "testsPassed": 11,
+ "testsFailed": 0,
+ "totalDurationMs": 113792,
+ "totalTokens": 10022,
+ "avgTokPerSec": 96.96815077469971,
+ "promptChars": 12260,
+ "promptTokensEst": 3065,
+ "score": 80,
+ "stars": "★★★★☆",
+ "error": null,
+ "profile": "small",
+ "promptName": "code-small",
+ "round": 5
+ }
+]
\ No newline at end of file