From a78238250654f982dce27a1f96c1b9117d54bf83 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 30 May 2026 17:50:26 +0100 Subject: [PATCH] =?UTF-8?q?docs:=20post-#65=20sweep=20=E2=80=94=20remove?= =?UTF-8?q?=20stale=20npx/npm/Tauri=20prose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follows panll#65 (npm → Deno migration: package.json + package-lock.json deleted; ReScript + Tailwind now run via `npm:` specifiers in deno.json through `deno task res:build` / `deno run -A npm:tailwindcss`). Files touched (no overlap with #65): - README.adoc — `npx rescript build` → `deno task res:build` in Development + Quick Start sections; Runtime cell reworded ("Deno-only build, no package.json or npm CLI"). - src/model/README.md — `npx rescript build` → `deno task res:build` in the "Adding a New Module" checklist. - docs/guides/llm-warmup-user.md — Rules line updated to "Deno only (ReScript + Tailwind run via `npm:` specifiers in deno.json)". - AGENTS.md + GEMINI.md + .junie/guidelines.md — `no-npm-bun` rule and `deno-npm-hybrid` decision (renamed `deno-only-with-npm-specifiers`) reworded to match shipped reality. These three files are auto-generated from coordination.k9, so coordination.k9 is updated in the same pass to prevent drift on next regeneration. - coordination.k9 — source-of-truth update for the three K9-generated files above (no-npm-bun + decision block). - CONTRIBUTING.md — "Deno instead of npm/Node" paragraph updated: ReScript + Tailwind via `npm:` specifiers, no package.json, no npm CLI. - CHANGELOG.md — added an `Unreleased` entry for 2026-05-30 documenting the panll#65 migration (deno.json tasks, setup-node removed from CI, supersedes panll#62 band-aid). - scripts/bundle.ts:19 — Tauri JS APIs comment replaced with accurate Gossamer IPC bindings description (PanLL migrated FROM Tauri long ago). - docs/archive/NPM-TO-DENO-MIGRATION.md — added a "CLOSED 2026-05-30 by panll#65" status banner at top; body preserved as historical planning document (no rewrite). - tests/cross_panel_integration_test.js:243 — SeamEngine.fullScan input list updated `"package.json"` → `"deno.json"` to reflect post-#65 file layout (the literal-array test still passes either way; this is a doc-correctness fix on the test fixture). Untouched (deliberately): - panll/.claude/CLAUDE.md — owner directive (panll#60 reverted; excluded from sweeps). - .github/workflows/build-validation.yml + e2e.yml — panll#65 territory; this PR does not touch them. - All .res/.resi files — out of scope (standards#252). - TOPOLOGY.md — already clean (uses `deno task res:build`; remaining Tauri references are historical-migration context, accurate). Co-Authored-By: Claude Opus 4.7 (1M context) --- .junie/guidelines.md | 8 ++++---- AGENTS.md | 8 ++++---- CHANGELOG.md | 11 +++++++++++ CONTRIBUTING.md | 3 ++- GEMINI.md | 8 ++++---- README.adoc | 10 +++++----- coordination.k9 | 8 ++++---- docs/archive/NPM-TO-DENO-MIGRATION.md | 9 ++++++++- docs/guides/llm-warmup-user.md | 2 +- scripts/bundle.ts | 7 ++++--- src/model/README.md | 2 +- tests/cross_panel_integration_test.js | 2 +- 12 files changed, 49 insertions(+), 29 deletions(-) diff --git a/.junie/guidelines.md b/.junie/guidelines.md index b3a5a109..a9a4abcf 100644 --- a/.junie/guidelines.md +++ b/.junie/guidelines.md @@ -70,7 +70,7 @@ or contradict deliberate architectural decisions. **Rule:** No npm, Bun, pnpm, or yarn — Deno is the orchestrator -**Why:** npm is used ONLY for the ReScript compiler (which requires it). All other tooling uses Deno. Do not add npm dependencies. +**Why:** Deno-only build (post panll#65). ReScript and Tailwind run via `npm:` specifiers in `deno.json` — there is no `package.json` and no npm CLI is invoked. Do not reintroduce npm/bun/yarn/pnpm tooling. ### [CRITICAL] anticrash-validates-all @@ -150,11 +150,11 @@ These choices may look unusual but are intentional: **Rejected alternatives:** rescript-tea, Redux, MobX, React hooks pattern -### deno-npm-hybrid +### deno-only-with-npm-specifiers -**Decision:** Deno orchestrates everything, but npm is used solely for the ReScript compiler +**Decision:** Deno orchestrates everything; ReScript and Tailwind run via `npm:` specifiers in `deno.json` -**Why:** ReScript compiler requires npm — this is the ONLY permitted npm usage. Do not extend npm's role. +**Why:** Post panll#65: `package.json` + `package-lock.json` deleted; ReScript compiles via `deno run -A --allow-scripts=npm:rescript npm:rescript@^12.0.0 build`, Tailwind via `deno run -A npm:tailwindcss`. No npm CLI invocation. Do not extend npm's role. ### binary-star diff --git a/AGENTS.md b/AGENTS.md index d321b4df..fef4065b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -70,7 +70,7 @@ or contradict deliberate architectural decisions. **Rule:** No npm, Bun, pnpm, or yarn — Deno is the orchestrator -**Why:** npm is used ONLY for the ReScript compiler (which requires it). All other tooling uses Deno. Do not add npm dependencies. +**Why:** Deno-only build (post panll#65). ReScript and Tailwind run via `npm:` specifiers in `deno.json` — there is no `package.json` and no npm CLI is invoked. Do not reintroduce npm/bun/yarn/pnpm tooling. ### [CRITICAL] anticrash-validates-all @@ -150,11 +150,11 @@ These choices may look unusual but are intentional: **Rejected alternatives:** rescript-tea, Redux, MobX, React hooks pattern -### deno-npm-hybrid +### deno-only-with-npm-specifiers -**Decision:** Deno orchestrates everything, but npm is used solely for the ReScript compiler +**Decision:** Deno orchestrates everything; ReScript and Tailwind run via `npm:` specifiers in `deno.json` -**Why:** ReScript compiler requires npm — this is the ONLY permitted npm usage. Do not extend npm's role. +**Why:** Post panll#65: `package.json` + `package-lock.json` deleted; ReScript compiles via `deno run -A --allow-scripts=npm:rescript npm:rescript@^12.0.0 build`, Tailwind via `deno run -A npm:tailwindcss`. No npm CLI invocation. Do not extend npm's role. ### binary-star diff --git a/CHANGELOG.md b/CHANGELOG.md index f0a063ab..f288b594 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed (2026-05-30 — npm → Deno migration) +- **`package.json` + `package-lock.json` deleted.** ReScript and Tailwind now + run via `npm:` specifiers in `deno.json`: + - ReScript: `deno run -A --allow-scripts=npm:rescript npm:rescript@^12.0.0 build` + (exposed as `deno task res:build`) + - Tailwind: `deno run -A npm:tailwindcss` (transitional — no Deno-native + drop-in yet) +- **`setup-node` removed from CI** in `.github/workflows/build-validation.yml` + and `.github/workflows/e2e.yml`; supersedes the `panll#62` `npm install` + band-aid. See `panll#65` for the migration PR. + ### Changed (2026-05-17 — Tech-debt remediation: lib/bin split) - **`[lib] panll` crate extracted** — all GTK-free backend logic (`http_client`, `service_registry`, `settings`, `identity`, `groove`, diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 22682c72..f702b683 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,7 +26,8 @@ container support and tighter integration with the hyperpolymath stack. **Deno instead of npm/Node** — No `node_modules` directory (1,200+ transitive deps for a typical Node project). Built-in test runner. Secure-by-default -permissions. npm is only used for the ReScript compiler itself. +permissions. ReScript and Tailwind run via `npm:` specifiers in `deno.json`; +there is no `package.json` and no npm CLI is invoked. **Elixir/BEAM for middleware** — BEAM's supervision trees mean a crashing backend connection restarts itself without taking down the whole panel surface. Pattern diff --git a/GEMINI.md b/GEMINI.md index 78f1a492..29a5e319 100644 --- a/GEMINI.md +++ b/GEMINI.md @@ -70,7 +70,7 @@ or contradict deliberate architectural decisions. **Rule:** No npm, Bun, pnpm, or yarn — Deno is the orchestrator -**Why:** npm is used ONLY for the ReScript compiler (which requires it). All other tooling uses Deno. Do not add npm dependencies. +**Why:** Deno-only build (post panll#65). ReScript and Tailwind run via `npm:` specifiers in `deno.json` — there is no `package.json` and no npm CLI is invoked. Do not reintroduce npm/bun/yarn/pnpm tooling. ### [CRITICAL] anticrash-validates-all @@ -150,11 +150,11 @@ These choices may look unusual but are intentional: **Rejected alternatives:** rescript-tea, Redux, MobX, React hooks pattern -### deno-npm-hybrid +### deno-only-with-npm-specifiers -**Decision:** Deno orchestrates everything, but npm is used solely for the ReScript compiler +**Decision:** Deno orchestrates everything; ReScript and Tailwind run via `npm:` specifiers in `deno.json` -**Why:** ReScript compiler requires npm — this is the ONLY permitted npm usage. Do not extend npm's role. +**Why:** Post panll#65: `package.json` + `package-lock.json` deleted; ReScript compiles via `deno run -A --allow-scripts=npm:rescript npm:rescript@^12.0.0 build`, Tailwind via `deno run -A npm:tailwindcss`. No npm CLI invocation. Do not extend npm's role. ### binary-star diff --git a/README.adoc b/README.adoc index 6314b708..d24dcceb 100644 --- a/README.adoc +++ b/README.adoc @@ -145,7 +145,7 @@ PanLL components aim to: |Runtime |Deno (tests, build orchestration) -|No `node_modules` black hole — URL imports, built-in TypeScript support for glue code, secure-by-default permissions model. npm is only used for the ReScript compiler itself (pending upstream Deno support). See https://deno.com[Deno]. +|No `node_modules` black hole — URL imports, built-in TypeScript support for glue code, secure-by-default permissions model. Deno-only build: ReScript and Tailwind run through `npm:` specifiers in `deno.json`, no `package.json` or npm CLI invocation. See https://deno.com[Deno]. |Testing |Deno.test (97 JS) + cargo test (12 Rust) @@ -170,15 +170,15 @@ PanLL components aim to: == Development -PanLL uses Deno for runtime, testing, and build orchestration. ReScript compilation uses the symlinked compiler in `node_modules`. +PanLL uses Deno for runtime, testing, and build orchestration. ReScript compilation runs through `deno run -A --allow-scripts=npm:rescript npm:rescript@^12.0.0` (no `package.json` or npm CLI). [source,bash] ---- # Compile ReScript modules -npx rescript build +deno task res:build # Watch ReScript sources during development -npx rescript build -w +deno task res:watch # Run tests (97 JS tests + 12 Rust tests) deno task test @@ -201,7 +201,7 @@ deno task build [source,bash] ---- # 1. Compile ReScript -npx rescript build +deno task res:build # 2. Run tests to verify deno task test diff --git a/coordination.k9 b/coordination.k9 index d34d7296..e9bb0a86 100644 --- a/coordination.k9 +++ b/coordination.k9 @@ -71,7 +71,7 @@ invariants: - id: no-npm-bun rule: "No npm, Bun, pnpm, or yarn — Deno is the orchestrator" - reason: "npm is used ONLY for the ReScript compiler (which requires it). All other tooling uses Deno. Do not add npm dependencies." + reason: "Deno-only build (post panll#65). ReScript and Tailwind run via `npm:` specifiers in deno.json — there is no `package.json` and no npm CLI is invoked. Do not reintroduce npm/bun/yarn/pnpm tooling." severity: critical - id: anticrash-validates-all @@ -154,9 +154,9 @@ architecture: - MobX - React hooks pattern - - id: deno-npm-hybrid - decision: "Deno orchestrates everything, but npm is used solely for the ReScript compiler" - reason: "ReScript compiler requires npm — this is the ONLY permitted npm usage. Do not extend npm's role." + - id: deno-only-with-npm-specifiers + decision: "Deno orchestrates everything; ReScript and Tailwind run via `npm:` specifiers in deno.json" + reason: "Post panll#65: package.json + package-lock.json deleted; ReScript compiles via `deno run -A --allow-scripts=npm:rescript npm:rescript@^12.0.0 build`, Tailwind via `deno run -A npm:tailwindcss`. No npm CLI invocation. Do not extend npm's role." - id: binary-star decision: "Three panel types: Panel-L (symbolic/human), Panel-N (neural/machine), Panel-W (world/shared)" diff --git a/docs/archive/NPM-TO-DENO-MIGRATION.md b/docs/archive/NPM-TO-DENO-MIGRATION.md index 151be6a1..c17db873 100644 --- a/docs/archive/NPM-TO-DENO-MIGRATION.md +++ b/docs/archive/NPM-TO-DENO-MIGRATION.md @@ -1,6 +1,13 @@ # npm → Deno Migration Plan for PanLL -**Status:** Planning phase +> **STATUS: CLOSED (2026-05-30).** Closed by panll#65 — `package.json` and +> `package-lock.json` deleted; ReScript + Tailwind now run through `npm:` +> specifiers in `deno.json`. See the `deno.json` task table and +> `.github/workflows/build-validation.yml` for the shipped state. The text +> below is preserved as the original planning document for historical context; +> details may not reflect what actually shipped. + +**Status:** Planning phase (superseded) **Priority:** Medium (blocks full hyperpolymath policy compliance) **Timeline:** 1-2 weeks implementation **Blocker:** ReScript compiler requires Node.js/npm (no Deno support yet) diff --git a/docs/guides/llm-warmup-user.md b/docs/guides/llm-warmup-user.md index a7299f70..d95e65f6 100644 --- a/docs/guides/llm-warmup-user.md +++ b/docs/guides/llm-warmup-user.md @@ -68,7 +68,7 @@ Optional: Elixir >= 1.16 (for beam/ middleware). ## Rules - No TypeScript. ReScript only. -- No npm/bun. Deno only (npm only for ReScript compiler). +- No npm/bun. Deno only (ReScript + Tailwind run via `npm:` specifiers in `deno.json`). - Panels, not panes. - TEA pattern only. All state in Model.model. - Anti-Crash validates ALL neural tokens. diff --git a/scripts/bundle.ts b/scripts/bundle.ts index 658b82c3..1ff3a027 100644 --- a/scripts/bundle.ts +++ b/scripts/bundle.ts @@ -16,9 +16,10 @@ const ctx = await esbuild.context({ format: "esm", outfile: "public/app.bundle.js", sourcemap: true, - // Tauri JS APIs are thin wrappers around window.__TAURI_INTERNALS__ IPC — - // bundling them is the standard approach and avoids bare-specifier issues - // in WebKitGTK which lacks import map support. + // Gossamer IPC bindings are thin wrappers around the WebKitGTK message + // handlers exposed by the Rust backend — bundling them is the standard + // approach and avoids bare-specifier issues in WebKitGTK which lacks + // import map support. nodePaths: ["node_modules"], logLevel: "info", }); diff --git a/src/model/README.md b/src/model/README.md index 5fe4f3aa..56c537eb 100644 --- a/src/model/README.md +++ b/src/model/README.md @@ -26,4 +26,4 @@ Contains all domain-specific type definitions for PanLL's TEA architecture. Each 2. Add `include NewDomainModel` to `src/Model.res` 3. Add any new fields to the `model` record in `Model.res` 4. Add init values in the `init()` function in `Model.res` -5. Run `npx rescript build` — compiler errors show every place needing updates +5. Run `deno task res:build` — compiler errors show every place needing updates diff --git a/tests/cross_panel_integration_test.js b/tests/cross_panel_integration_test.js index 92b029e5..7df6a311 100644 --- a/tests/cross_panel_integration_test.js +++ b/tests/cross_panel_integration_test.js @@ -239,7 +239,7 @@ Deno.test("Integration — SeamEngine fullScan with realistic file list", () => "src/core/AntiCrashEngine.res", "src/core/SeamEngine.res", "src/Model.res", - "package.json", + "deno.json", "rescript.json", "TOPOLOGY.md", "CHANGELOG.md",