Skip to content

[campaign #254] STEP 3 — PORTS: physical migration of "portable now" subset, smallest-first #271

Description

@hyperpolymath

Part of #254. Blocked by step 2.

Goal

Execute the physical .js/.jsx → .affine ports for every file STEP 2 placed in the portable now bucket. Smallest-first to bank throughput and validate per-idiom-cluster patterns before tackling the long tail.

Expected idiom clusters (from #254 LAYER 3)

Many JS files likely fall in 1-2 idiom clusters; STEP 2's bucket comment should confirm:

  • Deno CLI scripts (small, .ts-equivalent surface)
  • VSCode extension JS (covered by Vscode.affine 55 fns)
  • MCP glue (likely stays as JS — async stdio loop, protocol) — should NOT appear in this bucket; if it does, re-triage
  • WebExtension scripts (blocked on host-API bindings, same as TS/RS) — should NOT appear in this bucket

If any of the "should NOT appear" categories show up in portable now, treat as a triage-tool bug and fix STEP 2 before porting them.

Top backlog candidates (informational, from #254 inventory)

The biggest backlog buckets are boj-server (144), panll (142), stapeln (105), proven-servers/idaptik (103). Smallest-first means starting elsewhere; the per-repo totals here are for scope tracking, not port order. STEP 2's output is the actual port order.

Acceptance

  • Every file in STEP 2's portable now bucket is either:
    • Ported (.affine builds, original .js/.jsx removed, downstream build wiring updated)
    • Re-classified (moved out of portable now, with STEP 2's triage tool updated to reflect the rule that placed it correctly)
  • Per-PR ownership gate on every PR (the gh repo view ... --json owner,isFork gate)
  • PRs grouped by repo, smallest-files-first within each repo
  • Carve-out classes from STEP 1 respected (no port attempts on vscode/**, **/deps/**, etc. — those belong to STEPs 4-5 or are permanent residue)
  • Updated bucket-count comment on [campaign] Unnecessarily-JavaScript → AffineScript estate migration (UMBRELLA) #254 once this step's PRs land (delta vs STEP 2's initial counts)

Sequencing

Blocks: nothing — but feeds the STEP 5 re-triage with empirical patterns.
Blocked by: STEP 2 (without the portable now bucket, this step has no scope).

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

    meta:campaignCoordinated multi-repo push with a defined end statemigrationPorting between languages or toolchains (e.g. -> AffineScript)

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions