Estate language policy: RS/TS/JS → AffineScript → typed-wasm. This monorepo is the structural consolidation target for scattered hyperpolymath ReScript (estate handover Item #12). It is distinct from:
-
The CI-text guidance sweep (handover Item 9 — complete 2026-05-17).
-
The ReScript→AffineScript port (Epic #7 / Item #8) — blocked on
affinescript#61–64. Do not hand-port ReScript ahead of the compiler.
In-tree, history-preserving relocation. NOT git submodules.
A prior session left a half-finished submodule approach: five
rescript-ecosystem/ stanzas in the parent developer-ecosystem
.gitmodules that did *not correspond to gitlinks (the directories were
already tracked in-tree, git mode 100644, with empty
git submodule status). Those orphan stanzas have been removed; the
directories remain in-tree content. This is the canonical mechanism going
forward, mirroring the v-ecosystem precedent.
Per policy reference-rescript-ecosystem-policy:
-
Per-repo move; delete from source only after the add here is merged/verified (reversible until merge).
-
Preserve FFI / proven adapters outside the aggregate as
connectors/(see connectors/README.adoc). -
Footgun: never bare-delete a source tree without moving it.
Consolidation is partial. ~6,361 real .res files present.
| Location | .res |
Note |
|---|---|---|
|
2985 |
Largest; not yet grouped |
|
176 |
Top-level staging |
|
54 |
Top-level |
|
27 |
Duplicated vs |
|
14+14 |
Duplicated — reconcile |
|
7 |
Populated |
|
0 |
Empty scaffolds awaiting source |
Open structural debt: dedupe top-level packages into packages/<group>/;
populate or remove the empty scaffolds; resolve the README target-vs-actual
gap (README now flagged as target layout, not completed state).
Origin: https://github.com/hyperpolymath/rescript-tea (standalone repo,
clean, on main, fully pushed).
Target: rescript-ecosystem/rescript-tea/ (in-tree, committed).
This package is left to this monorepo as the canonical ReScript TEA home. Ongoing ReScript TEA work happens here, not in the standalone repo.
The source repo and this copy diverged in both directions; neither is a superset. The standalone source repo has therefore NOT been retired (would be irreversible loss). No ReScript toolchain was available in the consolidating session to validate a semantic merge.
Per-module divergence (lines, source ↔ here):
| Module | source | here | Disposition |
|---|---|---|---|
|
405/99 |
201/51 |
source far ahead — needs merge review |
|
388 |
268 ( |
diverged — merge review |
|
354 |
362 |
here ahead — keep here, port source deltas |
|
larger |
smaller |
diverged — per-module merge review |
|
present |
ABSENT |
brought forward (lossless, additive) |
|
present |
ABSENT |
brought forward (validate vs canonical modules) |
|
present |
ABSENT |
brought forward |
This copy additionally carries ~18 Tea modules under src/tea/
(Animationframe, Debug, Keyboard, Mouse, Render, Ssr, Svg, Time, Vdom,
Window, …) that do not exist in the standalone source — i.e. this copy is
the richer base for those.
Source-only governance/metadata forms (.machines_readable/6scm/*.scm,
old .adoc duplicates) are intentionally not carried forward — the
canonical RSR/a2ml scaffold here supersedes them (SCM→a2ml policy).
Toolchain installed at ~/dev/tools/languages/rescript/current
(PATH-per-use). Two committed git merge-conflict markers were found
and fixed (botched merge 992e4b4): rescript.json and package.json
each had <<<<<<< HEAD … ======= … >>>>>>> blocks (HEAD = canonical
src/tea / @rescript/core; other = old flat src / @rescript/react).
Resolved to the canonical side. No .res/.resi carried conflict markers.
Canonical package now builds green: rescript build →
Parsed 75 source files / Compiled 75 modules, exit 0, sources
[{"dir":"src/tea"}].
Brought-forward source-only content does not compile against the
canonical API and is preserved losslessly in
rescript-tea/reconcile/ (NOT in sources), each with a concrete port
task — see rescript-tea/reconcile/README.adoc:
-
Tea_Layout.{res,resi}(~750 LOC) —ReactDOM-coupled; canonical package dropped@rescript/react. Port off ReactDOM. -
test/Tea_{Cmd,Json}_test.res,examples/{02_http,03_swot_dashboard}— written against the standalone repo’s diverged API (Tea_Json.decodeValueabsent here;Tea_Cmd.batchlist-vs-array).
-
✅ Canonical
src/teabuilds green (toolchain-validated). -
✅ Config integrity defects (conflict markers) resolved.
-
Port
reconcile/items to the canonical API; empty that directory. -
Per-module semantic merge of the diverged
src/*(e.g.Tea_Sub405↔201) against the standalone source — needs side-by-side review. -
Resolve the
rescript-tea↔packages/web/teaduplication. -
Then, and only then: per-repo retirement of https://github.com/hyperpolymath/rescript-tea (reversible until that PR merges, and only after developer-ecosystem#69 merges).
Per estate policy, the successor to rescript-tea is affinescript-tea
(an AffineScript TEA implementation), not continued ReScript TEA feature
work. affinescript-tea does not yet exist and must not be hand-ported
now — it is blocked on the same primitives as gitbot-fleet#148:
affinescript#61 (Http.fetch), #62 (Promise), #63 (Json),
#64 (Dict). rescript-tea here is the consolidated legacy base and
the reference for the eventual mechanical port. See
rescript-tea/SUCCESSOR.adoc.
-
Per-module reconcile + retire standalone
rescript-tea(above). -
Dedupe top-level packages into
packages/<group>/; populate/remove empty scaffolds. -
Continue per-repo consolidation of remaining scattered ReScript (estate:
repos~1838,hyperpolymath-archive208,reposystem78.res—gitbot-fleetis blocked by gitbot-fleet#148, do not move). -
Note: parent
developer-ecosystem/.gitmodulesstill carriesv-ecosystem/*stanzas with the same orphan pattern — out of scope here, flagged for the v-ecosystem owner.