Skip to content

Harden and centralize the cache invalidation - #5493

Merged
myovchev merged 1 commit into
mainfrom
PRO-8582-cache
Jun 26, 2026
Merged

myovchev merged 1 commit into
mainfrom
PRO-8582-cache

Conversation

@myovchev

Copy link
Copy Markdown
Contributor

Please indicate which branch this PR should merge into:

  • main
  • latest
  • stable

Summary

Fixed the admin UI sometimes serving a stale build after dependencies changed (for example after npm install or npm update). Apostrophe now detects dependency changes from the content of the lock file rather than its modified time, which could be misleading after a fresh checkout or a restored CI/Docker build cache. The cache invalidation is now core responsibility and not separate manual task for both the internal Webpack and the external Vite build module.

What kind of change does this PR introduce?

(Check at least one)

  • Bug fix
  • New feature
  • Refactor
  • Documentation
  • Build-related changes
  • Other

Make sure the PR fulfills these requirements:

  • It includes a) the existing issue ID being resolved, b) a convincing reason for adding this feature, or c) a clear description of the bug it resolves
  • The changelog is updated
  • Related documentation has been updated
  • Related tests have been updated

If adding a new feature without an already open issue, it's best to open a feature request issue first and wait for approval before working on it.

Other information:

@linear

linear Bot commented Jun 25, 2026

Copy link
Copy Markdown

PRO-8582

@myovchev
myovchev requested a review from boutell June 25, 2026 14:26
// cold run can be fast due to OS-level caching.
const gain = (execTime - execTimeCached) / execTime * 100;
assert(gain >= 10, `Expected gain >=10%, got ${gain}%`);
assert(gain >= 5, `Expected gain >=5%, got ${gain}%`);

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

5 because I'm tired of random false positives.

Comment thread .gitignore
claude-tools/logs/
.claude
specs/
scratch/

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So that we have a safe local playground.

@myovchev
myovchev merged commit 572ef61 into main Jun 26, 2026
21 checks passed
@myovchev
myovchev deleted the PRO-8582-cache branch June 26, 2026 09:01
boutell added a commit that referenced this pull request Jul 8, 2026
* Fix asset URLs when a site prefix is configured (#5448)

* fix: treat col as a self-closing tag (#5447)

* fix: treat col as a self-closing tag

* Make dateTime field responsive (css) (#5481)

* Fix/from rich text adds metatype (#5488)

* fromRichText adds metatype to new widget

* change

* nodemailer major bump (#5485)

* Harden and centralize the cache invalidation (#5493)

* fix(sanitize-html): emit transformTags text on empty tags when textFilter is set (#5494)

When a transformTags handler adds text to an allowed tag that originally had
no text content, the injected text was silently dropped if any textFilter was
configured. The onopentag branch that emits frame.innerText was guarded by
!options.textFilter, deferring emission to ontext so the filter could run
there. For an empty element htmlparser2 never fires ontext, so the text was
emitted by neither branch.

Emit frame.innerText through options.textFilter here when present (mirroring
the discard path), so the transformTags text contract holds for empty tags
regardless of whether a textFilter is set.

* changeset crediting spokodev for sanitize-html fix (#5498)

* Fix shortcut conflicts (#5499)

* Fix backspace after slash deleting a rich-text widget

* Fix copy/paste widget/text conflicts

* Fix astro redirects (#5500)

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* Merge commit from fork

* fix path traversal in import/export

* correct credits

* additional guards

* Merge commit from fork

* fix for </textarea/> vulnerability (#5501)

* wip

* fix for math/svg vulnerabilities

---------

Co-authored-by: Jinka Manohar <145598597+Manohar2503@users.noreply.github.com>
Co-authored-by: Vansh Parmar <vanshparmar8742@gmail.com>
Co-authored-by: Miro Yovchev <2827783+myovchev@users.noreply.github.com>
Co-authored-by: Stuart Romanek <stuart@apostrophecms.com>
Co-authored-by: spokodev <spoko.dev@gmail.com>
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.

2 participants