master
John Lauer v2.0.727 (insiders): A pup window waiting on a slow page now explains itself instead of showing a blank PUPBIRTH tab: w… b75d102 22d ago
<!doctype html>
<!-- pup birth page (2.0.630). Every extension-lane window is CREATED on this page with a unique token in the query
     string; the page's <title> is that token, so the OS window title is "PUPBIRTH-<token> - Google Chrome for Testing"
     from the first instant, and pup binds the window by that title alone (pup-no-wiggle, pup-window-targeting R4).
     The real URL is navigated to only after the window is bound and parked at the bottom of the z-order.
     2.0.726: a slow page keeps this tab on screen, so it explains itself: which AI thread opened the window, why,
     where it is going, how long it has waited, and what pup is (John, 2026-10-19). -->
<html><head><meta charset="utf-8"><title>PUPBIRTH</title>
<style>
:root{--bg:#161b22;--card:#1c2230;--ink:#e6edf3;--dim:#8b949e;--line:#30363d;--teal:#00b8b1;--amber:#d29922}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
body{display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}
.card{max-width:620px;width:100%;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:28px 30px}
.brand{display:flex;align-items:center;gap:8px;color:var(--teal);font-weight:600;font-size:13px;letter-spacing:.04em;text-transform:uppercase}
.dot{width:8px;height:8px;border-radius:50%;background:var(--teal);animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.dot{animation:none}}
h1{font-size:22px;margin:14px 0 4px;font-weight:600;word-break:break-word}
.row{margin-top:16px}
.lbl{color:var(--dim);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.val{margin-top:2px;word-break:break-all}
.val a{color:var(--teal)}
.status{margin-top:20px;padding:10px 12px;border-radius:8px;background:#0d1117;border:1px solid var(--line);color:var(--dim)}
.status.slow{color:var(--amber);border-color:#5a4a1a}
.about{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);color:var(--dim);font-size:13.5px}
.hidden{display:none}
</style>
<script src="birth.js"></script></head>
<body><div class="card hidden" id="card">
  <div class="brand"><span class="dot"></span>pup window</div>
  <h1 id="head"></h1>
  <div class="row"><div class="lbl">Opened by</div><div class="val" id="thread"></div></div>
  <div class="row"><div class="lbl">Why</div><div class="val" id="reason"></div></div>
  <div class="row"><div class="lbl">Going to</div><div class="val" id="target"></div></div>
  <div class="status" id="status"></div>
  <div class="about">This is a pup window: a browser your AI drives in the background, signed in as you, so it can
    check pages and do web work without taking over your screen. Every new pup window starts on this page for a
    moment while pup tucks it behind your work, and you normally never see it. It is still showing because the
    page it is opening has not answered yet. Nothing is wrong with your computer, and you can keep working.</div>
</div></body></html>