feat(gateway): sign in with a Nous account from a chat (/login), one shared sign-in flow (#105261)

* refactor(auth): one sign-in flow behind SignInState, rendered by the CLI and the desktop

* feat(gateway): /signin signs the free tier into a Nous account from a DM

* feat(cli): chat surfaces name /signin as the sign-in verb

* fix(auth): review follow-ups for the shared sign-in flow and /signin

* fix(i18n): carry the /status free-tier line in every locale catalog

* refactor(cli): the chat sign-in command is /login

* fix(auth): durable override cleanup in the /login sweep, and the sign-in flow in its own modules
This commit is contained in:
Siddharth Balyan
2026-09-11 03:45:33 +05:30
committed by GitHub
parent 3b01b4ce0f
commit cbcf7b72f7
56 changed files with 2903 additions and 242 deletions
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**Laaste aktiwiteit:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · gratis vlak · nous/welcome · /login om aan te meld"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -343,6 +343,7 @@ gateway:
last_activity: "**آخر نشاط:** {timestamp}"
model: "**النموذج:** `{model}`"
model_provider: "**النموذج:** `{model}` ({provider})"
free_tier: "Nous · الخطة المجانية · nous/welcome · /login لتسجيل الدخول"
context: "**السياق:** {used} / {total} ({pct}%)"
context_used: "**السياق:** ~{used} رمزًا"
tokens: "**رموز API التراكمية (تُعاد كل استدعاء):** {tokens}"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**Letzte Aktivität:** {timestamp}"
model: "**Modell:** `{model}`"
model_provider: "**Modell:** `{model}` ({provider})"
free_tier: "Nous · kostenloser Tarif · nous/welcome · /login zum Anmelden"
context: "**Kontext:** {used} / {total} ({pct}%)"
context_used: "**Kontext:** ~{used} Tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -354,6 +354,7 @@ gateway:
last_activity: "**Last Activity:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · free tier · nous/welcome · /login to sign in"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -338,6 +338,7 @@ gateway:
last_activity: "**Última actividad:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · plan gratuito · nous/welcome · /login para iniciar sesión"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**Dernière activité :** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · offre gratuite · nous/welcome · /login pour se connecter"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -345,6 +345,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**Gníomhaíocht is déanaí:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · plean saor in aisce · nous/welcome · /login chun síniú isteach"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**Utolsó tevékenység:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · ingyenes csomag · nous/welcome · /login a bejelentkezéshez"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**Ultima attività:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · piano gratuito · nous/welcome · /login per accedere"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**最終アクティビティ:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · 無料プラン · nous/welcome · /login でログイン"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**최종 활동:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · 무료 요금제 · nous/welcome · /login 명령으로 로그인"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**Última atividade:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · plano gratuito · nous/welcome · /login para entrar"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**Последняя активность:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · бесплатный тариф · nous/welcome · /login для входа"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**Son etkinlik:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · ücretsiz plan · nous/welcome · /login ile giriş yapın"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**Остання активність:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · безкоштовний тариф · nous/welcome · /login для входу"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**最近活動:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · 免費方案 · nous/welcome · /login 登入"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"
+1
View File
@@ -341,6 +341,7 @@ Future messages in this room will use that transcript until `/reset` or another
last_activity: "**最近活动:** {timestamp}"
model: "**Model:** `{model}`"
model_provider: "**Model:** `{model}` ({provider})"
free_tier: "Nous · 免费套餐 · nous/welcome · /login 登录"
context: "**Context:** {used} / {total} ({pct}%)"
context_used: "**Context:** ~{used} tokens"
tokens: "**Lifetime tokens billed:** {tokens} _(not your current context size; use `/context`)_"