diff --git a/.cursor/rules/ls-foundry-core.mdc b/.cursor/rules/ls-foundry-core.mdc index 9cd9933..3767223 100644 --- a/.cursor/rules/ls-foundry-core.mdc +++ b/.cursor/rules/ls-foundry-core.mdc @@ -45,7 +45,7 @@ Also update the pin table below, `docs/stickpak/phase-1.md` version table + inst | Package | Version | |---------|---------| | `@jeffgo10/shared-types` | 1.0.0 | -| `@jeffgo10/react-canvas-designer` | 1.3.1 | +| `@jeffgo10/react-canvas-designer` | 1.3.2 | | `@jeffgo10/canvas-upscaler` | 1.0.0 | Always bump `shared-types` first when changing layout/DPI APIs; keep dependent package pins in sync. diff --git a/.cursor/rules/ls-foundry-no-manual-publish.mdc b/.cursor/rules/ls-foundry-no-manual-publish.mdc index 9789a46..d1f990f 100644 --- a/.cursor/rules/ls-foundry-no-manual-publish.mdc +++ b/.cursor/rules/ls-foundry-no-manual-publish.mdc @@ -30,3 +30,19 @@ Agents must **not** publish npm packages from the local machine. ## Exception Run publish/deploy **only** when the user explicitly requests it in the current message (e.g. “publish now”, “run deploy”). Do not infer publish from “done”, “ship it”, or a prior task checklist. + +## If the user asks you to publish + +Use **pnpm** from the monorepo root — never plain `npm publish` / `pnpm exec npm publish`: + +```bash +pnpm publish --filter @jeffgo10/ --access public --no-git-checks +``` + +`pnpm publish` rewrites `workspace:*` to concrete versions. `npm publish` leaves `workspace:*` in the tarball (broke **react-canvas-designer@1.3.1**). After publish, verify: + +```bash +npm view @jeffgo10/@ dependencies --registry=https://npm.pkg.github.com +``` + +Confirm there is no `workspace:*`. diff --git a/docs/stickpak/engineering-notes.md b/docs/stickpak/engineering-notes.md index 84ca2e3..896ed54 100644 --- a/docs/stickpak/engineering-notes.md +++ b/docs/stickpak/engineering-notes.md @@ -2,17 +2,33 @@ Noteworthy issues and fixes (synced to Obsidian `StickPak/noteworthy/`). +## Broken 1.3.1 tarball — workspace:* deps (republish 1.3.2) + +**When:** August 2026 (`@jeffgo10/react-canvas-designer` **1.3.2**). + +**Ask:** Storefront cannot install **1.3.1** — published `package.json` still has `workspace:*` for helpers/history/shared-types. + +**Cause:** **1.3.1** was published with `pnpm exec npm publish` (agent mistake). Plain `npm publish` does **not** rewrite pnpm `workspace:*` protocols. CI / `pnpm publish --filter` does rewrite them (as **1.3.0** did: helpers `1.2.0`, history `1.0.0`, shared-types `1.0.0`). + +**Fix:** Republish panMode lock fix as **1.3.2** via `pnpm publish --filter @jeffgo10/react-canvas-designer`. Do not use `npm publish` / `pnpm exec npm publish` for workspace packages. + +**Published:** `@jeffgo10/react-canvas-designer@1.3.2` — deps helpers `1.2.0`, history `1.0.0`, shared-types `1.0.0` (verified `npm view`). + +**Storefront follow-up:** Pin **1.3.2**; run `/update-ls-foundry-packages`. Skip **1.3.1**. + +**Code:** publish workflow only (`scripts/publish-changed.sh` already uses `pnpm publish --filter`). + ## Canvas panMode locks select/transform (1.3.1) -**When:** August 2026 (`@jeffgo10/react-canvas-designer` **1.3.1**). +**When:** August 2026 (`@jeffgo10/react-canvas-designer` **1.3.1** / installable fix **1.3.2**). **Ask:** With `panMode` on, stickers could still be selected, moved, and rotated. **Fix:** While pan is active (`panMode` or Space), sticker groups use `listening={false}` (pointer events pass through for pan), Transformer nodes/handles are cleared and rotate/resize are off, pinch and `[`/`]` rotate are blocked. -**Published:** `@jeffgo10/react-canvas-designer@1.3.1` on GitHub Packages. +**Published:** **1.3.1** tarball is broken (`workspace:*`); use **1.3.2**. -**Storefront follow-up:** Pin designer **1.3.1**. +**Storefront follow-up:** Pin designer **1.3.2**. **Code:** `CanvasDesigner.tsx` @@ -29,7 +45,7 @@ Noteworthy issues and fixes (synced to Obsidian `StickPak/noteworthy/`). **Published:** `@jeffgo10/react-canvas-designer@1.3.0` on GitHub Packages (`npm view …@1.3.0`). -**Storefront follow-up:** Pin designer **1.3.1**; run `/update-ls-foundry-packages` and replace `useCanvasPanMode` Space synthesis with `panMode={…}`. +**Storefront follow-up:** Pin designer **1.3.2**; run `/update-ls-foundry-packages` and replace `useCanvasPanMode` Space synthesis with `panMode={…}`. **Code:** `CanvasDesigner.tsx`; `StickPakCanvasSection.tsx` @@ -46,7 +62,7 @@ Noteworthy issues and fixes (synced to Obsidian `StickPak/noteworthy/`). - Handle API: `getViewport` / `setViewportZoom` / `zoomBy` / `resetViewport`; optional `onViewportChange`. - Docs `/stickpak`: Zoom − / % / + / Reset view toolbar. -**Storefront follow-up:** Pin designer **1.3.1** (includes `panMode` lock). Built-in Space/wheel may overlap storefront `use-canvas-viewport` — prefer the designer camera or keep outer CSS viewport for mobile only; lock outer pan while editing via existing `onSelectedIdChange`. +**Storefront follow-up:** Pin designer **1.3.2** (includes `panMode` lock). Built-in Space/wheel may overlap storefront `use-canvas-viewport` — prefer the designer camera or keep outer CSS viewport for mobile only; lock outer pan while editing via existing `onSelectedIdChange`. **Code:** `canvasViewport.ts`; `stagePointer.ts`; `selectedStickerPinch.ts` (`touchClientToDesign`); `CanvasDesigner.tsx`; `StickPakCanvasSection.tsx` diff --git a/docs/stickpak/phase-1.md b/docs/stickpak/phase-1.md index 1499bfd..afff65e 100644 --- a/docs/stickpak/phase-1.md +++ b/docs/stickpak/phase-1.md @@ -20,7 +20,7 @@ Phase 1 lives entirely inside the `ls-foundry` monorepo. It delivers the reusabl | Package | Version | Notes | |---------|---------|-------| | `@jeffgo10/shared-types` | **1.0.0** | Layout schema; optional `cutLineOffsetMm` + `cutLineOffsetFill` on layout items | -| `@jeffgo10/react-canvas-designer` | **1.3.1** | Full StickPak designer; SP-024 zoom/pan (`panMode` locks select/transform; Space + drag, wheel); SP-012 rotation hotkeys; offset hole cut lines (deps helpers **1.0.5**) | +| `@jeffgo10/react-canvas-designer` | **1.3.2** | Full StickPak designer; SP-024 zoom/pan (`panMode` locks select/transform; Space + drag, wheel); SP-012 rotation hotkeys; offset hole cut lines (deps helpers **1.0.5**) | | `@jeffgo10/helpers` | **1.0.5** | `./image` (multi-island + offset hole contours; circular pad; offset-only Chaikin), `./gestures`, `./browser`, `./clipboard` | | `@jeffgo10/canvas-upscaler` | **1.0.0** | Bakes `cutLineOffsetMm`/`cutLineOffsetFill` for StickPak print; dep shared-types **1.0.0** | @@ -28,7 +28,7 @@ Install both designer packages together: ```json "@jeffgo10/shared-types": "1.0.0", -"@jeffgo10/react-canvas-designer": "1.3.1", +"@jeffgo10/react-canvas-designer": "1.3.2", "@jeffgo10/canvas-upscaler": "1.0.0" ``` diff --git a/packages/react-canvas-designer/package.json b/packages/react-canvas-designer/package.json index df8298d..bfd93bf 100644 --- a/packages/react-canvas-designer/package.json +++ b/packages/react-canvas-designer/package.json @@ -1,6 +1,6 @@ { "name": "@jeffgo10/react-canvas-designer", - "version": "1.3.1", + "version": "1.3.2", "description": "72 DPI A4 Konva canvas for StickPak sticker layout design", "license": "MIT", "repository": {