Skip to content

Develop merge#6

Merged
chillenious merged 107 commits into
masterfrom
develop
Apr 23, 2026
Merged

Develop merge#6
chillenious merged 107 commits into
masterfrom
develop

Conversation

@chillenious
Copy link
Copy Markdown
Contributor

No description provided.

chillenious and others added 30 commits February 15, 2026 23:26
Add optional includeControllers support to emit pie-api-aws compatible controller outputs and stats, while keeping existing bundle behavior unchanged by default.

Co-authored-by: Cursor <cursoragent@cursor.com>
Consolidate the math input/mathquill migration across React/Svelte libs, delivery players, shared math packages, and docs so ESM demos and keypad rendering behave consistently with improved accessibility and maintainability.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bundle the current demo/player reliability fixes together with dependency integrity verification updates and supporting package/config changes across the workspace.

Co-authored-by: Cursor <cursoragent@cursor.com>
Include automatic formatting and lint rewrites produced by pre-commit checks after the workspace commit.

Co-authored-by: Cursor <cursoragent@cursor.com>
Merge the recovered upstream hardening work with the latest sync output into a single coherent baseline. This captures full MathQuill package retirement, sync transform upgrades for strict ESM/import interop, demo IIFE stabilization, and stronger dependency-integrity enforcement so future upstream:update runs stay reproducible.

Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve a bundler-shared source maps regression and add missing direct dependencies so dependency integrity and test hooks pass reliably before push.

Co-authored-by: Cursor <cursoragent@cursor.com>
Harden upstream package.json generation so known peer dependency gaps are re-added deterministically for element and pie-lib packages, preventing post-sync regressions and pre-push integrity failures.

Co-authored-by: Cursor <cursoragent@cursor.com>
Capture the latest upstream sync output while fixing IIFE player/session refresh loops and strengthening React interop transforms so number-line and related delivery views stay stable after upstream:update runs.

Co-authored-by: Cursor <cursoragent@cursor.com>
Install git hooks automatically on dependency install and document the manual reinstall command so hook behavior is consistent across contributor machines.

Co-authored-by: Cursor <cursoragent@cursor.com>
Determine publish-mode release runs from non-private package version bumps rather than broad package.json file changes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Remove shared theming bridge dependencies from the element player package so it no longer pulls MUI-related peer requirements it does not use. This keeps dependency integrity checks clean without changing runtime behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add an explicit @mui/material peer declaration so dependency integrity checks pass when consuming shared-theming through the DaisyUI adapter package.

Co-authored-by: Cursor <cursoragent@cursor.com>
- Remove shared math-engine package and related CLI/docs
- Update math-inline, math-templated, graphing packages and lib math-input
- Refresh element controllers, categorize, placement-ordering, MC, etc.
- Editable HTML TipTap: div-node, helpers, response areas, math extension
- CI workflow and bundler-shared test doc updates
- Add Atlassian MCP routing Cursor rule

Made-with: Cursor
- Remove fraction/synthetic-backspace workarounds and ignoreNextMousedown refresh
- Rename SSR require transform to transformSsrRequireToEsmImport; update SYNC_TRANSFORMS
- Print player: options.mode only; update print components and docs
- Graphing: ArrowMarker uses disabled/correctness props only
- Math inline/templated: register answerBlock embed from constructor
- Misc: drag prompt helper, rubric warn, extended-text-entry DOMParser guard, config-ui comments

Made-with: Cursor
Complete the dependency/config updates for the Vite 8 migration and codify the upstream-sync rule so synced React packages are no longer edited directly in this repository.

Made-with: Cursor
Introduce an adapter-driven all-elements baseline Playwright suite and capture current failure inventory to guide incremental element-by-element remediation.

Made-with: Cursor
Apply adapter-based element fixes and shared interaction improvements, temporarily exclude rubric variants, and update findings after a full rerun to focus follow-up work on the remaining gather-specific failures.

Made-with: Cursor
Consolidate delivery/gather baseline behavior into shared helpers so element-specific adapters stay minimal, and capture that the full included baseline matrix is now green.

Made-with: Cursor
Preserve .js import specifiers and exports.development conditions during upstream sync, and enforce true no-write behavior for dry-run to prevent unintended workspace churn.

Made-with: Cursor
Update the generated compatibility report after upstream:update so tracked diagnostics reflect the latest analysis run.

Made-with: Cursor
Catch critical runtime console/page errors in baseline checks, include rubric/complex-rubric with instructor delivery behavior, and normalize charting autosize input interop so ESM delivery does not crash.

Made-with: Cursor
Rename the Svelte styling package to a publishable npm scope and release dependent Svelte packages with updated runtime imports so external installs resolve correctly.

Made-with: Cursor
Make mc-populated-blank follow common PIE delivery/controller contract patterns and ensure evaluate mode marks missed correct choices as incorrect by default, including unanswered attempts.

Made-with: Cursor
Export a plain controller object from the Svelte package entrypoints so IIFE and root consumers consistently receive callable controller.model/outcome functions.

Made-with: Cursor
Retain the root entrypoint controller re-export pattern and scope the controller-shape hardening to the IIFE entrypoint.

Made-with: Cursor
Replace lodash-based empty checks with native object guards and align package exports to load the controller from the dedicated ./controller entrypoint so ESM output remains lean.

Made-with: Cursor
…ing.

Update mc-populated-blank/simple-cloze metadata and changelogs, remove legacy lodash controller dependency, tighten element-player delivery controller contract checks, and add release script support for env-token publishing.

Made-with: Cursor
Standardize manual publishing instructions to always use scripts/publish-with-env-token.sh so package targeting and npm token auth are handled consistently.

Made-with: Cursor
… 0.2.9

Add a root controller shim for alias-based builder resolution and document the pattern in Cursor/Claude project guidance. Bump and publish @pie-element/mc-populated-blank to 0.2.9 so pie-api-aws client/editor bundles resolve controller imports reliably.

Made-with: Cursor
Bundle per-variant Learnosity-derived CSS in mc-populated-blank and wire customType through delivery so visual behavior matches CQT references more closely. Remove demo state caching to keep parity checks deterministic and update sample payloads/docs for the new variant-driven styling workflow.

Made-with: Cursor
Record the patch version bump and changelog entry for the published mc-populated-blank release.

Made-with: Cursor
Make publish and CI flows use explicit branch-aware npm tags (stable/latest, next, beta) with guardrails, and add a dry-run-first backfill tool plus docs to repair and verify stale latest tags.

Made-with: Cursor
Switch docs generation to HTML artifacts consumed by element-demo docs routes, add per-element docs navigation in the demo UI, and enforce deterministic verify checks against the new static output location.

Made-with: Cursor
Update generated docs manifest timestamps and metadata after the final HTML escaping pass so the static docs output is fully in sync.

Made-with: Cursor
Enable on/off runtime-support probing in element-player, keep loading non-blocking when metadata is missing, and add verification/tests plus demo opt-in wiring.

Made-with: Cursor
Include pre-commit formatting adjustments generated during the runtime-support implementation so the branch is clean and fully pushed.

Made-with: Cursor
Add docs/prds with README, _template, heading-accessibility and
venn-classification PRDs plus diagrams and wireframes. Update .cursorrules
and Claude instructions for PRD-only workflow (no external discovery links).
Trim mc-populated-blank README to element-local content.

Svelte element packages, delivery-events, player wiring, demo registry,
and e2e changes are intentionally not included in this commit.

Made-with: Cursor
- Add venn-classification delivery/author/controller with optional tile images,
  live author preview with resizable split, generated static docs, and samples.
- Add @pie/delivery-events session bridge; extend player-events and core events.
- Update PieElementPlayer and runtime checks; align mc-populated-blank and
  simple-cloze delivery exports with delivery-events.
- Extend e2e helpers/specs (venn round-trip, matrix, DnD, IIFE) and registry.
- Update venn PRD; add verify-no-svelte-custom-element-tag script.

Made-with: Cursor
Apply the "unsafe" biome fixes that --write skipped during the upstream
update pre-commit hook: optional chaining, Date.now(), and removal of
non-null assertions in venn-classification tests.

Made-with: Cursor
…uild through turbo

- Add vite, @vitejs/plugin-react, typescript, and @types/react(-dom) as
  devDependencies to every packages/lib-react/* package so `bun install`
  (no hoisting) can resolve the plugin when turbo runs `vite build` per
  package. Previously only two of 23 packages (test-utils, categorize)
  were getting scheduled before turbo's first failure in CI, so the
  symptom was intermittent but the bug affected all lib-react packages.

- Add ensureBuildToolDependencies() call to ensurePieLibPackageJson so
  future upstream:update runs regenerate these devDependencies
  deterministically instead of drifting them back out. Bump
  BUILD_TOOLS.VITE to ^8.0.1 and VITE_REACT_PLUGIN to ^6.0.1 so synced
  pie-lib packages stay aligned with elements-react/* and the workspace
  root.

- Route the root `cli` / `cli:dev` scripts through
  `turbo run build --filter=@pie-element/cli`. This picks up the `^build`
  edge in turbo.json, so @pie-element/element-bundler (the workspace
  package imported from tools/cli/src/commands/dev/test-bundler.ts) is
  compiled to dist/ before the CLI's own `tsc` runs. Fixes the
  `dependency-integrity` job on clean runners where the CLI's tsc
  previously failed with TS2307 because element-bundler's declarations
  were not yet emitted.

Made-with: Cursor
…rant of json formatting

The follow-up CI on develop surfaced two remaining red checks after the
previous hoist fixes:

1. `test` job — vitest.config.ts at the repo root imports
   @sveltejs/vite-plugin-svelte, which is only declared in individual
   svelte element/lib packages. With bun's non-hoisting install, the
   root vitest.config.ts could not resolve it and vitest aborted at
   startup. Add it to the root devDependencies so the root config loads
   on a clean runner.

2. `Release / Release to NPM` -> `docs:verify` — the check compared
   generated manifest.json candidates to checked-in artifacts using
   purely textual normalization. The committed manifests are formatted
   slightly differently from `JSON.stringify(manifest, null, 2)` (short
   arrays are rendered inline, likely after a biome pass), which
   produced 30 spurious "drift" files.

   Switch normalizeForCheck to a path-aware comparison: for .json files
   parse both sides and compare by structural equality; for everything
   else keep the timestamp-stripped text compare. Also change the
   timestamp placeholder to a valid ISO-8601 value so JSON.parse still
   works after normalization.

No generated doc outputs were touched — only the comparison logic.

Made-with: Cursor
…et README in release detect

After the previous CI fixes, two pre-existing failures became visible:

1. tests/esm-output.test.ts — asserts every non-private workspace
   package has a built ./dist output. The root build script explicitly
   skips @pie-element/math-inline and @pie-element/math-templated
   (`bun run build` runs `turbo run build --filter=!...` for both),
   so the test always reported missing build outputs once the build
   itself was succeeding. Mirror that exclusion in the test via a
   BUILD_EXCLUDED_PACKAGES set so the two views stay in sync, with a
   comment pointing back to package.json.

2. .github/workflows/release.yml — the "Detect release intent" step
   used `ls .changeset/*.md` to decide whether changesets exist. That
   match always succeeds because `.changeset/README.md` ships with the
   bootstrap, so `has_changesets=true` was effectively a constant. The
   downstream changesets/action then ran `bun run release:publish` on
   every push, and the publish guard
   `changeset-publish-resolved-workspaces.mjs` rightfully rejected
   "publish all packages" with no real version bumps.

   Switch the check to `find .changeset -maxdepth 1 -type f -name '*.md'
   ! -name 'README.md'` so only actual changeset entries trigger
   `has_changesets=true`. The publish path still fires correctly when
   real .changeset/*.md files are present or when a version-bump push
   lands.

Made-with: Cursor
Make ensureBuildToolDependencies always overwrite vite, @vitejs/plugin-react,
typescript, and @types/react{,-dom} with the versions from BUILD_TOOLS / REACT
rather than only filling them in when absent. This way upstream:update can
never silently downgrade the pie-lib build toolchain when an upstream
package.json starts shipping its own pins.

Made-with: Cursor
Keep changesets versioning PRs, but omit the changesets/action publish input and
gate publish-only steps behind ENABLE_CICD_NPM_PUBLISH. Manual workflow publish
is rejected until the flag is flipped and publish is wired back in.

Made-with: Cursor
@chillenious chillenious merged commit 0462448 into master Apr 23, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant