about summary refs log tree commit diff
path: root/config
diff options
context:
space:
mode:
authorOndřej Hruška <ondra@ondrovo.com>2017-09-28 09:18:35 +0200
committerOndřej Hruška <ondra@ondrovo.com>2017-09-28 09:18:35 +0200
commit83bda6c1a813c5aeb131b18a0500fed0c07fa9c2 (patch)
tree32f197901b4b16ea7f94de682fee6cdc44686045 /config
parentfcf0d2078ea813e0dd318fa154d620018e7b7bcf (diff)
parentb9f59ebcc68e9da0a7158741a1a2ef3564e1321e (diff)
Merge commit 'b9f59ebcc68e9da0a7158741a1a2ef3564e1321e' into merging-upstream
Diffstat (limited to 'config')
-rw-r--r--config/i18n-tasks.yml1
-rw-r--r--config/initializers/doorkeeper.rb9
-rw-r--r--config/initializers/ostatus.rb1
-rw-r--r--config/initializers/strong_migrations.rb3
-rw-r--r--config/locales/devise.ja.yml2
-rw-r--r--config/locales/doorkeeper.ja.yml4
-rw-r--r--config/locales/doorkeeper.oc.yml4
-rw-r--r--config/locales/doorkeeper.pl.yml2
-rw-r--r--config/locales/en.yml5
-rw-r--r--config/locales/ja.yml36
-rw-r--r--config/locales/oc.yml25
-rw-r--r--config/locales/pl.yml18
-rw-r--r--config/locales/simple_form.ja.yml6
-rw-r--r--config/locales/simple_form.oc.yml2
-rw-r--r--config/locales/simple_form.pl.yml2
-rw-r--r--config/routes.rb1
-rw-r--r--config/webpacker.yml22
17 files changed, 116 insertions, 27 deletions
diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml
index b51cf46df..b35e5c09a 100644
--- a/config/i18n-tasks.yml
+++ b/config/i18n-tasks.yml
@@ -45,6 +45,7 @@ ignore_missing:
   - 'sessions.{browsers,platforms}.*'
   - 'terms.body_html'
   - 'application_mailer.salutation'
+  - 'errors.500'
 ignore_unused:
   - 'activemodel.errors.*'
   - 'activerecord.attributes.*'
diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb
index 689e2ac4a..074f8c410 100644
--- a/config/initializers/doorkeeper.rb
+++ b/config/initializers/doorkeeper.rb
@@ -7,15 +7,14 @@ Doorkeeper.configure do
     current_user || redirect_to(new_user_session_url)
   end
 
-  resource_owner_from_credentials do |routes|
-    request.params[:user] = { email: request.params[:username], password: request.params[:password] }
-    request.env["devise.allow_params_authentication"] = true
-    request.env["warden"].authenticate!(scope: :user)
+  resource_owner_from_credentials do |_routes|
+    user = User.find_by(email: request.params[:username])
+    user if !user&.otp_required_for_login? && user&.valid_password?(request.params[:password])
   end
 
   # If you want to restrict access to the web interface for adding oauth authorized applications, you need to declare the block below.
   admin_authenticator do
-    (current_user && current_user.admin?) || redirect_to(new_user_session_url)
+    current_user&.admin? || redirect_to(new_user_session_url)
   end
 
   # Authorization Code expiration time (default 10 minutes).
diff --git a/config/initializers/ostatus.rb b/config/initializers/ostatus.rb
index c00aba0de..ba96fda22 100644
--- a/config/initializers/ostatus.rb
+++ b/config/initializers/ostatus.rb
@@ -18,7 +18,6 @@ Rails.application.configure do
 
   config.action_mailer.default_url_options = { host: web_host, protocol: https ? 'https://' : 'http://', trailing_slash: false }
   config.x.streaming_api_base_url          = 'ws://localhost:4000'
-  config.x.use_ostatus_privacy             = true
 
   if Rails.env.production?
     config.x.streaming_api_base_url = ENV.fetch('STREAMING_API_BASE_URL') { "ws#{https ? 's' : ''}://#{web_host}" }
diff --git a/config/initializers/strong_migrations.rb b/config/initializers/strong_migrations.rb
new file mode 100644
index 000000000..3d7beac9f
--- /dev/null
+++ b/config/initializers/strong_migrations.rb
@@ -0,0 +1,3 @@
+# frozen_string_literal: true
+
+StrongMigrations.start_after = 20170924022025 if Rails.env.development?
diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml
index 2001abe96..aa333920e 100644
--- a/config/locales/devise.ja.yml
+++ b/config/locales/devise.ja.yml
@@ -11,7 +11,7 @@ ja:
       invalid: "%{authentication_keys}かパスワードが誤っています。"
       last_attempt: あと1回失敗するとアカウントがロックされます。
       locked: アカウントはロックされました。
-      not_found_in_database: "%{authentication_keys}かパスワードが誤っています"
+      not_found_in_database: "%{authentication_keys}かパスワードが誤っています。"
       timeout: セッションの有効期限が切れました。続行するには再度ログインしてください。
       unauthenticated: 続行するにはログインするか、アカウントを作成してください。
       unconfirmed: 続行するにはメールアドレスを確認する必要があります。
diff --git a/config/locales/doorkeeper.ja.yml b/config/locales/doorkeeper.ja.yml
index 0b670fda4..1f145eaa3 100644
--- a/config/locales/doorkeeper.ja.yml
+++ b/config/locales/doorkeeper.ja.yml
@@ -25,14 +25,14 @@ ja:
         edit: 編集
         submit: 送信
       confirmations:
-        destroy: 本当に削除しますか?
+        destroy: 本当に削除しますか?
       edit:
         title: アプリの編集
       form:
         error: フォームにエラーが無いか確認してください。
       help:
         native_redirect_uri: ローカルテストに %{native_redirect_uri} を使用
-        redirect_uri: 一行に一つのURLを入力してください
+        redirect_uri: 一行に一つのURLを入力してください。
         scopes: アクセス権は半角スペースで区切ることができます。 空白のままにするとデフォルトを使用します。
       index:
         application: アプリ
diff --git a/config/locales/doorkeeper.oc.yml b/config/locales/doorkeeper.oc.yml
index 6069b77ad..1ec1b69e8 100644
--- a/config/locales/doorkeeper.oc.yml
+++ b/config/locales/doorkeeper.oc.yml
@@ -6,7 +6,7 @@ oc:
         name: Nom
         redirect_uri: URL de redireccion
         scopes: Encastres
-        website: Aplicacion web
+        website: Site de l’aplicacion
     errors:
       models:
         doorkeeper/application:
@@ -63,7 +63,7 @@ oc:
         prompt: L’aplicacion %{client_name} demanda l’accès al vòstre compte.
         title: Cal l’autorizacion
       show:
-        title: Copy this authorization code and paste it to the application.
+        title: Copiatz lo còdi d’autorizacion e pegatz-lo dins l’aplicacion.
     authorized_applications:
       buttons:
         revoke: Revocar
diff --git a/config/locales/doorkeeper.pl.yml b/config/locales/doorkeeper.pl.yml
index 824a6be90..fa4324e4d 100644
--- a/config/locales/doorkeeper.pl.yml
+++ b/config/locales/doorkeeper.pl.yml
@@ -63,7 +63,7 @@ pl:
         prompt: Aplikacja %{client_name} prosi o dostęp do Twojego konta
         title: Wymagana jest autoryzacja
       show:
-        title: Copy this authorization code and paste it to the application.
+        title: Skopiuj kod uwierzytelniający i wklej go w aplikacji.
     authorized_applications:
       buttons:
         revoke: Unieważnij
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 9013f0ac9..f87d8532c 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -310,6 +310,9 @@ en:
       content: Security verification failed. Are you blocking cookies?
       title: Security verification failed
     '429': Throttled
+    '500':
+      content: We're sorry, but something went wrong on our end.
+      title: This page is not correct
     noscript_html: To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">native apps</a> for Mastodon for your platform.
   exports:
     blocks: You block
@@ -552,6 +555,8 @@ en:
 
       <p>Originally adapted from the <a href="https://github.com/discourse/discourse">Discourse privacy policy</a>.</p>
     title: "%{instance} Terms of Service and Privacy Policy"
+  themes:
+    default: Mastodon
   time:
     formats:
       default: "%b %d, %Y, %H:%M"
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index f7170f6a3..5ffc09ab9 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -50,7 +50,7 @@ ja:
     unfollow: フォロー解除
   admin:
     accounts:
-      are_you_sure: 本当に実行しますか?
+      are_you_sure: 本当に実行しますか?
       confirm: 確認
       confirmed: 確認済み
       disable_two_factor_authentication: 二段階認証を無効にする
@@ -108,6 +108,18 @@ ja:
       unsubscribe: 購読の解除
       username: ユーザー名
       web: Web
+    custom_emojis:
+      created_msg: 絵文字の追加に成功しました
+      delete: 削除
+      destroyed_msg: 絵文字の削除に成功しました
+      emoji: 絵文字
+      image_hint: 50KBまでのPNG画像を利用できます。
+      new:
+        title: 新規カスタム絵文字の追加
+      shortcode: ショートコード
+      shortcode_hint: 2文字以上の半角英数字とアンダーバーのみ利用できます。
+      title: カスタム絵文字
+      upload: アップロード
     domain_blocks:
       add_new: 新規追加
       created_msg: ドメインブロック処理を完了しました
@@ -179,7 +191,7 @@ ja:
         username: 連絡先のユーザー名
       registrations:
         closed_message:
-          desc_html: 新規登録を停止しているときにフロントページに表示されます。HTMLタグが使えます
+          desc_html: 新規登録を停止しているときにフロントページに表示されます。HTMLタグが使えます。
           title: 新規登録停止時のメッセージ
         deletion:
           desc_html: 誰でも自分のアカウントを削除できるようにします
@@ -191,10 +203,10 @@ ja:
         desc_html: フロントページへの表示と meta タグに使用される紹介文です。HTMLタグ、特に<code>&lt;a&gt;</code> と <code>&lt;em&gt;</code>が使えます。
         title: インスタンスの説明
       site_description_extended:
-        desc_html: あなたのインスタンスにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます
+        desc_html: あなたのインスタンスにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます。
         title: カスタム詳細説明
       site_terms:
-        desc_html: あなたは独自のプライバシーポリシーや利用規約、そのほかの法的根拠を書くことができます。HTMLタグが使えます
+        desc_html: あなたは独自のプライバシーポリシーや利用規約、そのほかの法的根拠を書くことができます。HTMLタグが使えます。
         title: カスタム利用規約
       site_title: インスタンスの名前
       thumbnail:
@@ -261,7 +273,7 @@ ja:
     error: 残念ながら、リモートアカウント情報の取得中にエラーが発生しました。
     follow: フォロー
     follow_request: 'あなたは以下のアカウントにフォローリクエストを送信しました:'
-    following: '成功! あなたは現在以下のアカウントをフォローしています:'
+    following: '成功! あなたは現在以下のアカウントをフォローしています:'
     post_follow:
       close: またはこのウィンドウを閉じます
       return: ユーザーのプロフィールに戻る
@@ -290,7 +302,7 @@ ja:
     warning_html: 削除が保証されるのはこのインスタンス上のコンテンツのみです。他のインスタンス等、外部に広く共有されたコンテンツについては痕跡が残ることがあります。また、現在接続できないサーバーや、あなたの更新を受け取らなくなったサーバーに対しては、削除は反映されません。
     warning_title: 共有されたコンテンツについて
   errors:
-    '403': このページを表示する権限がありません
+    '403': このページを表示する権限がありません。
     '404': お探しのページは見つかりませんでした。
     '410': お探しのページはもう存在しません。
     '422':
@@ -321,11 +333,11 @@ ja:
     powered_by: powered by %{link}
     save_changes: 変更を保存
     validation_errors:
-      one: エラーが発生しました。以下のエラーを確認してください
-      other: エラーが発生しました。以下の%{count}個のエラーを確認してください
+      one: エラーが発生しました。以下のエラーを確認してください。
+      other: エラーが発生しました。以下の%{count}個のエラーを確認してください。
   imports:
     preface: 他のインスタンスでエクスポートされたファイルから、フォロー/ブロックした情報をこのインスタンス上のアカウントにインポートできます。
-    success: ファイルは正常にアップロードされ、現在処理中です。しばらくしてから確認してください
+    success: ファイルは正常にアップロードされ、現在処理中です。しばらくしてから確認してください。
     types:
       blocking: ブロックしたアカウントリスト
       following: フォロー中のアカウントリスト
@@ -354,7 +366,7 @@ ja:
       body: "%{name} さんにフォローされています"
       subject: "%{name} さんにフォローされています"
     follow_request:
-      body: "%{name} さんがあなたにフォローをリクエストしました。"
+      body: "%{name} さんがあなたにフォローをリクエストしました"
       subject: "%{name} さんからのフォローリクエスト"
     mention:
       body: "%{name} さんから返信がありました:"
@@ -539,11 +551,13 @@ ja:
 
       <p>オリジナルの出典 <a href="https://github.com/discourse/discourse">Discourse privacy policy</a>.</p>
     title: "%{instance} 利用規約・プライバシーポリシー"
+  themes:
+    default: Mastodon
   time:
     formats:
       default: "%Y年%m月%d日 %H:%M"
   two_factor_authentication:
-    code_hint: 確認するには認証アプリで表示されたコードを入力してください
+    code_hint: 確認するには認証アプリで表示されたコードを入力してください。
     description_html: "<strong>二段階認証</strong>を有効にするとログイン時、電話でコードを受け取る必要があります。"
     disable: 無効
     enable: 有効
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 5d9506132..584f4c609 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -60,6 +60,7 @@ oc:
       email: Corrièl
       feed_url: Flux URL
       followers: Seguidors
+      followers_url: URL dels seguidors
       follows: Abonaments
       inbox_url: URL de recepcion
       ip: IP
@@ -92,6 +93,7 @@ oc:
       reset_password: Reïnicializar lo senhal
       resubscribe: Se tornar abonar
       salmon_url: URL Salmon
+      shared_inbox_url: URL de recepcion partejada
       search: Cercar
       show:
         created_reports: Rapòrts creat per aqueste compte
@@ -106,6 +108,18 @@ oc:
       unsubscribe: Se desabonar
       username: Nom d’utilizaire
       web: Web
+    custom_emojis:
+      created_msg: Emoji ben creat !
+      delete: Suprimir
+      destroyed_msg: Emojo ben suprimit !
+      emoji: Emoji
+      image_hint: PNG cap a 50Ko
+      new:
+        title: Ajustar un nòu emoji personal
+      shortcode: Acorchi
+      shortcode_hint: Almens 2 caractèrs, solament alfanumerics e jonhent bas
+      title: Emojis personals
+      upload: Enviar
     domain_blocks:
       add_new: N’ajustar un nòu
       created_msg: Domeni blocat es a èsser tractat
@@ -141,6 +155,8 @@ oc:
     instances:
       account_count: Comptes coneguts
       domain_name: Domeni
+      reset: Reïnicializar
+      search: Cercar
       title: Instàncias conegudas
     reports:
       action_taken_by: Mesura menada per
@@ -167,6 +183,9 @@ oc:
       unresolved: Pas resolguts
       view: Veire
     settings:
+      bootstrap_timeline_accounts:
+        desc_html: Separatz los noms d’utilizaire amb de virgula. Pas que los comptes locals e pas clavats foncionaràn. Se lo camp es void los admins seràn selecionats.
+        title: Per defaut los nouvenguts sègon
       contact_information:
         email: Picatz una adreça de corrièl
         username: Picatz un nom d’utilizaire
@@ -190,6 +209,9 @@ oc:
         desc_html: Afichada sus la pagina de las condicions d’utilizacion<br>Podètz utilizar de balisas HTML
         title: Politica de confidencialitat del site
       site_title: Títol del site
+      thumbnail:
+        desc_html: Servís pels apercebuts via OpenGraph e las API. Talha de 1200x630px recomandada.
+        title: Miniatura de l’instància
       timeline_preview:
         desc_html: Mostrar lo flux public sus la pagina d’acuèlh
         title: Apercebut flux public
@@ -521,6 +543,7 @@ oc:
     open_in_web: Dobrir sul web
     over_character_limit: limit de %{max} caractèrs passat
     pin_errors:
+      limit: Tròp de tuts penjats
       ownership: Se pòt pas penjar lo tut de qualqu’un mai
       private: Se pòt pas penjar los tuts pas publics
       reblog: Se pòt pas penjar un tut partejat
@@ -607,6 +630,8 @@ oc:
 
       <p>Prima adaptacion de la <a href="https://github.com/discourse/discourse">politica de confidencialitat de Discourse</a>.</p>
     title: Condicions d’utilizacion e politica de confidencialitat de %{instance}
+  themes:
+    default: Mastodon
   time:
     formats:
       default: Lo %d %b de %Y a %Ho%M
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 4dbbd7cb1..9bf57e38b 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -62,6 +62,7 @@ pl:
       followers: Śledzący
       followers_url: Adres śledzących
       follows: Śledzeni
+      inbox: Adres skrzynki
       ip: Adres IP
       location:
         all: Wszystkie
@@ -105,6 +106,18 @@ pl:
       unsubscribe: Przestań subskrybować
       username: Nazwa użytkownika
       web: Sieć
+    custom_emojis:
+      created_msg: Pomyślnie utworzono emoji!
+      delete: Usuń
+      destroyed_msg: Pomyślnie usunięto emoji!
+      emoji: Emoji
+      image_hint: Plik PNG ważący do 50KB
+      new:
+        title: Dodaj nowe niestandardowe emoji
+      shortcode: Shortcode
+      shortcode_hint: Co najmniej 2 znaki, tylko znaki alfanumeryczne i podkreślniki
+      title: Niestandardowe emoji
+      upload: Wyślij
     domain_blocks:
       add_new: Dodaj nową
       created_msg: Blokada domen jest przetwarzana
@@ -294,6 +307,9 @@ pl:
       content: Sprawdzanie bezpieczeństwa nie powiodło się. Czy blokujesz pliki cookie?
       title: Sprawdzanie bezpieczeństwa nie powiodło się
     '429': Uduszono
+    '500':
+      content: Przepraszamy, coś poszło nie tak…
+      title: Ta strona jest nieprawidłowa
     noscript_html: Aby korzystać z aplikacji Mastodon, włącz JavaScript. Możesz też skorzystać z jednej z <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md">natywnych aplikacji</a> obsługującej Twoje urządzenie.
   exports:
     blocks: Zablokowani
@@ -540,6 +556,8 @@ pl:
 
       <p>Tekst bazuje na <a href="https://github.com/discourse/discourse">polityce prywatności Discourse</a>.</p>
     title: Zasady korzystania i polityka prywatności %{instance}
+  themes:
+    default: Mastodon
   time:
     formats:
       default: "%b %d, %Y, %H:%M"
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index 70389e948..17b35ba8f 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -6,11 +6,12 @@ ja:
         avatar: 2MBまでのPNGやGIF、JPGが利用可能です。120x120pxまで縮小されます。
         display_name: あと<span class="name-counter">%{count}</span>文字入力できます。
         header: 2MBまでのPNGやGIF、JPGが利用可能です。 700x335pxまで縮小されます。
-        locked: フォロワーを手動で承認する必要があります。
+        locked: フォロワーを手動で承認する必要があります
         note: あと<span class="note-counter">%{count}</span>文字入力できます。
         setting_noindex: 公開プロフィールおよび各投稿ページに影響します
+        setting_theme: ログインしている全てのデバイスで適用されるデザインです。
       imports:
-        data: 他の Mastodon インスタンスからエクスポートしたCSVファイルを選択して下さい
+        data: 他の Mastodon インスタンスからエクスポートしたCSVファイルを選択して下さい。
       sessions:
         otp: 携帯電話に表示された2段階認証コードを入力するか、生成したリカバリーコードを使用してください。
       user:
@@ -39,6 +40,7 @@ ja:
         setting_delete_modal: トゥートを削除する前に確認ダイアログを表示する
         setting_noindex: 検索エンジンによるインデックスを拒否する
         setting_system_font_ui: システムのデフォルトフォントを使う
+        setting_theme: サイトテーマ
         setting_unfollow_modal: フォロー解除する前に確認ダイアログを表示する
         severity: 重大性
         type: インポートする項目
diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml
index 442a7d4b6..d45f98e66 100644
--- a/config/locales/simple_form.oc.yml
+++ b/config/locales/simple_form.oc.yml
@@ -13,6 +13,7 @@ oc:
           one: Demòra encara <span class="name-counter">1</span> caractèr
           other: Demòran encara <span class="name-counter">%{count}</span> caractèrs
         setting_noindex: Aquò es destinat a vòstre perfil public e vòstra pagina d’estatuts
+        setting_theme: Aquò càmbia lo tèma grafic de Mastodon quand sètz connectat qualque siaque lo periferic.
       imports:
         data: Fichièr CSV exportat d’una autra instància Mastodon
       sessions:
@@ -43,6 +44,7 @@ oc:
         setting_delete_modal: Afichar una fenèstra de confirmacion abans de suprimir un estatut
         setting_noindex: Èsser pas indexat pels motors de recèrca
         setting_system_font_ui: Utilizar la policia Font del sisèma
+        setting_theme: Tèma del site
         setting_unfollow_modal: Afichar una confirmacion abans de quitar de sègre qualqu’un
         severity: Severitat
         type: Tip d’impòrt
diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml
index e2eba3dd8..d5de2dcd3 100644
--- a/config/locales/simple_form.pl.yml
+++ b/config/locales/simple_form.pl.yml
@@ -17,6 +17,7 @@ pl:
           one: Pozostał <span class="name-counter">1</span> znak.
           other: Pozostało <span class="name-counter">%{count}</span> znaków
         setting_noindex: Wpływa na widoczność strony profilu i Twoich wpisów
+        setting_theme: Zmienia wygląd Mastodona po zalogowaniu z dowolnego urządzenia.
       imports:
         data: Plik CSV wyeksportowany z innej instancji Mastodona
       sessions:
@@ -47,6 +48,7 @@ pl:
         setting_delete_modal: Pytaj o potwierdzenie przed usunięciem wpisu
         setting_noindex: Nie indeksuj mojego profilu w wyszukiwarkach internetowych
         setting_system_font_ui: Używaj domyślnej czcionki systemu
+        setting_theme: Motyw strony
         setting_unfollow_modal: Pytaj o potwierdzenie przed cofnięciem śledzenia
         severity: Priorytet
         type: Typ importu
diff --git a/config/routes.rb b/config/routes.rb
index ce7a884f9..2c41c24e9 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -188,6 +188,7 @@ Rails.application.routes.draw do
       end
 
       resources :streaming, only: [:index]
+      resources :custom_emojis, only: [:index]
 
       get '/search', to: 'search#index', as: :search
 
diff --git a/config/webpacker.yml b/config/webpacker.yml
index aa429a1dd..8d8470651 100644
--- a/config/webpacker.yml
+++ b/config/webpacker.yml
@@ -4,6 +4,15 @@ default: &default
   source_path: app/javascript
   source_entry_path: packs
   public_output_path: packs
+  cache_path: tmp/cache/webpacker
+
+  # Additional paths webpack should lookup modules
+  # ['app/assets', 'engine/foo/app/assets']
+  resolved_paths: []
+
+  # Reload manifest.json on all requests so we reload latest compiled packs
+  cache_manifest: false
+
   extensions:
     - .js
     - .sass
@@ -17,16 +26,25 @@ default: &default
 
 development:
   <<: *default
+  compile: true
 
   dev_server:
-    host: 127.0.0.1
-    port: 8080
+    host: localhost
+    port: 3035
+    hmr: false
     https: false
 
 test:
   <<: *default
 
+  # Compile test packs to a separate directory
   public_output_path: packs-test
 
 production:
   <<: *default
+
+  # Production depends on precompilation of packs prior to booting for performance.
+  compile: false
+
+  # Cache manifest.json for performance
+  cache_manifest: true