[pull] main from tinacms:main#269
Merged
Merged
Conversation
…7122) Closes #7120 **TL;DR** The install step now reflects the package manager's live output on the spinner, instead of a static "Installing packages." that gave no sign of progress. **Pain:** `create-tina-app` ran `<pm> install` with stdout ignored, so "Installing packages." showed no progress for the whole install (the Astro starter pulls ~900 packages / 1.2 GB, minutes on a cold cache). An animated spinner alone doesn't tell you the child is actually making progress. **Solution:** Pipe the package manager's output and show its latest line on the spinner, e.g. `Installing packages, npm http fetch GET 200 .../vite`. npm is silent when piped so it gets `--loglevel=http`; pnpm and yarn stream on their own. Both stdout and stderr are piped (npm logs to stderr, pnpm/yarn to stdout), and `NO_COLOR` keeps the captured lines plain. `--verbose` still streams the full output, and the #7031 stderr-tail error capture is unchanged. --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
…ath allowlist (#7143) Closes #7142 **TL;DR** Unify folder-name validation with the document-filename and backend `relativePath` allowlist so invalid folder names (e.g. spaces) are rejected inline instead of failing on the backend with a generic error. **Pain:** The Create Folder modal only checked that a name was non-empty unless a project set `ui.regexValidation.folderNameRegex`. A name like `a b c d` passed that check, the `createFolder` mutation was sent, and the backend rejected it with `Invalid path: relativePath contains invalid characters`, surfaced as the unhelpful "There was an error creating the folder. Please try again. If the problem continues, please contact the developer" alert. Document filenames already validated the same allowlist inline, so the two flows had drifted. **Solution:** Add a single shared allowlist (`RELATIVE_PATH_REGEX` + `RELATIVE_PATH_ALLOWED_CHARS_MESSAGE` + `isValidRelativePath`) to `@tinacms/schema-tools`, and consume it from the resolver's `validateRelativePath`, the create-document filename field, and the Create Folder modal. The folder modal applies the allowlist as a baseline and layers any project-level `folderNameRegex` on top, so the UI can only ever be stricter than the backend, never looser. Backend enforcement is unchanged and remains the authoritative path-traversal gate; the client change is UX only. --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
## TL;DR Bumps the `@playwright/test` catalog entry from `^1.50.1` to `^1.61.1` — four additive minor releases; none of the removed deprecations (`_react=`/`_vue=` selectors, `:light` suffix, `devtools` launch option) appear in our test code. Also switches `examples/react/kitchen-sink` from a hardcoded `^1.49.0` to `catalog:` so all seven consumers share the workspace version. Dev/test-only dependency; both test suites compile and list cleanly on 1.61.1 (`playwright test --list`), and the existing Playwright E2E job covers the rest. ## Links - Dependency audit: tinacms/tinacloud#3820 Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## tinacms@3.10.0 ### Minor Changes - [#7136](#7136) [`c809733`](c809733) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - editorial workflow - add toggle to switch PRs created between draft and ready to review mode ### Patch Changes - [#7141](#7141) [`3a1b39a`](3a1b39a) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Update `@radix-ui/*` dependencies to their latest patch/minor releases and remove the unused `@radix-ui/react-checkbox` dependency - [#7140](#7140) [`de4a807`](de4a807) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Add a PostHog `editorial-workflow-save` event that records which save option was used in the "Save changes to new branch" modal (draft, ready for review, or publish), whether the save succeeded, and the failure reason when it didn't. - [#7138](#7138) [`8497110`](8497110) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Editorial workflow: replace the draft / ready-for-review toggle in the "Save changes to new branch" modal with a save-options dropdown (Save draft, Save (ready for review), Save and publish). The split button's main action reflects the editor's last choice (default Save draft, remembered via localStorage), and Save and publish is disabled with a tooltip on protected branches. - [#7131](#7131) [`22d0c0d`](22d0c0d) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - move floatingtoolbar for links to a react portal - [#7123](#7123) [`5148d67`](5148d67) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - refactor: replace hardcoded error-message string checks with shared error-identifier constants in `@tinacms/schema-tools`, so producers and consumers reference one source of truth instead of fragile `error.message.includes('...')` matching (#6777) - [#7143](#7143) [`ff10e65`](ff10e65) Thanks [@kulesy](https://github.com/kulesy)! - Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. - [#7128](#7128) [`b53a51c`](b53a51c) Thanks [@Aibono1225](https://github.com/Aibono1225)! - Harden message handling in the `useEditState` hook so it validates the sender of incoming `message` events, matching the `isFromAdmin(event, trustedAdminOrigins)` check already used by `useTina`. The hook now also removes its `message` listener on unmount. Legitimate admin→preview behavior is unchanged. - Updated dependencies [[`5148d67`](5148d67), [`ff10e65`](ff10e65)]: - @tinacms/schema-tools@2.8.3 - @tinacms/mdx@2.1.9 - @tinacms/search@1.2.21 ## @tinacms/app@2.5.8 ### Patch Changes - Updated dependencies [[`c809733`](c809733), [`3a1b39a`](3a1b39a), [`de4a807`](de4a807), [`8497110`](8497110), [`22d0c0d`](22d0c0d), [`5148d67`](5148d67), [`ff10e65`](ff10e65), [`b53a51c`](b53a51c)]: - tinacms@3.10.0 - @tinacms/mdx@2.1.9 ## @tinacms/cli@2.5.3 ### Patch Changes - [#7157](#7157) [`aef9de0`](aef9de0) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - Bump `@tailwindcss/typography` to 0.5.20 - Updated dependencies [[`c809733`](c809733), [`3a1b39a`](3a1b39a), [`de4a807`](de4a807), [`8497110`](8497110), [`22d0c0d`](22d0c0d), [`5148d67`](5148d67), [`ff10e65`](ff10e65), [`b53a51c`](b53a51c)]: - tinacms@3.10.0 - @tinacms/schema-tools@2.8.3 - @tinacms/graphql@2.4.7 - @tinacms/app@2.5.8 - @tinacms/search@1.2.21 ## @tinacms/datalayer@2.0.27 ### Patch Changes - Updated dependencies [[`5148d67`](5148d67), [`ff10e65`](ff10e65)]: - @tinacms/graphql@2.4.7 ## @tinacms/graphql@2.4.7 ### Patch Changes - [#7123](#7123) [`5148d67`](5148d67) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - refactor: replace hardcoded error-message string checks with shared error-identifier constants in `@tinacms/schema-tools`, so producers and consumers reference one source of truth instead of fragile `error.message.includes('...')` matching (#6777) - [#7143](#7143) [`ff10e65`](ff10e65) Thanks [@kulesy](https://github.com/kulesy)! - Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. - Updated dependencies [[`5148d67`](5148d67), [`ff10e65`](ff10e65)]: - @tinacms/schema-tools@2.8.3 - @tinacms/mdx@2.1.9 ## @tinacms/mdx@2.1.9 ### Patch Changes - Updated dependencies [[`5148d67`](5148d67), [`ff10e65`](ff10e65)]: - @tinacms/schema-tools@2.8.3 ## @tinacms/schema-tools@2.8.3 ### Patch Changes - [#7123](#7123) [`5148d67`](5148d67) Thanks [@joshbermanssw](https://github.com/joshbermanssw)! - refactor: replace hardcoded error-message string checks with shared error-identifier constants in `@tinacms/schema-tools`, so producers and consumers reference one source of truth instead of fragile `error.message.includes('...')` matching (#6777) - [#7143](#7143) [`ff10e65`](ff10e65) Thanks [@kulesy](https://github.com/kulesy)! - Unify folder-name validation with the document-filename and backend `relativePath` allowlist. The Create Folder modal now rejects names with disallowed characters (e.g. spaces) inline instead of letting the request fail on the backend, and a project-level `folderNameRegex` is layered on top of that baseline. The allowlist lives in a single shared constant in `@tinacms/schema-tools`. ## @tinacms/search@1.2.21 ### Patch Changes - Updated dependencies [[`5148d67`](5148d67), [`ff10e65`](ff10e65)]: - @tinacms/schema-tools@2.8.3 - @tinacms/graphql@2.4.7 ## @tinacms/vercel-previews@0.2.17 ### Patch Changes - Updated dependencies [[`c809733`](c809733), [`3a1b39a`](3a1b39a), [`de4a807`](de4a807), [`8497110`](8497110), [`22d0c0d`](22d0c0d), [`5148d67`](5148d67), [`ff10e65`](ff10e65), [`b53a51c`](b53a51c)]: - tinacms@3.10.0 ## create-tina-app@2.1.10 ### Patch Changes - [#7122](#7122) [`90833f1`](90833f1) Thanks [@kulesy](https://github.com/kulesy)! - feat(create-tina-app): stream live install activity on the spinner ## next-tinacms-azure@15.0.0 ### Patch Changes - Updated dependencies [[`c809733`](c809733), [`3a1b39a`](3a1b39a), [`de4a807`](de4a807), [`8497110`](8497110), [`22d0c0d`](22d0c0d), [`5148d67`](5148d67), [`ff10e65`](ff10e65), [`b53a51c`](b53a51c)]: - tinacms@3.10.0 ## next-tinacms-cloudinary@27.0.0 ### Patch Changes - Updated dependencies [[`c809733`](c809733), [`3a1b39a`](3a1b39a), [`de4a807`](de4a807), [`8497110`](8497110), [`22d0c0d`](22d0c0d), [`5148d67`](5148d67), [`ff10e65`](ff10e65), [`b53a51c`](b53a51c)]: - tinacms@3.10.0 ## next-tinacms-dos@24.0.0 ### Patch Changes - Updated dependencies [[`c809733`](c809733), [`3a1b39a`](3a1b39a), [`de4a807`](de4a807), [`8497110`](8497110), [`22d0c0d`](22d0c0d), [`5148d67`](5148d67), [`ff10e65`](ff10e65), [`b53a51c`](b53a51c)]: - tinacms@3.10.0 ## next-tinacms-s3@24.0.0 ### Patch Changes - Updated dependencies [[`c809733`](c809733), [`3a1b39a`](3a1b39a), [`de4a807`](de4a807), [`8497110`](8497110), [`22d0c0d`](22d0c0d), [`5148d67`](5148d67), [`ff10e65`](ff10e65), [`b53a51c`](b53a51c)]: - tinacms@3.10.0 ## tinacms-authjs@24.0.0 ### Patch Changes - Updated dependencies [[`c809733`](c809733), [`3a1b39a`](3a1b39a), [`de4a807`](de4a807), [`8497110`](8497110), [`22d0c0d`](22d0c0d), [`5148d67`](5148d67), [`ff10e65`](ff10e65), [`b53a51c`](b53a51c)]: - tinacms@3.10.0 - @tinacms/schema-tools@2.8.3 ## tinacms-clerk@24.0.0 ### Patch Changes - Updated dependencies [[`c809733`](c809733), [`3a1b39a`](3a1b39a), [`de4a807`](de4a807), [`8497110`](8497110), [`22d0c0d`](22d0c0d), [`5148d67`](5148d67), [`ff10e65`](ff10e65), [`b53a51c`](b53a51c)]: - tinacms@3.10.0 ## tinacms-gitprovider-github@4.1.14 ### Patch Changes - Updated dependencies []: - @tinacms/datalayer@2.0.27 Co-authored-by: Tina Release Bot <bot@tina.io>
…#7160) Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )