Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .changeset/big-smooth-ui-signin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"@smooai/smooth": minor
---

Big Smooth UI sign-in: add `GET /auth/login`, `GET /auth/callback`, and
`GET /api/auth/status` so a user viewing the Big Smooth web UI remotely
(e.g. over tailscale) can log `th` into Smoo AI by clicking a button
instead of SSHing in to run `th auth login`. Runs the browser OAuth2 +
PKCE flow through the daemon itself — the callback URL is derived from
the request's `Host` + `X-Forwarded-Proto`, the PKCE verifier is held in
a single-use, 10-minute-TTL in-memory store, and the resulting user
session is persisted to `~/.smooth/auth/smooai-user.json` (the same file
`th`'s user-authed API calls read). The web sidebar shows "Signed in as
…" or a "Sign in to Smoo AI" button accordingly.
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions crates/smooth-bigsmooth/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ smooth-code = { path = "../smooth-code", package = "smooai-smooth-code" }
smooth-policy.workspace = true
smooth-web = { path = "../smooth-web", package = "smooai-smooth-web" }
smooth-narc.workspace = true
# Big Smooth UI sign-in (pearl th-bc624a): persist the browser-OAuth
# user session via the shared Credentials store (same file th's
# user-authed API calls read). Same dep + `auth` feature smooth-cli uses.
smooai-client-shared.workspace = true
smooth-scribe.workspace = true
smooth-archivist.workspace = true
smooth-diver.workspace = true
Expand Down Expand Up @@ -49,6 +53,9 @@ dirs-next.workspace = true
# already in the lockfile (used by smooth-cli / smooth-policy).
base64 = "0.22"
sha2 = "0.10"
# PKCE (RFC 7636) code_verifier + CSRF state generation for the UI
# sign-in flow (pearl th-bc624a). Same version smooth-cli pins.
rand = "0.8"
toml.workspace = true
tokio-tungstenite.workspace = true
tempfile.workspace = true
Expand Down
Loading
Loading