mirror of
https://github.com/discourse/discourse.git
synced 2026-08-09 21:45:25 +08:00
The high-risk migration exposed image operations through a second Vips processor API, which duplicated domain behavior and made output parity harder to review. Keep Vips as the generic sandboxed command runner and place each stock-libvips workflow in its owning model. Preserve metadata and cache-version contracts, retain the existing output optimizer, sharpen resized output to match the established rendering, and keep UploadCreator file handles synchronized after atomic replacements. Exercise the behavior through OptimizedImage, UploadCreator, Upload, ShrinkUploadedImage, and avatar routes so format, orientation, animation, SVG, quality, metadata, failure, and rollback behavior are covered at public boundaries. |
||
|---|---|---|
| .. | ||
| environments | ||
| imagemagick | ||
| initializers | ||
| locales | ||
| application.rb | ||
| boot.rb | ||
| cdn.yml.sample | ||
| database.yml | ||
| deploy.rb.sample | ||
| dev_defaults.yml | ||
| discourse.config.sample | ||
| discourse.pill.sample | ||
| discourse_defaults.conf | ||
| environment.rb | ||
| logrotate.conf | ||
| multisite.yml.production-sample | ||
| nginx.sample.conf | ||
| official_plugins.json | ||
| pitchfork.conf.rb | ||
| projections.json | ||
| routes.rb | ||
| sidekiq.yml | ||
| site_settings.yml | ||
| spring.rb | ||
| thin.yml.sample | ||
| unicorn_launcher | ||