Fix <sql> silent-failure bug; split /vst into overview + subpage; misc site fixes

- __mysql.cpp: <sql> never checked mysql_real_query's own return code,
  so a genuine query failure was indistinguishable from "ran fine, zero
  rows" - <try>/<catch> around a failing <sql> never actually caught
  anything anywhere. Now throws on a real failure.
- spa.js: dynamically re-injected scripts now run in true sequential
  order (wait for each external script's load event before running the
  next), fixing checkout's Square card field never building on the
  first client-side navigation to /checkout (only after a refresh) -
  async=false alone only orders multiple external scripts relative to
  each other, it doesn't delay a plain inline sibling.
- /vst split into a real overview + /vst/modular1 subpage with a left
  menu, reusing opensource.page's existing subpage-tier pattern
  (opensource.menu/main.css's submenuitem-active highlighting, and
  several other subpage-tier retirements, were already finished earlier
  this session but never committed - included here too).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Brad ArantandClaude Sonnet 5 committed 2026-09-13 15:14:25 +00:00
1 parent 46ef67b735
commit 905fbafa5a
17 files changed
+474 -63

No files matched your search

+18
View File
@@ -365,6 +365,24 @@ textarea.fieldinputerror {
transition: color 0.2s ease, border-color 0.2s ease;
}
/* The currently-active entry in a page's own sidebar submenu (e.g.
opensource.menu's list of subpages) - a background highlight rather
than baritemselected's "raised tab" treatment, since these are plain
inline links stacked in a list, not tabs sitting on a bar edge.
Applied server-side (see opensource.menu) by comparing each
linkbutton's own subpage against $[SUBPAGE] - spa.js already
re-renders and swaps this menu's markup on every client-side
navigation (see its #_spa_panelmenu handling), so this stays correct
without any script of its own. */
.submenuitem-active {
background: var(--bond-panel-2);
color: var(--bond-gold-bright) !important;
padding: 2px 6px;
margin: -2px -6px;
border-radius: 3px;
box-shadow: inset 0 0 0 1px var(--bond-gold);
}
.panel {
background: var(--bond-panel);
margin: 10px;