Skip to content

v3.38.0

Choose a tag to compare

@tjloong tjloong released this 22 Oct 15:02
· 2 commits to main since this release
be81c81

Two readiness tools for the move to atom 4. Nothing in components, styles, JS or traits changes.

Things a host may notice without doing anything

  • A plain php artisan atom:tiptap-migrate no longer writes: it is a dry run, and --force converts. A deploy script that ran it must pass --force.
  • --force now exits 1 when a write failed or a refused value remains, which can fail a set -e deploy.
  • atom:purge-editor-images now also keeps images referenced by migration backups, and reads the backup table on every discovered model's connection, so an unreachable secondary connection stops the run. A model with no editor column on an undefined connection is warned about and skipped.

New: php artisan atom:upgrade-check

A read-only scan for everything atom 4 changes, built from v4's UPGRADE.md: each finding with file:line, a severity (breaks at runtime / visual change / review) and whether atom:upgrade will fix it or only report it. It also lists the traits each AtomComponent user will need, the <atom: tags in use, published atom views to re-check, and whether the atom section of your CLAUDE.md / AGENTS.md is current. --json, --output=, --path=, --all. It writes nothing except --output, and the report quotes matching lines, so treat that file like source code.

Updated: atom:tiptap-migrate v2

Converts legacy editor content to Tiptap JSON reversibly:

  • dry run by default; --force converts clean rows only; --accept=<ids> converts rows you reviewed;
  • every original is kept in an atom_editor_backups table (created on first use); --restore[=ids] puts rows back byte for byte;
  • --compare writes a JSONL review file (original vs new) for a person or Claude to check;
  • --prune-backups (asks; --confirm-prune when non-interactive) once you are satisfied;
  • --status, and --status --for-v4 to gate the upgrade.

On 3.x, AsEditorContent columns can be migrated; switch the cast to AsTiptapContent first and fix any raw-HTML printing of the column. See the README.

Full changes: #122