Skip to content

PML range ops are INCLUSIVE; a stalled import body can no longer wedge the Add form - #137

Merged
roowus merged 1 commit into
mainfrom
fix/inclusive-splices-and-import-timeout
Aug 30, 2026
Merged

PML range ops are INCLUSIVE; a stalled import body can no longer wedge the Add form#137
roowus merged 1 commit into
mainfrom
fix/inclusive-splices-and-import-timeout

Conversation

@roowus

@roowus roowus commented Aug 30, 2026

Copy link
Copy Markdown
Owner

fix(portal): PML range ops are INCLUSIVE; a stalled import body can no longer wedge the Add form

The 20-mod sweep ("test every pml mod") found two real bugs and one open
defect.

INCLUSIVE RANGES: PolyTypes.js's own doc comments say "Replace code between
2 given tokens. Inclusive." — the anchors are replaced along with the span,
and every real mod's func only makes sense that way. Ours kept the anchors,
so carswitcher's twin splice on "models/car.glb" (func:
window.localStorage.MyCar || "models/car.glb") produced two adjacent
expressions — a syntax error the re-parse gate turned into base-failed. The
first full-library attempt died exactly there. With the fix the same mod set
boots planStatus: applied and the car-model twin is 1/3 (the other two
anchors genuinely match 0 on main; one targets 604.bundle.js).

BODY-READ TIMEOUT: fetchText cleared its 20s abort timer when the response
HEADERS arrived, so a body that never finished streaming hung the import
promise forever — no error, no row, the Add form silently wedged on one bad
CDN connection (observed live). The timer now covers headers through body;
a stalled stream fails as "timed out".

THE OPEN DEFECT (documented in progress.md, not fixed here): sequential
installs stall from the fifth — sometimes writing storage without updating
the library count, sometimes never settling. Solo installs of the same mods
work (ghosttoggle's real id is mrgtmod — two harness generations died
waiting for catalog slugs that never exist as installed ids). Suspect: the
page's import → updateUserMods → refreshRunningSet reload-chain interplay.
Also noted: xenon installs but never loads.

Portal 735 -> 740 tests (inclusive expectations, carswitcher's
distinct-anchor shape, the fetchText body-timeout suite); repo-wide 1,352
green; smoke:pml PASS; smoke typecheck after the last script edit.

…o longer wedge the Add form

The 20-mod sweep ("test every pml mod") found two real bugs and one open
defect.

INCLUSIVE RANGES: PolyTypes.js's own doc comments say "Replace code between
2 given tokens. Inclusive." — the anchors are replaced along with the span,
and every real mod's func only makes sense that way. Ours kept the anchors,
so carswitcher's twin splice on "models/car.glb" (func:
window.localStorage.MyCar || "models/car.glb") produced two adjacent
expressions — a syntax error the re-parse gate turned into base-failed. The
first full-library attempt died exactly there. With the fix the same mod set
boots planStatus: applied and the car-model twin is 1/3 (the other two
anchors genuinely match 0 on main; one targets 604.bundle.js).

BODY-READ TIMEOUT: fetchText cleared its 20s abort timer when the response
HEADERS arrived, so a body that never finished streaming hung the import
promise forever — no error, no row, the Add form silently wedged on one bad
CDN connection (observed live). The timer now covers headers through body;
a stalled stream fails as "timed out".

THE OPEN DEFECT (documented in progress.md, not fixed here): sequential
installs stall from the fifth — sometimes writing storage without updating
the library count, sometimes never settling. Solo installs of the same mods
work (ghosttoggle's real id is mrgtmod — two harness generations died
waiting for catalog slugs that never exist as installed ids). Suspect: the
page's import → updateUserMods → refreshRunningSet reload-chain interplay.
Also noted: xenon installs but never loads.

Portal 735 -> 740 tests (inclusive expectations, carswitcher's
distinct-anchor shape, the fetchText body-timeout suite); repo-wide 1,352
green; smoke:pml PASS; smoke typecheck after the last script edit.
@vercel

vercel Bot commented Aug 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tspml Ready Ready Preview Aug 30, 2026 7:47pm

@roowus
roowus merged commit ffe757e into main Aug 30, 2026
5 checks passed
@roowus
roowus deleted the fix/inclusive-splices-and-import-timeout branch August 30, 2026 19:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant