fix: fourth review round (mount-failure truth, toggle baking, root ambiguity)

cursor[bot]:
- enqueueEvent dedupes variant_mount_failed per variant, so a second
  broken variant is no longer swallowed while the first is queued.
- Every component (re)injection resets the mount-failure dedupe, so a
  republish that is still broken at the same URL reports again instead
  of silently convincing the agent the repair landed.
- Toggle baking now mirrors preview truth exactly: the runtime sets
  data-p-<id>="on" or removes the attribute, so presence and "on" forms
  survive only while on, and any other valued branch (never matched at
  preview) is dropped in either state.

greptile-apps[bot] (both P1 repros):
- When several apps qualify at the same resolution tier (two live
  servers, or two stopped apps with interrupted sessions), the choice
  stays deterministic but is now loud: a stderr warning names the chosen
  app, the alternatives, and how to target a specific app. Silent
  wrong-app routing was the failure in both repro harnesses.

This work was produced with AI assistance (Claude Code).

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
Paul Bakaus
2026-07-27 16:22:09 -07:00
co-authored by Claude Code
parent 40b2a80653
commit 39df25ee5a
5 changed files with 51 additions and 7 deletions
+7 -3
View File
@@ -334,12 +334,16 @@ export function stripParamSelector(selector, id, kind, chosenValue) {
drop = true;
return '';
}
// toggle: attribute presence means "on".
if (expected != null && String(expected) !== String(chosenValue) && !isToggleOn(chosenValue)) {
// toggle: the runtime sets data-p-<id>="on" when on and removes the
// attribute when off. A branch survives baking only if it actually
// matched at preview time with the chosen state: the presence form and
// the literal "on" form match while on; every other valued form
// (["false"], ["0"], ...) never matched and is dead regardless of state.
if (expected != null && expected !== 'on') {
drop = true;
return '';
}
if (expected == null && !isToggleOn(chosenValue)) {
if (!isToggleOn(chosenValue)) {
drop = true;
return '';
}