Commit 3605153
fix(dashboard): repair the parse-dead inline script; real screenshots; README sweep (#136)
THE BUG: commit 01ccc88 (2026-05-29, the XSS fix) wrote
data-id=''' + escapeHtml(p.id) + '''
into the dashboard's inline script — a SyntaxError that killed the
ENTIRE script at parse time. Every dashboard from May 29 to today
rendered 'Loading projects...' forever: the project selector, graph,
ledger, everything dead. Found while capturing a README screenshot; the
picture would not load, and the reason was real.
The irony: the ES5 lint exists precisely for quote-escaping traps, the
offending commit even used the data-id pattern the lint recommends —
and the lint stayed green, because it pattern-matches known traps
instead of parsing. Pattern lists cannot enumerate typos.
THE FIX: data-id="..." (escapeHtml escapes double quotes, so the
attribute stays injection-safe). Verified live: project list populates,
graph renders, zero page errors.
THE GUARD: lint-dashboard-es5 now renders the BUILT dashboard HTML and
node --checks every inline script block, placed before the legacy exit
path (the first version ran after process.exit(0) — a placebo).
Proven A/B on the real defect: broken source exits 1 naming the line,
fixed source exits 0.
ALSO:
- README hero + docs images are now REAL captures of the running
v20.8.0 dashboard (scrubbed HOME, authored demo data — no private
content; visually inspected), replacing the generated mockup.
- What's New gained the missing 20.7–20.8.0 section.
- Dead BFCL blog link -> the canonical leaderboard URL.
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent f12c5fa commit 3605153
5 files changed
Lines changed: 76 additions & 4 deletions
File tree
- docs
- scripts
- src/dashboard
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
119 | 142 | | |
120 | 143 | | |
121 | 144 | | |
| |||
604 | 627 | | |
605 | 628 | | |
606 | 629 | | |
607 | | - | |
| 630 | + | |
608 | 631 | | |
609 | 632 | | |
610 | 633 | | |
| |||
730 | 753 | | |
731 | 754 | | |
732 | 755 | | |
733 | | - | |
| 756 | + | |
734 | 757 | | |
735 | 758 | | |
736 | 759 | | |
| |||
Loading
Loading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
92 | 140 | | |
93 | 141 | | |
94 | 142 | | |
95 | 143 | | |
96 | 144 | | |
97 | 145 | | |
98 | 146 | | |
| 147 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1857 | 1857 | | |
1858 | 1858 | | |
1859 | 1859 | | |
1860 | | - | |
| 1860 | + | |
1861 | 1861 | | |
1862 | 1862 | | |
1863 | 1863 | | |
| |||
0 commit comments