diff --git a/.changeset/big-smooth-ui-signin.md b/.changeset/big-smooth-ui-signin.md deleted file mode 100644 index f58235043..000000000 --- a/.changeset/big-smooth-ui-signin.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@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. diff --git a/.changeset/th-crm-assoc.md b/.changeset/th-crm-assoc.md deleted file mode 100644 index 46c87ddea..000000000 --- a/.changeset/th-crm-assoc.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -"@smooai/smooth": minor ---- - -`th api crm assoc` — CRM entity associations from the CLI (SMOODEV-2644). -Adds `assoc link`/`unlink`/`list`/`set-type`/`set-label`, where entities are -given as `TYPE:REF` operands (e.g. `contact:jane@x.com`, `company:Acme`, -`deal:"Big Deal"`, or `task:`) — contact/company/deal refs resolve by -name/email/title via the existing resolvers, other types accept a uuid. -Also adds thin sugar wrappers over the legacy FKs: `contacts set-company`, -`deals set-contact`, `deals set-company`, and `companies set-parent` (each -accepting `none`/`-` to clear). Backed by the native api-prime associations -endpoints from SmooAI/smooai#3068; the commands 404 against prod until that -deploys. diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e04a6693..90a500717 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ # @smooai/smooth +## 0.21.0 + +### Minor Changes + +- 5865150: 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. +- 50f1aa5: `th api crm assoc` — CRM entity associations from the CLI (SMOODEV-2644). + Adds `assoc link`/`unlink`/`list`/`set-type`/`set-label`, where entities are + given as `TYPE:REF` operands (e.g. `contact:jane@x.com`, `company:Acme`, + `deal:"Big Deal"`, or `task:`) — contact/company/deal refs resolve by + name/email/title via the existing resolvers, other types accept a uuid. + Also adds thin sugar wrappers over the legacy FKs: `contacts set-company`, + `deals set-contact`, `deals set-company`, and `companies set-parent` (each + accepting `none`/`-` to clear). Backed by the native api-prime associations + endpoints from SmooAI/smooai#3068; the commands 404 against prod until that + deploys. + ## 0.20.0 ### Minor Changes diff --git a/Cargo.lock b/Cargo.lock index 63570c739..f3f0ed8cc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3661,7 +3661,7 @@ dependencies = [ [[package]] name = "smooai-smooth-api-client" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "async-trait", @@ -3689,7 +3689,7 @@ dependencies = [ [[package]] name = "smooai-smooth-archivist" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "axum 0.8.8", @@ -3709,7 +3709,7 @@ dependencies = [ [[package]] name = "smooai-smooth-bench" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "async-trait", @@ -3733,7 +3733,7 @@ dependencies = [ [[package]] name = "smooai-smooth-bigsmooth" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "async-trait", @@ -3786,7 +3786,7 @@ dependencies = [ [[package]] name = "smooai-smooth-cast" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "dirs-next", @@ -3802,7 +3802,7 @@ dependencies = [ [[package]] name = "smooai-smooth-cli" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "atty", @@ -3851,7 +3851,7 @@ dependencies = [ [[package]] name = "smooai-smooth-code" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "async-trait", @@ -3885,7 +3885,7 @@ dependencies = [ [[package]] name = "smooai-smooth-diver" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "axum 0.8.8", @@ -3905,7 +3905,7 @@ dependencies = [ [[package]] name = "smooai-smooth-narc" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "async-trait", @@ -3930,7 +3930,7 @@ dependencies = [ [[package]] name = "smooai-smooth-operative" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "async-trait", @@ -3988,7 +3988,7 @@ dependencies = [ [[package]] name = "smooai-smooth-pearls" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "async-trait", @@ -4007,7 +4007,7 @@ dependencies = [ [[package]] name = "smooai-smooth-policy" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "chrono", @@ -4022,7 +4022,7 @@ dependencies = [ [[package]] name = "smooai-smooth-scribe" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "async-trait", @@ -4051,7 +4051,7 @@ dependencies = [ [[package]] name = "smooai-smooth-tmux" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "tempfile", @@ -4060,7 +4060,7 @@ dependencies = [ [[package]] name = "smooai-smooth-tunnel" -version = "0.20.0" +version = "0.21.0" dependencies = [ "anyhow", "futures-util", @@ -4077,7 +4077,7 @@ dependencies = [ [[package]] name = "smooai-smooth-web" -version = "0.20.0" +version = "0.21.0" dependencies = [ "axum 0.8.8", "axum-extra", diff --git a/Cargo.toml b/Cargo.toml index 29fe65894..f8904a01c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = ["crates/*"] exclude = ["crates/smooth-bigsmooth/tests/fixtures"] [workspace.package] -version = "0.20.0" +version = "0.21.0" edition = "2021" license = "MIT" repository = "https://github.com/SmooAI/smooth" @@ -204,20 +204,20 @@ prost-types = "0.13" smooth-operator = { git = "https://github.com/SmooAI/smooth-operator-core.git", rev = "b43c04fe", package = "smooai-smooth-operator-core" } # smooth-owned coding-harness extensions to the generic engine (re-homed from # the engine when it went generic at 0.14.0). See crates/smooth-cast. -smooth-cast = { version = "0.20.0", path = "crates/smooth-cast", package = "smooai-smooth-cast" } -smooth-bigsmooth = { version = "0.20.0", path = "crates/smooth-bigsmooth", package = "smooai-smooth-bigsmooth" } -smooth-policy = { path = "crates/smooth-policy", version = "0.20.0", package = "smooai-smooth-policy" } -smooth-web = { version = "0.20.0", path = "crates/smooth-web", package = "smooai-smooth-web" } -smooth-scribe = { version = "0.20.0", path = "crates/smooth-scribe", package = "smooai-smooth-scribe" } -smooth-narc = { version = "0.20.0", path = "crates/smooth-narc", package = "smooai-smooth-narc" } -smooth-archivist = { version = "0.20.0", path = "crates/smooth-archivist", package = "smooai-smooth-archivist" } -smooth-code = { version = "0.20.0", path = "crates/smooth-code", package = "smooai-smooth-code" } -smooth-pearls = { path = "crates/smooth-pearls", version = "0.20.0", package = "smooai-smooth-pearls" } -smooth-diver = { version = "0.20.0", path = "crates/smooth-diver", package = "smooai-smooth-diver" } -smooth-tunnel = { version = "0.20.0", path = "crates/smooth-tunnel", package = "smooai-smooth-tunnel" } -smooth-bench = { version = "0.20.0", path = "crates/smooth-bench", package = "smooai-smooth-bench" } -smooth-tmux = { version = "0.20.0", path = "crates/smooth-tmux", package = "smooai-smooth-tmux" } -smooth-api-client = { version = "0.20.0", path = "crates/smooth-api-client", package = "smooai-smooth-api-client" } +smooth-cast = { version = "0.21.0", path = "crates/smooth-cast", package = "smooai-smooth-cast" } +smooth-bigsmooth = { version = "0.21.0", path = "crates/smooth-bigsmooth", package = "smooai-smooth-bigsmooth" } +smooth-policy = { path = "crates/smooth-policy", version = "0.21.0", package = "smooai-smooth-policy" } +smooth-web = { version = "0.21.0", path = "crates/smooth-web", package = "smooai-smooth-web" } +smooth-scribe = { version = "0.21.0", path = "crates/smooth-scribe", package = "smooai-smooth-scribe" } +smooth-narc = { version = "0.21.0", path = "crates/smooth-narc", package = "smooai-smooth-narc" } +smooth-archivist = { version = "0.21.0", path = "crates/smooth-archivist", package = "smooai-smooth-archivist" } +smooth-code = { version = "0.21.0", path = "crates/smooth-code", package = "smooai-smooth-code" } +smooth-pearls = { path = "crates/smooth-pearls", version = "0.21.0", package = "smooai-smooth-pearls" } +smooth-diver = { version = "0.21.0", path = "crates/smooth-diver", package = "smooai-smooth-diver" } +smooth-tunnel = { version = "0.21.0", path = "crates/smooth-tunnel", package = "smooai-smooth-tunnel" } +smooth-bench = { version = "0.21.0", path = "crates/smooth-bench", package = "smooai-smooth-bench" } +smooth-tmux = { version = "0.21.0", path = "crates/smooth-tmux", package = "smooai-smooth-tmux" } +smooth-api-client = { version = "0.21.0", path = "crates/smooth-api-client", package = "smooai-smooth-api-client" } # Cross-runtime client shared library (github.com/SmooAI/client-shared). # SMOODEV-1464: switched from a local `path = "../client-shared/rust"` dep to # a rev-pinned git dep. The path form only resolved on a dev laptop, so every diff --git a/package.json b/package.json index 64212b5a7..b694e44cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@smooai/smooth", - "version": "0.20.0", + "version": "0.21.0", "description": "Security-first AI agent orchestration platform", "homepage": "https://github.com/SmooAI/smooth#readme", "bugs": {