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
8 changes: 4 additions & 4 deletions .junie/guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down
8 changes: 4 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`,
Expand Down
3 changes: 2 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions GEMINI.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down
10 changes: 5 additions & 5 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand All @@ -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
Expand Down
8 changes: 4 additions & 4 deletions coordination.k9
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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)"
Expand Down
9 changes: 8 additions & 1 deletion docs/archive/NPM-TO-DENO-MIGRATION.md
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
2 changes: 1 addition & 1 deletion docs/guides/llm-warmup-user.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
7 changes: 4 additions & 3 deletions scripts/bundle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
});
Expand Down
2 changes: 1 addition & 1 deletion src/model/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion tests/cross_panel_integration_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Loading