diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index cd104f9..796daa8 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,5 +1,9 @@
name: CI
+concurrency:
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
+ cancel-in-progress: ${{ github.event_name == 'pull_request' }}
+
on:
pull_request:
branches: [main]
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index f644b5a..5c61d93 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -1,5 +1,17 @@
name: Deploy
+# Release variant — never cancel a deploy mid-flight. A cancelled deploy
+# can leave the Netcup site in a half-deleted state (the script does
+# `find . -delete && tar -xzf`). Group by ref so two parallel pushes to
+# the same branch serialize cleanly without race-deleting each other.
+#
+# Security note: this concurrency block uses only server-controlled
+# context vars (github.ref, github.workflow) — no PR-author-controlled
+# input flows into the group key.
+concurrency:
+ group: release-${{ github.ref }}
+ cancel-in-progress: false
+
on:
push:
branches: [main]
diff --git a/content/about.md b/content/about.md
new file mode 100644
index 0000000..3051d23
--- /dev/null
+++ b/content/about.md
@@ -0,0 +1,5 @@
++++
+title = "About"
+description = "Open source. Pre-1.0. Each tool tests a thesis about AI-velocity verification for safety-critical software. Here's the bench, here's what it produced, here's what we don't yet know."
+template = "about.html"
++++
diff --git a/sass/_blog.scss b/sass/_blog.scss
index ac23401..7efcae3 100644
--- a/sass/_blog.scss
+++ b/sass/_blog.scss
@@ -236,6 +236,24 @@
}
}
+}
+
+// Mermaid light-mode color override is handled in JS, not CSS.
+//
+// Why: each post's `classDef` lines compile to CSS rules INSIDE the
+// rendered SVG's `
+{% endblock %}
diff --git a/templates/base.html b/templates/base.html
index d4ffaf1..05d3ccb 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -93,6 +93,7 @@
PulseEngine