← back to build-pages
home: trend delta arrow (↑/↓/—) between today and yesterday + 1 smoke
83730dd9596d12669613dd0a7025ef1f544eecd1 · 2026-05-13 20:44:10 -0700 · SteveStudio2
Files touched
M public/css/site.cssM server.jsM test/smoke.js
Diff
commit 83730dd9596d12669613dd0a7025ef1f544eecd1
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Wed May 13 20:44:10 2026 -0700
home: trend delta arrow (↑/↓/—) between today and yesterday + 1 smoke
---
public/css/site.css | 8 ++++++++
server.js | 8 +++++++-
test/smoke.js | 1 +
3 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/public/css/site.css b/public/css/site.css
index b038ebb..744ce58 100644
--- a/public/css/site.css
+++ b/public/css/site.css
@@ -112,6 +112,14 @@ h2 { font-size: 20px; font-weight: 700; margin: 36px 0 14px; letter-spacing: -0.
.bp-body pre { background: var(--code-bg); white-space: pre-wrap; }
.bp-diff { font-size: 12px; max-height: 70vh; overflow: auto; }
.bp-spark { font-family: ui-monospace, Menlo, monospace; letter-spacing: 1px; color: var(--link); background: var(--code-bg); padding: 1px 6px; border-radius: 4px; }
+.bp-delta { font-family: ui-monospace, Menlo, monospace; font-size: 12px; padding: 1px 6px; border-radius: 4px; font-weight: 600; }
+.bp-delta-up { color: #1f7a30; background: rgba(31,122,48,0.12); }
+.bp-delta-dn { color: #b14747; background: rgba(177,71,71,0.12); }
+.bp-delta-eq { color: var(--muted); background: var(--chip-bg); }
+@media (prefers-color-scheme: dark) {
+ .bp-delta-up { color: #5cd278; }
+ .bp-delta-dn { color: #ff7373; }
+}
.bp-load { font-family: ui-monospace, Menlo, monospace; padding: 1px 6px; border-radius: 4px; font-weight: 600; }
.bp-load-ok { background: rgba(31,122,48,0.15); color: #1f7a30; }
.bp-load-warn { background: rgba(196,140,30,0.18); color: #9b6f15; }
diff --git a/server.js b/server.js
index ce6d424..11b225c 100644
--- a/server.js
+++ b/server.js
@@ -371,6 +371,12 @@ app.get('/', async (req, res, next) => {
};
const todayPT = ptDay(0);
const yesterdayPT = ptDay(-1);
+ const delta = todayPT.count - yesterdayPT.count;
+ const deltaSpan = delta > 0
+ ? `<span class="bp-delta bp-delta-up" title="${delta} more than yesterday">↑${delta}</span>`
+ : delta < 0
+ ? `<span class="bp-delta bp-delta-dn" title="${Math.abs(delta)} fewer than yesterday">↓${Math.abs(delta)}</span>`
+ : `<span class="bp-delta bp-delta-eq" title="same as yesterday">—</span>`;
const fleetSpark = sparkline(fleetCommits);
const sparkChars = fleetSpark.spark;
const dayBuckets = fleetSpark.buckets;
@@ -420,7 +426,7 @@ app.get('/', async (req, res, next) => {
<h1>build journals</h1>
<p class="bp-lede">Every build, every commit, every line. Click into a project to see how it actually got made.</p>
<p class="bp-meta">${entries.length} projects · ${totalCommits} commits · ${totalIdeas} design-rationale ideas surfaced</p>
- <p class="bp-meta">today (PT): <strong>${todayPT.count}</strong> · yesterday: <strong>${yesterdayPT.count}</strong> · last 24h: <strong>${last24}</strong> · last 7d: <strong>${last7d}</strong> · 7-day shape <code class="bp-spark" title="${dayBuckets.join(' / ')}">${sparkChars}</code> · ${(() => {
+ <p class="bp-meta">today (PT): <strong>${todayPT.count}</strong> ${deltaSpan} · yesterday: <strong>${yesterdayPT.count}</strong> · last 24h: <strong>${last24}</strong> · last 7d: <strong>${last7d}</strong> · 7-day shape <code class="bp-spark" title="${dayBuckets.join(' / ')}">${sparkChars}</code> · ${(() => {
const [l1] = require('os').loadavg();
const cls = l1 < 8 ? 'bp-load-ok' : l1 < 20 ? 'bp-load-warn' : 'bp-load-hot';
return `host load <span class="bp-load ${cls}">${l1.toFixed(1)}</span> (1m)`;
diff --git a/test/smoke.js b/test/smoke.js
index 4318bdd..26cae44 100644
--- a/test/smoke.js
+++ b/test/smoke.js
@@ -97,6 +97,7 @@ function check(name, cond, hint = '') {
check('home: theme-color', /name="theme-color"/.test(r.body));
check('home: top skills rail', /Top skills \+ agents/.test(r.body));
check('home: velocity line', /last 24h: <strong>\d+<\/strong>/.test(r.body));
+ check('home: delta arrow', /class="bp-delta bp-delta-(up|dn|eq)"/.test(r.body));
check('home: load badge', /class="bp-load (bp-load-ok|bp-load-warn|bp-load-hot)"/.test(r.body));
check('home: 7-day sparkline', /class="bp-spark"/.test(r.body));
check('home: deepest rationale rail', /Deepest rationale/.test(r.body));
← 7aefa06 smoke: track 'last 24h' line instead of removed 'velocity:'
·
back to build-pages
·
home: per-project today-PT chip on each project card + 1 smo f1d86db →