Skip to content

12 Virgin.root scripts genuinely broken in DB (fail to compile in place); webBrowser.openURL + cleanRoot block #855 #879

Open

Description

@jsavin

Rationale

12 scripts in Virgin.root are GENUINELY BROKEN in the stored DB (fail to compile in place, independent of any install; reinstall does NOT repair them). These block Phase 3.4 startup stabilization (#855 blocker especially webBrowser.openURL and userland.cleanRoot). Source-level repair from .ut mirrors or legacy Frontier 9.5 package is required. This repair-sweep unblocks #855.

Current State

Confirmed genuinely broken scripts (verified in place, 2026-08-10):

Characteristics:

Impact:

Desired Outcome

Repair 12 broken scripts from authoritative sources:

  1. Source-level repair from .ut mirrors (if intact)
  2. OR restore from legacy Frontier 9.5 package (baseline lead in mainResponder.root mirror diverged from shipped binary (62 code lines); authoritative source unclear — decision needed #868)
  3. Verify: all 12 compile in place after repair
  4. Unblock Virgin.root ships firstRootRun=false, breaking firstRootRun contract; 9 integration tests depend on skipped init #855 (first-run flow)

Recommendation

Step 1: Determine source for each script

Step 2: Repair via protocol

  • Use protocol-edit discipline (script.newScriptObject)
  • Install repaired source
  • Verify: script compiles in place after install

Step 3: Priority order

  1. Critical: webBrowser.openURL (unblock Virgin.root ships firstRootRun=false, breaking firstRootRun contract; 9 integration tests depend on skipped init #855), userland.cleanRoot (core contract)
  2. High: string.nthChar, string.isValidUrl (utilities)
  3. Medium: quickTime.*, Filemaker example
  4. Skip: webserver syntaxError sample (intentionally broken for examples)

Exit Criteria

Related Context

Distinct from Other Issues

Activity

  1. added
    priority/p1High priority - address soon
    scope/medium1-2 weeks, requires design work
    type/bugDefect in existing functionality, needs fix
    workstream/runtime-coreRuntime architecture, memory, lifecycle, and global context
    on Aug 11, 2026
  2. jsavin commented on Aug 11, 2026

    @jsavin
    OwnerAuthor

    Maintainer attestation (2026-08-11, first-person): UserLand never shipped a verb that does not compile. Working hypothesis therefore REFRAMED: these 12 scripts were corrupted by MODERNIZATION-ERA passes, not shipped broken. Prime suspects: (a) the pre-#621 install bug (our langstripstructuremarkers defect doubled braces on every install until #621/#622); (b) the v6->v7 migration if it mishandled MacRoman high-bit bytes anywhere (same encoding class as #880); (c) UT-sync imports / protocol edit sessions during modernization. A provenance investigation is running: for each script, binary-search the committed history of databases/Virgin.root for the first non-compiling version, hex-diff the stored source across the boundary, and classify the damage signature per pass. Output feeds the repair unit (repair-from-mirror vs repair-from-legacy-9.5-package per script) AND determines whether any corrupting pass is still live. If any script proves broken in the EARLIEST committed Virgin.root, that will be flagged explicitly.

  3. jsavin commented on Aug 11, 2026

    @jsavin
    OwnerAuthor

    MAJOR CORRECTION — 12 Broken Scripts Decompose Completely

    Full provenance investigation complete (findings archived). The "12 broken scripts" are NOT monolithic:

    (a) 3 CORRUPTED BY MODERNIZATION PASSES (maintainer's attestation vindicated):

    (b) 6 NOT BROKEN (=#882, correcting misclassification):

    • Byte-intact kernel() glue for verbs unregistered in headless build
    • UserLand shipped them working on Mac
    • Headless verb registration issue, not script corruption

    (c) 3 PRE-EXISTING UserLand-era (pristine v6 ancestor from 2025-08-09, unchanged by migration):

    • Filemaker examples.transactions + userland.oldstuff.Frontier3toAretha: documentation/example outlines with separator/prose lines, never meant to compile (mirrors equally broken, no intact source exists)
    • webserver samples.syntaxError: deliberate fixture

    CRITICAL CORRECTION TO PRIOR TEXT:

    • "reinstall does NOT repair them" is FALSE for openUrl/isValidUrl

      • Today's installer normalizes LF→CR on reinstall
      • Both repair via script.newScriptObject (confirmed independently twice)
      • No live corruption risk at HEAD
    • Both corrupting mechanisms are FIXED at today's HEAD (13103f0 and LF handling corrected)

    REPAIR GUIDANCE:

    Related: #881 (LF-node corruption + repair methodology), #882 (verb registration), ROOT_BUILD_FROM_SOURCE_PLAN.md (Step 5 repair-in-text)

  4. added a commit that references this issue on Aug 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority/p1High priority - address soonscope/medium1-2 weeks, requires design worktype/bugDefect in existing functionality, needs fixworkstream/runtime-coreRuntime architecture, memory, lifecycle, and global context

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions