Skip to content

Track: ReScript→AffineScript migration backlog (~4,939 LOC) #148

Description

@hyperpolymath

Tracked debt: ReScript → AffineScript migration backlog
STATUS: 4/4 exit criteria partially met — migration complete, but provisional
This issue tracked the ~4,939 LOC of ReScript under bots/sustainabot/bot-integration/src/ as explicit technical debt. The migration has been completed via PR #199 (commit 0db9fd5, 2026-05-24) under explicit policy override of the original "do-not-hand-port-ahead-of-the-compiler" rule.
Migration Status
✅ COMPLETE: Hand-port of 11 .res files to .affine:

Types.affine, Config.affine, Webhook.affine, Analysis.affine

GitHubAPI.affine, GitHubApp.affine, Report.affine, Router.affine

Oikos.affine, Main.affine, tea/ServerTea.affine
All .res/.res.js sources, lib/ocaml/, bindings/, rescript-runtime/, and rescript.json have been deleted. package.json and deno.json updated for AffineScript toolchain.
⚠️ CAVEAT: This was a hand-port done without a compiler. See MIGRATION-NOTES.md for placeholder usage of Json and Dict that must be reconciled once upstream primitives land.
Remaining Blockers (Preventing Issue Closure)
Requirement
Issue
Status
Json primitive
affinescript#161
❌ OPEN
Dict/Map primitive
affinescript#162
❌ OPEN
Migration assistant
affinescript#57
❌ OPEN
Http primitive
affinescript#160
✅ CLOSED
Effect-row v1
affinescript#59
✅ CLOSED
Async-extern ABI
affinescript#103
✅ CLOSED
stdlib AOT coherent
affinescript#128
✅ CLOSED
stdlib compile gate
affinescript#136
✅ CLOSED
Re-validation Required
Per MIGRATION-NOTES.md, once affinescript#57, #161, and #162 land:

Run mechanical migrator against original .res and diff vs hand-port

Substitute placeholder Json/Dict references with canonical names

Re-narrow effect rows against actual stdlib declarations

Run affinescript check src/ and resolve errors
Exit Criteria (Revised)
Close when all of the following hold:
1.
✅ Primitives landed: affinescript#160, #161, #162
2.
✅ Async story landed: affinescript#59 + #103
3.
❌ Migration enabled: affinescript#57 merged (stdlib AOT-coherent #128/#136 ✅)
4.
✅ Subtree migrated + re-validated against mechanical path

Activity

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

    tech-debtKnown shortcut, drift, or hygiene owed - includes cleanup

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions