Repository navigation
[campaign #252] STEP 8 — MEGAPORT: idaptik (516, was 1235) + panll (726) batched conversion #279
Copy link
Copy link
Open
Labels
meta:campaignCoordinated multi-repo push with a defined end stateCoordinated multi-repo push with a defined end statemigrationPorting between languages or toolchains (e.g. -> AffineScript)Porting between languages or toolchains (e.g. -> AffineScript)priority:p3Low - nice to haveLow - nice to havescope:estateAffects many or all repos across the estateAffects many or all repos across the estatestatus:blockedCannot proceed until a dependency clearsCannot proceed until a dependency clears
Description
Part of #252. Blocked by step 7.
Goal
Port the two single-largest repos in the estate: idaptik (1,235 files) + panll (726 files) — together = 1,961 files = ~50% of the entire 3,996-file backlog.
Scale context (from umbrella)
| Metric | This step | Whole campaign |
|---|---|---|
| Files | 1,961 | 3,996 |
| % of total | 49% | 100% |
| Largest single | idaptik 1,235 | idaptik 1,235 |
Per umbrella scale summary, the whole campaign is "multi-month". Realistic share for STEP 8: many sessions, many PRs. Likely 50-150 PRs alone for these two repos combined.
Strategy
- Per-subsystem batching essential — these repos are too large for whole-repo PRs
- For idaptik: align with the existing
idaptik dlc-reversibleAS pilot (PR Wave 2: Nix-mirror retirement (LowLevel.jl…a2ml-rs) #107 merged) — that proved the upstream framework-binding development path. Lean on it. - For panll: align with
panll panel-clades pivot(ADR-0001 SoT=panel-clades) — coordinate so RS→AS port doesn't conflict with concurrent clades work - Per-PR ownership gate (
owner=hyperpolymath,isFork=false) - Track per-subsystem completion in memory tracker
Cross-references
- idaptik dlc-reversible AS pilot (session_2026_05_28_idaptik_dlc_reversible_port.md) — PR Wave 2: Nix-mirror retirement (LowLevel.jl…a2ml-rs) #107 MERGED
- panll panel-clades pivot (project_panll_panel_clades_pivot.md) — coordination required
- AS bindings top-50 roadmap ([campaign #239] STEP 6 — PLUGIN-HOST BINDINGS: cross-ref AS top-50 roadmap #245 cross-ref) — idaptik T1 binding gaps may surface here
Acceptance
- idaptik 1,235 files migrated (across many PRs across many sessions)
- panll 726 files migrated (coordinated with panel-clades work)
- Per-subsystem batches landed under per-PR ownership gate
- Memory tracker updated with multi-month completion track
Sequencing
Blocks: campaign completion. STEP 9 still parallel-runnable.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
meta:campaignCoordinated multi-repo push with a defined end stateCoordinated multi-repo push with a defined end statemigrationPorting between languages or toolchains (e.g. -> AffineScript)Porting between languages or toolchains (e.g. -> AffineScript)priority:p3Low - nice to haveLow - nice to havescope:estateAffects many or all repos across the estateAffects many or all repos across the estatestatus:blockedCannot proceed until a dependency clearsCannot proceed until a dependency clears
Activity
hyperpolymath commentedon May 30, 2026
STEP 8 — Megaport: progress sweep 2026-05-30.
Current state vs. issue body (filed 2026-05-28):
idaptik progress drivers
panll standing state
panll remains at 726 files — no megaport work has started yet. Per memory's standing instruction,
panll/.claude/CLAUDE.mdis hands-off in sweeps (owner reverted panll#60 on 2026-05-30). The clade-portal subdirectory has 6 files; the bulk (720) lives undersrc/.Update
Issue body still shows the 1,961 / 1,235 / 726 numbers from 2026-05-28. The 58% idaptik reduction is real and tracks campaign progress. Keeping this STEP OPEN — most of panll + remaining idaptik tail still ahead — but adding this comment as the canonical progress snapshot. Will re-survey when panll work begins or further idaptik PRs land.
Cross-ref: STEP 3 #267 closed (seed proven via idaptik#107), STEP 4 #269 closed (stdlib substantially done), STEP 1 #260 closed (Layer-1 in via hypatia#391 + standards#285).
[-][campaign #252] STEP 8 — MEGAPORT: idaptik (1235) + panll (726) batched conversion[/-][+][campaign #252] STEP 8 — MEGAPORT: idaptik (516, was 1235) + panll (726) batched conversion[/+]hyperpolymath commentedon May 31, 2026
STEP 8 — Megaport progress sweep 2026-05-31 AM
Following on from the 2026-05-30 PM sweep (which moved idaptik 1,235 → 516).
This session: targeted first-compilable-Mode-A batch + the upstream
AffineScript stdlib unblock needed to make those compiles real.
What landed (3 PRs)
pub-marks 38 documented stdlib fns instring.affine+collections.affine. Unblocks consumers that needstring::starts_with,collections::any, etc. — was the resolution blocker.migration/shared/PortNames.affine(addsisCoprocessorPortusing newly-pub stdlib). First compilable Mode-A file inmigration/shared/. Adds paritySTATUS.mdfor all 10 Wave-3 pilot files.migration/modules/*.affine. All 11 type-check. 715 LoC of.resported. First compilable Mode-A batch in panll.Current parity counts
.ressource.affineMode-A (passesaffinescript check).affineMode-B (design demo, doesn't compile)Replacement of .res still pending
None of the 12 Mode-A
.affinefiles yet replace their.ressource inthe build — both repos still compile
src/**/*.resto.res.mjsvia theroot
rescript.json. Replacement requires:codegen for stdlib + select consumers; module-tree codegen for arbitrary
user files is the gap. Tracked AS-side.
imports thecompiled .res.mjs needs to switch to the .affine-compiled equivalent.
Mechanical when (1) lands.
The 12 Mode-A files discharge the design risk for these subsystems —
when (1) lands, promotion is a one-PR cutover per subsystem, not an
11-file rewrite.
What's left structurally
The 715 remaining
.resfiles in panll (and 509 in idaptik) breakdown into these blocker categories:
Js.*interopuse deno::{...}or carve-outsuseFollow-up issues to consider filing
stdlib/Tea.affineparallel to existingstdlib/Pixi.affine/Motion.affine/PixiSound.affine/PixiUI.affine. Unblocks the entire panll components / update / view tree (~350 files).stdlib/Gossamer.affineextern declarations + Deno-target codegen. Unblocks panll clade-portal (6) + RuntimeBridge / subscriptions (~10), idaptik-ums (11).Will file these AS-side this session or queue for follow-up.
Updated count delta
Keeping STEP 8 OPEN — most of the bulk still ahead and gated on the
framework-binding + codegen blockers above. This session set the
Mode-A path-of-least-resistance baseline (1+11 files, ~715 LoC
ported, design risk discharged for two subsystem-shapes) and the
stdlib visibility unblock that makes future ports tractable.
Cross-refs: affinescript#505, idaptik#110, panll#72.
hyperpolymath commentedon Jun 1, 2026
Status update — AS stdlib codegen landed; campaign waypoint shift (2026-06-01) 📌
For the campaign umbrella tracking here:
What landed (sourced):
What this means for the campaign:
lib/codegen_deno.ml+tests/codegen-deno/*).Action: No new mass-port being kicked off from this post — surfacing the status so campaign waypoints stay accurate. Dependent sub-tickets can re-evaluate parking once they verify their specific blockers are in the "now-closed" set above.
🤖 Cross-estate AS-status sweep on 2026-06-01.
hyperpolymath commentedon Aug 27, 2026
Re-measured 2026-08-27 — both numbers are zero, and that is bad news, not progress
panll.residaptik.resmetadatastician/IDApTIK, and has no.resor.affine)The
panllzero was reached by deletionpanllhas 747.affine— and 726 of them are under 400 bytes, standing 1:1 against the 726 deleted.res. Median size 200 bytes. A complete file, verbatim:That is the whole file. There are 726 of them.
It is not confined to
panll3,138 of 7,180
.affinefiles (43%) across 158 repos are stub-shaped with their sources deleted —rescript1,236,panll726,developer-ecosystem208,affinescript155,ssg-collection143 of 143,proof-burrower143.Recovery is git-history-only, and nothing is lost — but this campaign's completion metric cannot distinguish a port from a deletion.
Filed as #664, which asks for a metric that deletion cannot satisfy. Recommend this issue is not closed on its zero counts.