From 387d2e3537b09945ed746d007b3664ad4bfcfda7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 18 Sep 2026 03:16:49 +0000 Subject: [PATCH] Version Packages --- .changeset/olive-donkeys-invent.md | 21 ------------- .changeset/plain-donkeys-build.md | 28 ----------------- .changeset/spotty-berries-preview.md | 4 --- .changeset/wild-pandas-repeat.md | 21 ------------- apps/starter-mini-lynx/CHANGELOG.md | 8 +++++ apps/starter-mini-lynx/package.json | 2 +- bun.lock | 8 ++--- packages/create-mini-lynx/CHANGELOG.md | 23 ++++++++++++++ packages/create-mini-lynx/package.json | 2 +- packages/mini-lynx-preview/CHANGELOG.md | 23 ++++++++++++++ packages/mini-lynx-preview/package.json | 4 +-- .../mini-lynx-rsbuild-plugin/CHANGELOG.md | 30 +++++++++++++++++++ .../mini-lynx-rsbuild-plugin/package.json | 2 +- 13 files changed, 93 insertions(+), 83 deletions(-) delete mode 100644 .changeset/olive-donkeys-invent.md delete mode 100644 .changeset/plain-donkeys-build.md delete mode 100644 .changeset/spotty-berries-preview.md delete mode 100644 .changeset/wild-pandas-repeat.md create mode 100644 apps/starter-mini-lynx/CHANGELOG.md create mode 100644 packages/create-mini-lynx/CHANGELOG.md create mode 100644 packages/mini-lynx-preview/CHANGELOG.md create mode 100644 packages/mini-lynx-rsbuild-plugin/CHANGELOG.md diff --git a/.changeset/olive-donkeys-invent.md b/.changeset/olive-donkeys-invent.md deleted file mode 100644 index 115e0d6..0000000 --- a/.changeset/olive-donkeys-invent.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -'@amritk/create-mini-lynx': minor ---- - -Add `create-mini-lynx`: one command to a running app, in a browser or on a phone. - -`bun create @amritk/mini-lynx my-app` writes a complete `@amritk/mini-lynx` -project, installs it, and leaves you one command from either loop: - -- `bun run dev` — the app in a device frame in a browser tab, on - `@amritk/mini-lynx-preview`, with a size picker and no phone involved. -- `bun run dev:device` — `rspeedy dev` through - `@amritk/mini-lynx-rsbuild-plugin`: a real `.lynx.bundle`, two QR codes, and - Lynx Explorer. - -One `src/app.tsx` feeds both; what differs is the entry — `src/main-thread.ts` -for the device (plus `src/background.ts`, the chunk `NativeModules` lives in) -and `src/preview/main.ts` for the browser. The DOM libs are withheld from -everything outside `src/preview/`, in a second `tsconfig` pass rather than a -comment, so a `document` in app code fails the type check instead of failing on -the only target that ships. diff --git a/.changeset/plain-donkeys-build.md b/.changeset/plain-donkeys-build.md deleted file mode 100644 index 632ebf7..0000000 --- a/.changeset/plain-donkeys-build.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -'@amritk/mini-lynx-rsbuild-plugin': minor ---- - -Add `@amritk/mini-lynx-rsbuild-plugin` — the rspeedy build for a -`@amritk/mini-lynx` app, so `rspeedy dev` → QR code → Lynx Explorer works on day -one. - -A Lynx template is a container with two code slots — a main-thread chunk the -engine executes to build the first screen and a background chunk it loads as -`/app-service.js` — plus CSS the encoder compiles. rspeedy builds the container; -which code goes in which slot is the framework's to say, and every framework -says it in a plugin of its own. This is that plugin for a runtime that renders -on the main thread and drives the Element PAPI itself: `pluginMiniLynx()` splits -one entry into two chunks, adds the template plugin and encoder, sets the -`lynx:main-thread` asset flag the encoder splits on, wraps the background chunk -for the engine's module loader, and points the JSX transform at -`@amritk/mini-lynx`. - -In `dev` it wires the dev-server client and a devtool reload. Nothing hot-updates -and nothing should — a component runs once here — so an update no module accepts -falls through to a page reload, which is safe because `renderPage` claims -`removeComponents`. - -`apps/starter-mini-lynx` is a four-file app built through it, and -`docs/mini-lynx-explorer.md` records the loop along with what has been verified -(one real build per commit, whose main-thread chunk is executed against the fake -Element PAPI and asserted on) and what a device still has to answer. diff --git a/.changeset/spotty-berries-preview.md b/.changeset/spotty-berries-preview.md deleted file mode 100644 index 225cf58..0000000 --- a/.changeset/spotty-berries-preview.md +++ /dev/null @@ -1,4 +0,0 @@ ---- ---- - -Add a `/preview` project skill: agents launch the mini-lynx playground headlessly and capture phone-viewport screenshots for visual feedback. Tooling only — no published package changes. diff --git a/.changeset/wild-pandas-repeat.md b/.changeset/wild-pandas-repeat.md deleted file mode 100644 index 1ffed19..0000000 --- a/.changeset/wild-pandas-repeat.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -'@amritk/mini-lynx-preview': minor ---- - -Publish the browser preview engine as a package. - -Lynx's Element PAPI implemented over the DOM — `createDomPapi`, -`installLynxReset`/`LYNX_ROOT_ATTRIBUTE` and `createVisualViewportEmitter` — so a -`@amritk/mini-lynx` app runs in a browser tab with nothing about it changed. It -was `apps/playground-mini-lynx/src/lib/` until something outside this repo -needed the same engine; the playground now boots on the package, so there is one -implementation rather than two. - -It is the loop with no phone in it — `@amritk/mini-lynx-rsbuild-plugin` is the -one with a phone, and a scaffolded app carries both. - -Every import of the runtime here is `import type`. A preview that called -`setEngine` itself would call it on whichever copy of the runtime it resolved, -which in a consumer's app can be a different copy from the one the app imported -— and the symptom of that is a blank screen with no error in it. The four lines -of wiring stay in the app. diff --git a/apps/starter-mini-lynx/CHANGELOG.md b/apps/starter-mini-lynx/CHANGELOG.md new file mode 100644 index 0000000..1bb6914 --- /dev/null +++ b/apps/starter-mini-lynx/CHANGELOG.md @@ -0,0 +1,8 @@ +# @amritk/starter-mini-lynx + +## 0.0.1 + +### Patch Changes + +- Updated dependencies [d572153] + - @amritk/mini-lynx-rsbuild-plugin@0.2.0 diff --git a/apps/starter-mini-lynx/package.json b/apps/starter-mini-lynx/package.json index 738dec7..78eef53 100644 --- a/apps/starter-mini-lynx/package.json +++ b/apps/starter-mini-lynx/package.json @@ -1,6 +1,6 @@ { "name": "@amritk/starter-mini-lynx", - "version": "0.0.0", + "version": "0.0.1", "private": true, "description": "The smallest real @amritk/mini-lynx app: rspeedy dev, a QR code, and Lynx Explorer.", "type": "module", diff --git a/bun.lock b/bun.lock index 004ebcd..0cd33e8 100644 --- a/bun.lock +++ b/bun.lock @@ -56,7 +56,7 @@ }, "apps/starter-mini-lynx": { "name": "@amritk/starter-mini-lynx", - "version": "0.0.0", + "version": "0.0.1", "dependencies": { "@amritk/mini-lynx": "workspace:*", "@amritk/mini-lynx-native": "workspace:*", @@ -73,7 +73,7 @@ }, "packages/create-mini-lynx": { "name": "@amritk/create-mini-lynx", - "version": "0.0.0", + "version": "0.1.0", "bin": { "create-mini-lynx": "./dist/cli.js", }, @@ -248,7 +248,7 @@ }, "packages/mini-lynx-preview": { "name": "@amritk/mini-lynx-preview", - "version": "0.0.0", + "version": "0.1.0", "devDependencies": { "@amritk/mini-lynx": "workspace:*", "typescript": "^5", @@ -259,7 +259,7 @@ }, "packages/mini-lynx-rsbuild-plugin": { "name": "@amritk/mini-lynx-rsbuild-plugin", - "version": "0.1.0", + "version": "0.2.0", "dependencies": { "@lynx-js/runtime-wrapper-webpack-plugin": "^0.2.3", "@lynx-js/template-webpack-plugin": "^0.15.1", diff --git a/packages/create-mini-lynx/CHANGELOG.md b/packages/create-mini-lynx/CHANGELOG.md new file mode 100644 index 0000000..3e5a2f6 --- /dev/null +++ b/packages/create-mini-lynx/CHANGELOG.md @@ -0,0 +1,23 @@ +# @amritk/create-mini-lynx + +## 0.1.0 + +### Minor Changes + +- 8e575fd: Add `create-mini-lynx`: one command to a running app, in a browser or on a phone. + + `bun create @amritk/mini-lynx my-app` writes a complete `@amritk/mini-lynx` + project, installs it, and leaves you one command from either loop: + + - `bun run dev` — the app in a device frame in a browser tab, on + `@amritk/mini-lynx-preview`, with a size picker and no phone involved. + - `bun run dev:device` — `rspeedy dev` through + `@amritk/mini-lynx-rsbuild-plugin`: a real `.lynx.bundle`, two QR codes, and + Lynx Explorer. + + One `src/app.tsx` feeds both; what differs is the entry — `src/main-thread.ts` + for the device (plus `src/background.ts`, the chunk `NativeModules` lives in) + and `src/preview/main.ts` for the browser. The DOM libs are withheld from + everything outside `src/preview/`, in a second `tsconfig` pass rather than a + comment, so a `document` in app code fails the type check instead of failing on + the only target that ships. diff --git a/packages/create-mini-lynx/package.json b/packages/create-mini-lynx/package.json index 604efa5..66dbd23 100644 --- a/packages/create-mini-lynx/package.json +++ b/packages/create-mini-lynx/package.json @@ -1,6 +1,6 @@ { "name": "@amritk/create-mini-lynx", - "version": "0.0.0", + "version": "0.1.0", "description": "Scaffolds a @amritk/mini-lynx app that runs in a device-framed browser preview from the first command.", "type": "module", "license": "MIT", diff --git a/packages/mini-lynx-preview/CHANGELOG.md b/packages/mini-lynx-preview/CHANGELOG.md new file mode 100644 index 0000000..72d09a8 --- /dev/null +++ b/packages/mini-lynx-preview/CHANGELOG.md @@ -0,0 +1,23 @@ +# @amritk/mini-lynx-preview + +## 0.1.0 + +### Minor Changes + +- 8e575fd: Publish the browser preview engine as a package. + + Lynx's Element PAPI implemented over the DOM — `createDomPapi`, + `installLynxReset`/`LYNX_ROOT_ATTRIBUTE` and `createVisualViewportEmitter` — so a + `@amritk/mini-lynx` app runs in a browser tab with nothing about it changed. It + was `apps/playground-mini-lynx/src/lib/` until something outside this repo + needed the same engine; the playground now boots on the package, so there is one + implementation rather than two. + + It is the loop with no phone in it — `@amritk/mini-lynx-rsbuild-plugin` is the + one with a phone, and a scaffolded app carries both. + + Every import of the runtime here is `import type`. A preview that called + `setEngine` itself would call it on whichever copy of the runtime it resolved, + which in a consumer's app can be a different copy from the one the app imported + — and the symptom of that is a blank screen with no error in it. The four lines + of wiring stay in the app. diff --git a/packages/mini-lynx-preview/package.json b/packages/mini-lynx-preview/package.json index bd50b89..7ccba79 100644 --- a/packages/mini-lynx-preview/package.json +++ b/packages/mini-lynx-preview/package.json @@ -1,7 +1,7 @@ { "name": "@amritk/mini-lynx-preview", - "version": "0.0.0", - "description": "Lynx's Element PAPI implemented over the DOM, so a @amritk/mini-lynx app runs \u2014 unmodified \u2014 in a browser tab.", + "version": "0.1.0", + "description": "Lynx's Element PAPI implemented over the DOM, so a @amritk/mini-lynx app runs — unmodified — in a browser tab.", "type": "module", "license": "MIT", "author": "amritk", diff --git a/packages/mini-lynx-rsbuild-plugin/CHANGELOG.md b/packages/mini-lynx-rsbuild-plugin/CHANGELOG.md new file mode 100644 index 0000000..f232d13 --- /dev/null +++ b/packages/mini-lynx-rsbuild-plugin/CHANGELOG.md @@ -0,0 +1,30 @@ +# @amritk/mini-lynx-rsbuild-plugin + +## 0.2.0 + +### Minor Changes + +- d572153: Add `@amritk/mini-lynx-rsbuild-plugin` — the rspeedy build for a + `@amritk/mini-lynx` app, so `rspeedy dev` → QR code → Lynx Explorer works on day + one. + + A Lynx template is a container with two code slots — a main-thread chunk the + engine executes to build the first screen and a background chunk it loads as + `/app-service.js` — plus CSS the encoder compiles. rspeedy builds the container; + which code goes in which slot is the framework's to say, and every framework + says it in a plugin of its own. This is that plugin for a runtime that renders + on the main thread and drives the Element PAPI itself: `pluginMiniLynx()` splits + one entry into two chunks, adds the template plugin and encoder, sets the + `lynx:main-thread` asset flag the encoder splits on, wraps the background chunk + for the engine's module loader, and points the JSX transform at + `@amritk/mini-lynx`. + + In `dev` it wires the dev-server client and a devtool reload. Nothing hot-updates + and nothing should — a component runs once here — so an update no module accepts + falls through to a page reload, which is safe because `renderPage` claims + `removeComponents`. + + `apps/starter-mini-lynx` is a four-file app built through it, and + `docs/mini-lynx-explorer.md` records the loop along with what has been verified + (one real build per commit, whose main-thread chunk is executed against the fake + Element PAPI and asserted on) and what a device still has to answer. diff --git a/packages/mini-lynx-rsbuild-plugin/package.json b/packages/mini-lynx-rsbuild-plugin/package.json index ae95e0f..322b1b6 100644 --- a/packages/mini-lynx-rsbuild-plugin/package.json +++ b/packages/mini-lynx-rsbuild-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@amritk/mini-lynx-rsbuild-plugin", - "version": "0.1.0", + "version": "0.2.0", "description": "The rspeedy build for a @amritk/mini-lynx app: two chunks, one .lynx.bundle template, and a QR code Lynx Explorer scans.", "type": "module", "license": "MIT",