From 2114a54eb6335f97b0c276c4f1f224d45f46fd1a Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Sat, 12 Sep 2026 14:21:12 +0200 Subject: feat(hub): the mail state is a panel section, and a ceiling falling is an event MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The figure was a line beside the settings form, which is where it is changed and not where it is watched. It sits with the other live figures under Statistics now — four cards and, above them, a banner saying which of the two ceilings has fallen. The two states are not the same to whoever is reading: one means newcomers are turned away, the other means somebody locked out of their account cannot get back in. The settings block keeps a line pointing at it. And an operator no longer has to be looking. When a global ceiling is reached the administrators are notified — in `mail.py`, in its own session, never raising, because this runs while a request is being refused and an alert that fails must not turn a refusal into a 500. Once per hour, keyed on a row rather than a flag in memory: a flood is what spends the budget, so one alert per refusal would bury the message under its own cause, and a hub that is refusing mail is a hub somebody is about to restart. `/v1/admin/mail` gains `general_exhausted` and `all_exhausted` rather than leaving the panel to compare two numbers. Labels in all ten catalogues; `.warn-msg` for the middle state, on the `--warn` token both themes already define. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01T4YmK41VsEURWFdop4EEeT --- packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js') diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js index c7f2c76..22f5d6b 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js @@ -491,6 +491,13 @@ export default { 'admin.mail_email_change_cooldown': "別のアドレスを申請できるようになるまでの秒数", 'admin.mail_save': "メール制限を保存", 'admin.mail_reset_defaults': "既定値に戻す", + 'admin.mail_state_is_in_stats': "現在の 1 時間の使用状況は「統計」に表示されます。", + 'admin.mail_state_hint': "再設定と招待は上限全体を使えます。登録とアドレス変更は、確保された分には手を付けられません。いずれかの上限に達すると、管理者に 1 時間に 1 回通知されます。", + 'admin.mail_left_signups': "登録に残っている数", + 'admin.mail_left_recovery': "再設定・招待に残っている数", + 'admin.mail_recipients': "本日カウントした受信者", + 'admin.mail_alert_all': "このハブはこの 1 時間、メール送信を停止しました。パスフレーズ再設定と招待も拒否されます。", + 'admin.mail_alert_general': "登録とアドレス変更のための分はこの 1 時間で使い切りました。再設定と招待は引き続き送信されます。", 'admin.settings_readonly': "Only an admin can change these settings.", // Admin stats -- cgit v1.2.3