네, 맞습니다. 제가 좀 간략하게 말씀드렸네요.
해당 브라우저는 grid-lanes를 지원하지만, “실험적” 플래그 뒤에 숨겨져 있습니다.
경고 메시지는 무해하며, 해당 기능이 메인 라인으로 이동하면 사라질 것입니다.
현재 실험적 기능 플래그를 설정하지 않고도 이 기능을 지원하는 유일한 브라우저는 …
… Safari입니다! (표준을 Apple이 먼저 적용할 줄 누가 알았겠습니까?
)
네, 맞습니다. 제가 좀 간략하게 말씀드렸네요.
해당 브라우저는 grid-lanes를 지원하지만, “실험적” 플래그 뒤에 숨겨져 있습니다.
경고 메시지는 무해하며, 해당 기능이 메인 라인으로 이동하면 사라질 것입니다.
현재 실험적 기능 플래그를 설정하지 않고도 이 기능을 지원하는 유일한 브라우저는 …
… Safari입니다! (표준을 Apple이 먼저 적용할 줄 누가 알았겠습니까?
)
Horizon이 덜 독단적이고 덜 단일 구조(monolithic)였다면, 다음과 같은 결과가 나왔을 것입니다:
이것은 Horizon의 매우 거친 포크(fork) 버전으로, 과도한 요소와 CSS를 제거하여 TLP와 Bars가 방해받지 않고 제 역할을 할 수 있도록 했습니다!
물론 이 부분은 조금 더 다듬어야 할 것 같습니다 …
오늘 아침 일찍부터 아바타를 변경할 수 없다는 사실을 발견했습니다.
로그는 다음과 같은 내용을 알려 줍니다: Hash를 String으로 암시적으로 변환할 수 없음:
hostname web1-app, [web2-app]
process_id 815
application_version bfe7896ce82d26b70b70d8e6470330331eacd0ab
HTTP_HOST redacted
REQUEST_URI /posts
REQUEST_METHOD POST
HTTP_USER_AGENT Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:153.0) Gecko/20100101 Firefox/153.0
HTTP_ACCEPT */*
HTTP_REFERER https://redacted/
HTTP_X_FORWARDED_FOR redacted
username VladSv
error_message no implicit conversion of Hash into String
instructions convert, [png:/var/www/discourse/tmp/download_cache/dfae3db8fee87a3abc7ad00830e917bab294253e.png[0], -auto-orient, -gravity, center, -background, transparent, -thumbnail, 1024x576^, -extent, 1024x576, -interpolate, catrom, -unsharp, 2x0.5+0.7+0, -interlace, none, -profile, /var/www/discourse/vendor/data/RT_sRGB.icm, png:/tmp/discourse-thumbnail20260808-815-ftpz9a.png]
time 11:26 am
location
upload_id 538657
Message (16783 copies reported)
Failed to optimize image: unknown reason
Backtrace
/var/www/discourse/lib/discourse.rb:1115:in 'block in Discourse.warn'
/var/www/discourse/lib/discourse.rb:1109:in 'Array#each'
/var/www/discourse/lib/discourse.rb:1109:in 'Discourse.warn'
/var/www/discourse/app/models/optimized_image.rb:362:in 'OptimizedImage.convert_with'
/var/www/discourse/plugins/discourse-topic-previews-sidecar/lib/topic_previews/optimized_image_extension.rb:24:in 'TopicPreviews::OptimizedImageExtension#optimize'
/var/www/discourse/app/models/optimized_image.rb:317:in 'OptimizedImage.resize'
/var/www/discourse/app/models/optimized_image.rb:114:in 'block in OptimizedImage.create_for'
/var/www/discourse/app/models/optimized_image.rb:19:in 'block (2 levels) in OptimizedImage.lock'
/var/www/discourse/lib/distributed_mutex.rb:53:in 'block in DistributedMutex#synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in 'Thread::Mutex#synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in 'DistributedMutex#synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in 'DistributedMutex.synchronize'
/var/www/discourse/app/models/optimized_image.rb:19:in 'block in OptimizedImage.lock'
/var/www/discourse/lib/distributed_mutex.rb:53:in 'block in DistributedMutex#synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in 'Thread::Mutex#synchronize'
/var/www/discourse/lib/distributed_mutex.rb:49:in 'DistributedMutex#synchronize'
/var/www/discourse/lib/distributed_mutex.rb:34:in 'DistributedMutex.synchronize'
/var/www/discourse/app/models/optimized_image.rb:18:in 'OptimizedImage.lock'
/var/www/discourse/app/models/optimized_image.rb:82:in 'OptimizedImage.create_for'
/var/www/discourse/app/models/upload.rb:162:in 'Upload#get_optimized_image'
/var/www/discourse/app/controllers/user_avatars_controller.rb:238:in 'UserAvatarsController#get_optimized_image'
/var/www/discourse/app/controllers/user_avatars_controller.rb:138:in 'UserAvatarsController#show_in_site'
/var/www/discourse/app/controllers/user_avatars_controller.rb:91:in 'block (2 levels) in UserAvatarsController#show'
/var/www/discourse/lib/hijack.rb:68:in 'BasicObject#instance_eval'
/var/www/discourse/lib/hijack.rb:68:in 'block (2 levels) in Hijack#hijack'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/i18n-1.14.8/lib/i18n.rb:354:in 'I18n::Base#with_locale'
/var/www/discourse/lib/hijack.rb:68:in 'block in Hijack#hijack'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/promises.rb:911:in 'Concurrent::Promises::Event#callback_on_resolution'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/promises.rb:797:in 'Concurrent::Promises::AbstractEventFuture#call_callback'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/promises.rb:803:in 'Concurrent::Promises::AbstractEventFuture#call_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/promises.rb:692:in 'Concurrent::Promises::AbstractEventFuture#resolve_with'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.7/lib/concurrent-ruby/concurrent/promises.rb:1325:in 'Concurrent::Promises::ResolvableEvent#resolve'
/var/www/discourse/lib/scheduler/defer.rb:135:in 'block in Scheduler::Deferrable#do_work'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in 'RailsMultisite::ConnectionManagement::NullInstance#with_connection'
/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in 'RailsMultisite::ConnectionManagement.with_connection'
/var/www/discourse/lib/scheduler/defer.rb:130:in 'Scheduler::Deferrable#do_work'
/var/www/discourse/lib/scheduler/defer.rb:116:in 'block (2 levels) in Scheduler::Deferrable#start_thread'
이것은 TLP 사이드카 관련 문제로 보입니다. 확인해 보겠습니다.
이것은 코어와의 호환성 문제인 것 같습니다. 사이드카의 프로 버전에서 수정하겠습니다.
이 문제는 https://github.com/merefield/discourse-topic-previews-sidecar-pro/pull/183 에서 해결되어야 합니다.
감사합니다. 이 방법으로 문제가 해결되었습니다.
콘솔에 이런 종류의 오류가 발생합니다 (최신 버전 TLP)
app.js:69 Failed to load theme 30 from https://xxx/theme-javascripts/40a50061299ae50a5bf470c83f9d3db199a93387.js Error: Could not find module `discourse/ui-kit/modifiers/d-pointer-drag` imported from `(require)`
at fae (loader.js:253:13)
at Bp (loader.js:266:5)
at window.requirejs.window.require.window.requireModule (loader.js:24:17)
at chunk-ln9q81id.digested.js:1:999
at Object.lookup (app.js:56:5)
at 40a50061299ae50a5bf470c83f9d3db199a93387.js?__ws=xxxxxxx:1:2134
loadThemeFromModulePreload @ app.js:69
await in loadThemeFromModulePreload
loadThemesAndPlugins @ app.js:127
(anonymous) @ discourse.js:21
await in (anonymous)
(anonymous) @ discourse.js:25
app.js:365 ℹ️ Discourse v2026.7.0-latest — https://github.com/discourse/discourse/commits/f1dcbb24e0 — Ember v6.10.1
client-error-handler.js:109 [THEME 30 'Topic List Previews'] Error: Could not find module `discourse/ui-kit/modifiers/d-pointer-drag` imported from `(require)`
at fae (loader.js:253:13)
at Bp (loader.js:266:5)
at window.requirejs.window.require.window.requireModule (loader.js:24:17)
at chunk-ln9q81id.digested.js:1:999
at Object.lookup (app.js:56:5)
at 40a50061299ae50a5bf470c83f9d3db199a93387.js?__ws=xxx:1:2134
reportToConsole @ client-error-handler.js:109
reportThemeError @ client-error-handler.js:56
(anonymous) @ client-error-handler.js:22
constructor @ client-error-handler.js:22
create @ core.js:583
create @ registry-BJpQx6hv.js:400
instantiateFactory @ registry-BJpQx6hv.js:292
lookup @ registry-BJpQx6hv.js:238
lookup @ registry-BJpQx6hv.js:131
lookup @ container_proxy.js:27
initialize @ boot-services.js:3
(anonymous) @ index.js:375
(anonymous) @ index.js:183
(anonymous) @ index.js:112
(anonymous) @ index.js:59
(anonymous) @ index.js:65
_runInitializer @ index.js:388
runInstanceInitializers @ index.js:373
_bootSync @ instance.js:111
didBecomeReady @ index.js:780
invoke @ index.js:262
flush @ index.js:180
flush @ index.js:334
_end @ index.js:762
(anonymous) @ index.js:499
Promise.then
(anonymous) @ index.js:18
flush @ index.js:29
_scheduleAutorun @ index.js:928
_ensureInstance @ index.js:919
schedule @ index.js:618
schedule @ index.js:343
waitForDOMReady @ index.js:508
init @ index.js:408
initialize @ core.js:97
create @ core.js:599
(anonymous) @ discourse.js:23
await in (anonymous)
(anonymous) @ discourse.js:25
최소 v2026.8.0 이상이어야 합니다 ![]()
구버지 빌드를 지원하려는 경향이 없지만, 고정(pin)을 추가하겠습니다.
완료되었습니다. 다만 롤백이 까다로울 수 있으니, v2026.8.0 이상(또는 v2026.9.x-latest)으로 업그레이드하는 것이 가장 간단할 것 같습니다.