driver-sql: live-DDL work still on vitest's 5000ms default outside #13902's scoping — 4 it() blocks beyond declareDialectCell, and 2 beforeAll hooks #14100

Description

@claude

Filed while implementing #13902 (its A2.3 instruction: report same-shaped live-DDL tests
outside the card's scoping before folding any in). Unassigned: recording only.

#13902 scoped itself to it(...) blocks nested in a declareDialectCell(...) callback, and
that scoping was right for what it fixed. Two adjacent populations in the same package do the
same live connect/DDL work on vitest's inherited 5000ms default and fall outside it. Both were
found structurally (TypeScript AST over packages/drivers/driver-sql/src/*.test.ts), and the
instrument carries a firing control: the same walk returns the 2 budgets that landed on
sql-driver-13056-orphan-shadow-column-cleanup.test.ts, so a zero elsewhere is a reading
rather than a broken expression.

Population A — live-DDL it() outside declareDialectCell(...)

Four it(...) blocks construct a driver against a live Postgres cell and carry no explicit
budget. Classified by reading each new SqlDriver(...) argument rather than by inferring from
the enclosing file:

LocationGateDriver config
live-dialect-matrix.isolation.test.ts:281it.skipIf(!PG_CELL.available)PG_CELL.config()
live-dialect-matrix.isolation.test.ts:314it.skipIf(!PG_CELL.available)PG_CELL.config()
sql-driver-autonumber-cold-race.test.ts:159it.skipIf(!pgCell.available)pgCell.config()
sql-driver-json-binding-without-ddl.test.ts:173it{ ...PG_CELL.config(), schemaMode: 'validate-only' }

The first two also call initObjects(...), so they are the full connect/DDL/read-back shape
#13688 measured. The other 42 outside-cell it()s that construct a driver are embedded SQLite
(dialectCell('sqlite').config() or a better-sqlite3 :memory: literal) and are correctly on
the fast default — they are not part of this.

Population B — unbudgeted beforeAll hooks doing live connect + DDL + writes

sql-driver-backend-fault-envelope.test.ts has two beforeAll hooks that each open a live
driver, run initObjects(...), and insert rows:

  • :160new SqlDriver(cell.config()), two drop table if exists, initObjects(...), 2 creates
  • :343new SqlDriver(cell.config()), drop table if exists, initObjects(...), 1 create

Neither carries a budget, so both inherit the 5000ms default for work that is strictly heavier
than the it()s they feed. #13902 correctly excluded this file's two it() blocks (they only
query an already-open connection), but excluding the it()s left the file's real live cost
unbudgeted — the cost simply lives in the hook.

The package already answers this shape elsewhere: sql-driver-diagnostic-value-probe.test.ts:335
carries }, 60_000) on exactly this kind of beforeAll. Measured across the package, 5 of the
6 hook-level budgets are 60_000.

Why this is a separate card rather than a rider

Different unit of change (a hook budget, and a population outside the card's wrapper), and the
two interact: whether Population B wants hook budgets or something else affects the cost-model
argument #13902 used to exclude those files' it() blocks. Folding either into #13902's PR
would have been the silent package-wide creep that card's own dispatch order ruled out.

Related


Generated by Claude Code

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
     blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
    }
    } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
    })();
    (function(){
    try {
    var __m = "github.com";
    var __re = new RegExp('^' + "github\\.com" + '
    
    Skip to content

    driver-sql: live-DDL work still on vitest's 5000ms default outside #13902's scoping — 4 it() blocks beyond declareDialectCell, and 2 beforeAll hooks #14100

    Description

    @claude

    Filed while implementing #13902 (its A2.3 instruction: report same-shaped live-DDL tests
    outside the card's scoping before folding any in). Unassigned: recording only.

    #13902 scoped itself to it(...) blocks nested in a declareDialectCell(...) callback, and
    that scoping was right for what it fixed. Two adjacent populations in the same package do the
    same live connect/DDL work on vitest's inherited 5000ms default and fall outside it. Both were
    found structurally (TypeScript AST over packages/drivers/driver-sql/src/*.test.ts), and the
    instrument carries a firing control: the same walk returns the 2 budgets that landed on
    sql-driver-13056-orphan-shadow-column-cleanup.test.ts, so a zero elsewhere is a reading
    rather than a broken expression.

    Population A — live-DDL it() outside declareDialectCell(...)

    Four it(...) blocks construct a driver against a live Postgres cell and carry no explicit
    budget. Classified by reading each new SqlDriver(...) argument rather than by inferring from
    the enclosing file:

    LocationGateDriver config
    live-dialect-matrix.isolation.test.ts:281it.skipIf(!PG_CELL.available)PG_CELL.config()
    live-dialect-matrix.isolation.test.ts:314it.skipIf(!PG_CELL.available)PG_CELL.config()
    sql-driver-autonumber-cold-race.test.ts:159it.skipIf(!pgCell.available)pgCell.config()
    sql-driver-json-binding-without-ddl.test.ts:173it{ ...PG_CELL.config(), schemaMode: 'validate-only' }

    The first two also call initObjects(...), so they are the full connect/DDL/read-back shape
    #13688 measured. The other 42 outside-cell it()s that construct a driver are embedded SQLite
    (dialectCell('sqlite').config() or a better-sqlite3 :memory: literal) and are correctly on
    the fast default — they are not part of this.

    Population B — unbudgeted beforeAll hooks doing live connect + DDL + writes

    sql-driver-backend-fault-envelope.test.ts has two beforeAll hooks that each open a live
    driver, run initObjects(...), and insert rows:

    • :160new SqlDriver(cell.config()), two drop table if exists, initObjects(...), 2 creates
    • :343new SqlDriver(cell.config()), drop table if exists, initObjects(...), 1 create

    Neither carries a budget, so both inherit the 5000ms default for work that is strictly heavier
    than the it()s they feed. #13902 correctly excluded this file's two it() blocks (they only
    query an already-open connection), but excluding the it()s left the file's real live cost
    unbudgeted — the cost simply lives in the hook.

    The package already answers this shape elsewhere: sql-driver-diagnostic-value-probe.test.ts:335
    carries }, 60_000) on exactly this kind of beforeAll. Measured across the package, 5 of the
    6 hook-level budgets are 60_000.

    Why this is a separate card rather than a rider

    Different unit of change (a hook budget, and a population outside the card's wrapper), and the
    two interact: whether Population B wants hook budgets or something else affects the cost-model
    argument #13902 used to exclude those files' it() blocks. Folding either into #13902's PR
    would have been the silent package-wide creep that card's own dispatch order ruled out.

    Related


    Generated by Claude Code

    Metadata

    Metadata

    Assignees

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
      Skip to content

      driver-sql: live-DDL work still on vitest's 5000ms default outside #13902's scoping — 4 it() blocks beyond declareDialectCell, and 2 beforeAll hooks #14100

      Description

      @claude

      Filed while implementing #13902 (its A2.3 instruction: report same-shaped live-DDL tests
      outside the card's scoping before folding any in). Unassigned: recording only.

      #13902 scoped itself to it(...) blocks nested in a declareDialectCell(...) callback, and
      that scoping was right for what it fixed. Two adjacent populations in the same package do the
      same live connect/DDL work on vitest's inherited 5000ms default and fall outside it. Both were
      found structurally (TypeScript AST over packages/drivers/driver-sql/src/*.test.ts), and the
      instrument carries a firing control: the same walk returns the 2 budgets that landed on
      sql-driver-13056-orphan-shadow-column-cleanup.test.ts, so a zero elsewhere is a reading
      rather than a broken expression.

      Population A — live-DDL it() outside declareDialectCell(...)

      Four it(...) blocks construct a driver against a live Postgres cell and carry no explicit
      budget. Classified by reading each new SqlDriver(...) argument rather than by inferring from
      the enclosing file:

      LocationGateDriver config
      live-dialect-matrix.isolation.test.ts:281it.skipIf(!PG_CELL.available)PG_CELL.config()
      live-dialect-matrix.isolation.test.ts:314it.skipIf(!PG_CELL.available)PG_CELL.config()
      sql-driver-autonumber-cold-race.test.ts:159it.skipIf(!pgCell.available)pgCell.config()
      sql-driver-json-binding-without-ddl.test.ts:173it{ ...PG_CELL.config(), schemaMode: 'validate-only' }

      The first two also call initObjects(...), so they are the full connect/DDL/read-back shape
      #13688 measured. The other 42 outside-cell it()s that construct a driver are embedded SQLite
      (dialectCell('sqlite').config() or a better-sqlite3 :memory: literal) and are correctly on
      the fast default — they are not part of this.

      Population B — unbudgeted beforeAll hooks doing live connect + DDL + writes

      sql-driver-backend-fault-envelope.test.ts has two beforeAll hooks that each open a live
      driver, run initObjects(...), and insert rows:

      • :160new SqlDriver(cell.config()), two drop table if exists, initObjects(...), 2 creates
      • :343new SqlDriver(cell.config()), drop table if exists, initObjects(...), 1 create

      Neither carries a budget, so both inherit the 5000ms default for work that is strictly heavier
      than the it()s they feed. #13902 correctly excluded this file's two it() blocks (they only
      query an already-open connection), but excluding the it()s left the file's real live cost
      unbudgeted — the cost simply lives in the hook.

      The package already answers this shape elsewhere: sql-driver-diagnostic-value-probe.test.ts:335
      carries }, 60_000) on exactly this kind of beforeAll. Measured across the package, 5 of the
      6 hook-level budgets are 60_000.

      Why this is a separate card rather than a rider

      Different unit of change (a hook budget, and a population outside the card's wrapper), and the
      two interact: whether Population B wants hook budgets or something else affects the cost-model
      argument #13902 used to exclude those files' it() blocks. Folding either into #13902's PR
      would have been the silent package-wide creep that card's own dispatch order ruled out.

      Related


      Generated by Claude Code

      Metadata

      Metadata

      Assignees

      Type

      No type

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions

        , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
        Skip to content

        driver-sql: live-DDL work still on vitest's 5000ms default outside #13902's scoping — 4 it() blocks beyond declareDialectCell, and 2 beforeAll hooks #14100

        Description

        @claude

        Filed while implementing #13902 (its A2.3 instruction: report same-shaped live-DDL tests
        outside the card's scoping before folding any in). Unassigned: recording only.

        #13902 scoped itself to it(...) blocks nested in a declareDialectCell(...) callback, and
        that scoping was right for what it fixed. Two adjacent populations in the same package do the
        same live connect/DDL work on vitest's inherited 5000ms default and fall outside it. Both were
        found structurally (TypeScript AST over packages/drivers/driver-sql/src/*.test.ts), and the
        instrument carries a firing control: the same walk returns the 2 budgets that landed on
        sql-driver-13056-orphan-shadow-column-cleanup.test.ts, so a zero elsewhere is a reading
        rather than a broken expression.

        Population A — live-DDL it() outside declareDialectCell(...)

        Four it(...) blocks construct a driver against a live Postgres cell and carry no explicit
        budget. Classified by reading each new SqlDriver(...) argument rather than by inferring from
        the enclosing file:

        LocationGateDriver config
        live-dialect-matrix.isolation.test.ts:281it.skipIf(!PG_CELL.available)PG_CELL.config()
        live-dialect-matrix.isolation.test.ts:314it.skipIf(!PG_CELL.available)PG_CELL.config()
        sql-driver-autonumber-cold-race.test.ts:159it.skipIf(!pgCell.available)pgCell.config()
        sql-driver-json-binding-without-ddl.test.ts:173it{ ...PG_CELL.config(), schemaMode: 'validate-only' }

        The first two also call initObjects(...), so they are the full connect/DDL/read-back shape
        #13688 measured. The other 42 outside-cell it()s that construct a driver are embedded SQLite
        (dialectCell('sqlite').config() or a better-sqlite3 :memory: literal) and are correctly on
        the fast default — they are not part of this.

        Population B — unbudgeted beforeAll hooks doing live connect + DDL + writes

        sql-driver-backend-fault-envelope.test.ts has two beforeAll hooks that each open a live
        driver, run initObjects(...), and insert rows:

        • :160new SqlDriver(cell.config()), two drop table if exists, initObjects(...), 2 creates
        • :343new SqlDriver(cell.config()), drop table if exists, initObjects(...), 1 create

        Neither carries a budget, so both inherit the 5000ms default for work that is strictly heavier
        than the it()s they feed. #13902 correctly excluded this file's two it() blocks (they only
        query an already-open connection), but excluding the it()s left the file's real live cost
        unbudgeted — the cost simply lives in the hook.

        The package already answers this shape elsewhere: sql-driver-diagnostic-value-probe.test.ts:335
        carries }, 60_000) on exactly this kind of beforeAll. Measured across the package, 5 of the
        6 hook-level budgets are 60_000.

        Why this is a separate card rather than a rider

        Different unit of change (a hook budget, and a population outside the card's wrapper), and the
        two interact: whether Population B wants hook budgets or something else affects the cost-model
        argument #13902 used to exclude those files' it() blocks. Folding either into #13902's PR
        would have been the silent package-wide creep that card's own dispatch order ruled out.

        Related


        Generated by Claude Code

        Metadata

        Metadata

        Assignees

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
          Skip to content

          driver-sql: live-DDL work still on vitest's 5000ms default outside #13902's scoping — 4 it() blocks beyond declareDialectCell, and 2 beforeAll hooks #14100

          Description

          @claude

          Filed while implementing #13902 (its A2.3 instruction: report same-shaped live-DDL tests
          outside the card's scoping before folding any in). Unassigned: recording only.

          #13902 scoped itself to it(...) blocks nested in a declareDialectCell(...) callback, and
          that scoping was right for what it fixed. Two adjacent populations in the same package do the
          same live connect/DDL work on vitest's inherited 5000ms default and fall outside it. Both were
          found structurally (TypeScript AST over packages/drivers/driver-sql/src/*.test.ts), and the
          instrument carries a firing control: the same walk returns the 2 budgets that landed on
          sql-driver-13056-orphan-shadow-column-cleanup.test.ts, so a zero elsewhere is a reading
          rather than a broken expression.

          Population A — live-DDL it() outside declareDialectCell(...)

          Four it(...) blocks construct a driver against a live Postgres cell and carry no explicit
          budget. Classified by reading each new SqlDriver(...) argument rather than by inferring from
          the enclosing file:

          LocationGateDriver config
          live-dialect-matrix.isolation.test.ts:281it.skipIf(!PG_CELL.available)PG_CELL.config()
          live-dialect-matrix.isolation.test.ts:314it.skipIf(!PG_CELL.available)PG_CELL.config()
          sql-driver-autonumber-cold-race.test.ts:159it.skipIf(!pgCell.available)pgCell.config()
          sql-driver-json-binding-without-ddl.test.ts:173it{ ...PG_CELL.config(), schemaMode: 'validate-only' }

          The first two also call initObjects(...), so they are the full connect/DDL/read-back shape
          #13688 measured. The other 42 outside-cell it()s that construct a driver are embedded SQLite
          (dialectCell('sqlite').config() or a better-sqlite3 :memory: literal) and are correctly on
          the fast default — they are not part of this.

          Population B — unbudgeted beforeAll hooks doing live connect + DDL + writes

          sql-driver-backend-fault-envelope.test.ts has two beforeAll hooks that each open a live
          driver, run initObjects(...), and insert rows:

          • :160new SqlDriver(cell.config()), two drop table if exists, initObjects(...), 2 creates
          • :343new SqlDriver(cell.config()), drop table if exists, initObjects(...), 1 create

          Neither carries a budget, so both inherit the 5000ms default for work that is strictly heavier
          than the it()s they feed. #13902 correctly excluded this file's two it() blocks (they only
          query an already-open connection), but excluding the it()s left the file's real live cost
          unbudgeted — the cost simply lives in the hook.

          The package already answers this shape elsewhere: sql-driver-diagnostic-value-probe.test.ts:335
          carries }, 60_000) on exactly this kind of beforeAll. Measured across the package, 5 of the
          6 hook-level budgets are 60_000.

          Why this is a separate card rather than a rider

          Different unit of change (a hook budget, and a population outside the card's wrapper), and the
          two interact: whether Population B wants hook budgets or something else affects the cost-model
          argument #13902 used to exclude those files' it() blocks. Folding either into #13902's PR
          would have been the silent package-wide creep that card's own dispatch order ruled out.

          Related


          Generated by Claude Code

          Metadata

          Metadata

          Assignees

          Type

          No type

          Projects

          No projects

            Milestone

            No milestone

            Relationships

            None yet

            Development

            No branches or pull requests

            Issue actions

            , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
            Skip to content

            driver-sql: live-DDL work still on vitest's 5000ms default outside #13902's scoping — 4 it() blocks beyond declareDialectCell, and 2 beforeAll hooks #14100

            Description

            @claude

            Filed while implementing #13902 (its A2.3 instruction: report same-shaped live-DDL tests
            outside the card's scoping before folding any in). Unassigned: recording only.

            #13902 scoped itself to it(...) blocks nested in a declareDialectCell(...) callback, and
            that scoping was right for what it fixed. Two adjacent populations in the same package do the
            same live connect/DDL work on vitest's inherited 5000ms default and fall outside it. Both were
            found structurally (TypeScript AST over packages/drivers/driver-sql/src/*.test.ts), and the
            instrument carries a firing control: the same walk returns the 2 budgets that landed on
            sql-driver-13056-orphan-shadow-column-cleanup.test.ts, so a zero elsewhere is a reading
            rather than a broken expression.

            Population A — live-DDL it() outside declareDialectCell(...)

            Four it(...) blocks construct a driver against a live Postgres cell and carry no explicit
            budget. Classified by reading each new SqlDriver(...) argument rather than by inferring from
            the enclosing file:

            LocationGateDriver config
            live-dialect-matrix.isolation.test.ts:281it.skipIf(!PG_CELL.available)PG_CELL.config()
            live-dialect-matrix.isolation.test.ts:314it.skipIf(!PG_CELL.available)PG_CELL.config()
            sql-driver-autonumber-cold-race.test.ts:159it.skipIf(!pgCell.available)pgCell.config()
            sql-driver-json-binding-without-ddl.test.ts:173it{ ...PG_CELL.config(), schemaMode: 'validate-only' }

            The first two also call initObjects(...), so they are the full connect/DDL/read-back shape
            #13688 measured. The other 42 outside-cell it()s that construct a driver are embedded SQLite
            (dialectCell('sqlite').config() or a better-sqlite3 :memory: literal) and are correctly on
            the fast default — they are not part of this.

            Population B — unbudgeted beforeAll hooks doing live connect + DDL + writes

            sql-driver-backend-fault-envelope.test.ts has two beforeAll hooks that each open a live
            driver, run initObjects(...), and insert rows:

            • :160new SqlDriver(cell.config()), two drop table if exists, initObjects(...), 2 creates
            • :343new SqlDriver(cell.config()), drop table if exists, initObjects(...), 1 create

            Neither carries a budget, so both inherit the 5000ms default for work that is strictly heavier
            than the it()s they feed. #13902 correctly excluded this file's two it() blocks (they only
            query an already-open connection), but excluding the it()s left the file's real live cost
            unbudgeted — the cost simply lives in the hook.

            The package already answers this shape elsewhere: sql-driver-diagnostic-value-probe.test.ts:335
            carries }, 60_000) on exactly this kind of beforeAll. Measured across the package, 5 of the
            6 hook-level budgets are 60_000.

            Why this is a separate card rather than a rider

            Different unit of change (a hook budget, and a population outside the card's wrapper), and the
            two interact: whether Population B wants hook budgets or something else affects the cost-model
            argument #13902 used to exclude those files' it() blocks. Folding either into #13902's PR
            would have been the silent package-wide creep that card's own dispatch order ruled out.

            Related


            Generated by Claude Code

            Metadata

            Metadata

            Assignees

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              driver-sql: live-DDL work still on vitest's 5000ms default outside #13902's scoping — 4 it() blocks beyond declareDialectCell, and 2 beforeAll hooks #14100

              Description

              @claude

              Filed while implementing #13902 (its A2.3 instruction: report same-shaped live-DDL tests
              outside the card's scoping before folding any in). Unassigned: recording only.

              #13902 scoped itself to it(...) blocks nested in a declareDialectCell(...) callback, and
              that scoping was right for what it fixed. Two adjacent populations in the same package do the
              same live connect/DDL work on vitest's inherited 5000ms default and fall outside it. Both were
              found structurally (TypeScript AST over packages/drivers/driver-sql/src/*.test.ts), and the
              instrument carries a firing control: the same walk returns the 2 budgets that landed on
              sql-driver-13056-orphan-shadow-column-cleanup.test.ts, so a zero elsewhere is a reading
              rather than a broken expression.

              Population A — live-DDL it() outside declareDialectCell(...)

              Four it(...) blocks construct a driver against a live Postgres cell and carry no explicit
              budget. Classified by reading each new SqlDriver(...) argument rather than by inferring from
              the enclosing file:

              LocationGateDriver config
              live-dialect-matrix.isolation.test.ts:281it.skipIf(!PG_CELL.available)PG_CELL.config()
              live-dialect-matrix.isolation.test.ts:314it.skipIf(!PG_CELL.available)PG_CELL.config()
              sql-driver-autonumber-cold-race.test.ts:159it.skipIf(!pgCell.available)pgCell.config()
              sql-driver-json-binding-without-ddl.test.ts:173it{ ...PG_CELL.config(), schemaMode: 'validate-only' }

              The first two also call initObjects(...), so they are the full connect/DDL/read-back shape
              #13688 measured. The other 42 outside-cell it()s that construct a driver are embedded SQLite
              (dialectCell('sqlite').config() or a better-sqlite3 :memory: literal) and are correctly on
              the fast default — they are not part of this.

              Population B — unbudgeted beforeAll hooks doing live connect + DDL + writes

              sql-driver-backend-fault-envelope.test.ts has two beforeAll hooks that each open a live
              driver, run initObjects(...), and insert rows:

              • :160new SqlDriver(cell.config()), two drop table if exists, initObjects(...), 2 creates
              • :343new SqlDriver(cell.config()), drop table if exists, initObjects(...), 1 create

              Neither carries a budget, so both inherit the 5000ms default for work that is strictly heavier
              than the it()s they feed. #13902 correctly excluded this file's two it() blocks (they only
              query an already-open connection), but excluding the it()s left the file's real live cost
              unbudgeted — the cost simply lives in the hook.

              The package already answers this shape elsewhere: sql-driver-diagnostic-value-probe.test.ts:335
              carries }, 60_000) on exactly this kind of beforeAll. Measured across the package, 5 of the
              6 hook-level budgets are 60_000.

              Why this is a separate card rather than a rider

              Different unit of change (a hook budget, and a population outside the card's wrapper), and the
              two interact: whether Population B wants hook budgets or something else affects the cost-model
              argument #13902 used to exclude those files' it() blocks. Folding either into #13902's PR
              would have been the silent package-wide creep that card's own dispatch order ruled out.

              Related


              Generated by Claude Code

              Metadata

              Metadata

              Assignees

              Type

              No type

              Projects

              No projects

                Milestone

                No milestone

                Relationships

                None yet

                Development

                No branches or pull requests

                Issue actions

                , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                Skip to content

                driver-sql: live-DDL work still on vitest's 5000ms default outside #13902's scoping — 4 it() blocks beyond declareDialectCell, and 2 beforeAll hooks #14100

                Description

                @claude

                Filed while implementing #13902 (its A2.3 instruction: report same-shaped live-DDL tests
                outside the card's scoping before folding any in). Unassigned: recording only.

                #13902 scoped itself to it(...) blocks nested in a declareDialectCell(...) callback, and
                that scoping was right for what it fixed. Two adjacent populations in the same package do the
                same live connect/DDL work on vitest's inherited 5000ms default and fall outside it. Both were
                found structurally (TypeScript AST over packages/drivers/driver-sql/src/*.test.ts), and the
                instrument carries a firing control: the same walk returns the 2 budgets that landed on
                sql-driver-13056-orphan-shadow-column-cleanup.test.ts, so a zero elsewhere is a reading
                rather than a broken expression.

                Population A — live-DDL it() outside declareDialectCell(...)

                Four it(...) blocks construct a driver against a live Postgres cell and carry no explicit
                budget. Classified by reading each new SqlDriver(...) argument rather than by inferring from
                the enclosing file:

                LocationGateDriver config
                live-dialect-matrix.isolation.test.ts:281it.skipIf(!PG_CELL.available)PG_CELL.config()
                live-dialect-matrix.isolation.test.ts:314it.skipIf(!PG_CELL.available)PG_CELL.config()
                sql-driver-autonumber-cold-race.test.ts:159it.skipIf(!pgCell.available)pgCell.config()
                sql-driver-json-binding-without-ddl.test.ts:173it{ ...PG_CELL.config(), schemaMode: 'validate-only' }

                The first two also call initObjects(...), so they are the full connect/DDL/read-back shape
                #13688 measured. The other 42 outside-cell it()s that construct a driver are embedded SQLite
                (dialectCell('sqlite').config() or a better-sqlite3 :memory: literal) and are correctly on
                the fast default — they are not part of this.

                Population B — unbudgeted beforeAll hooks doing live connect + DDL + writes

                sql-driver-backend-fault-envelope.test.ts has two beforeAll hooks that each open a live
                driver, run initObjects(...), and insert rows:

                • :160new SqlDriver(cell.config()), two drop table if exists, initObjects(...), 2 creates
                • :343new SqlDriver(cell.config()), drop table if exists, initObjects(...), 1 create

                Neither carries a budget, so both inherit the 5000ms default for work that is strictly heavier
                than the it()s they feed. #13902 correctly excluded this file's two it() blocks (they only
                query an already-open connection), but excluding the it()s left the file's real live cost
                unbudgeted — the cost simply lives in the hook.

                The package already answers this shape elsewhere: sql-driver-diagnostic-value-probe.test.ts:335
                carries }, 60_000) on exactly this kind of beforeAll. Measured across the package, 5 of the
                6 hook-level budgets are 60_000.

                Why this is a separate card rather than a rider

                Different unit of change (a hook budget, and a population outside the card's wrapper), and the
                two interact: whether Population B wants hook budgets or something else affects the cost-model
                argument #13902 used to exclude those files' it() blocks. Folding either into #13902's PR
                would have been the silent package-wide creep that card's own dispatch order ruled out.

                Related


                Generated by Claude Code

                Metadata

                Metadata

                Assignees

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions