Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@
"name": "Debug Server",
"runtimeExecutable": "node",
"runtimeArgs": [
"--loader",
"ts-node/esm",
"--experimental-specifier-resolution=node",
"--import",
"tsx",
"${workspaceFolder}/src/server/Server.ts"
],
"env": {
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ Only `tests/client/**` runs under jsdom; everything else runs in the `node` envi

## Tech Stack

- **Bundler:** Vite + TypeScript 6
- **Bundler:** Vite + TypeScript 7
- **Rendering:** Custom WebGL2 renderer (`src/client/render/`)
- **UI Components:** Lit (LitElement) + Tailwind CSS 4
- **Audio:** Howler.js
Expand Down
1 change: 1 addition & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ Using AI tools is fine — but you **MUST** understand the code you are submitti
- **Node.js**: Version 24.15.0 or newer in the Node 24 release line.
- **npm**: Version 12.1.0 or newer in the npm 12 release line. If Node.js bundled an older version, run `npm install --global --ignore-scripts npm@12.1.0` before installing project dependencies.
- **Git**: For version control.
- **Editor**: The project type-checks with TypeScript 7, which has no JavaScript API for editor extensions to drive. In VS Code, install the [TypeScript 7 native preview extension](https://marketplace.visualstudio.com/items?itemName=TypeScriptTeam.native-preview) to get language support for the workspace.

### Installation

Expand Down
15 changes: 14 additions & 1 deletion docs/EnginePackageSplit.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Implementation: single-PR package split for #1701

Status: implemented (2026-10-05); see [As built](#as-built) for where it differs from the plan. Tracks [#1701](https://github.com/openfrontio/OpenFrontIO/issues/1701).
Status: implemented (2026-10-05); see [As built](#as-built) for where it differs from the plan. Tracks [#1701](https://github.com/openfrontio/OpenFrontIO/issues/1701). The split landed; the codemod it used is [disabled](#the-codemod) until TypeScript 7.1 ships a compiler API again.

One PR turns `src/core` into three npm workspace packages, `@openfront/engine-api`, `@openfront/engine` and `@openfront/shared`, with no behaviour change. It's built as ordered commits: the code changes first, each small enough to read, then one generated commit that only moves files. Analysis is against `main` at `89fe8a704`.

Expand Down Expand Up @@ -115,6 +115,19 @@ Eight commits. Every one compiles, passes `npm test` on its own and leaves the t

One script, `scripts/split-packages/run.ts`, built on the `typescript` compiler API (already a dependency) and run with `tsx`. It only rewrites import specifiers and runs `git mv`; it never edits declarations, so its output is easy to trust. It's deleted in a follow-up PR once the split has landed.

> **Tooling status (2026-10-23): disabled.** The codemod and the analysis
> scripts next to it (`scripts/split-packages/`) are built on the `typescript`
> compiler API, which TypeScript 7.0 no longer ships - the package only
> exports a version string. The replacement API (`typescript/sync`,
> `typescript/ast`) arrives with TypeScript 7.1: it is in beta now
> (`npm i -D typescript@7.1.0-beta`) and the final release is expected in
> December 2026. Until then the scripts are kept as they are, but they are not
> type-checked and they refuse to run, so **the next package split has to wait
> for that release**. To re-enable them: install `typescript@7.1.0-beta`, drop
> the `@ts-nocheck` markers and the `assertCompilerApiAvailable()` guards, and
> port the AST calls to the 7.1 API. See
> [#4982](https://github.com/openfrontio/OpenFrontIO/issues/4982).

**Input: `moves.json`, one file per commit that uses it.**

```json
Expand Down
Loading
Loading