Promote v0.31.0 to production - #1063
Merged
Merged
Conversation
Co-authored-by: Matt Rubens <2600+mrubens@users.noreply.github.com>
* feat: add personal settings shortcut to user menu * fix: close user menu after settings navigation --------- Co-authored-by: Roomote <roomote@roomote.dev>
* feat: rework automations settings UX * improve: refine automation card details --------- Co-authored-by: Roomote <roomote@roomote.dev>
Co-authored-by: Roomote <roomote@roomote.dev>
* docs: add homelab deployment guide * docs: run homelab installer as root --------- Co-authored-by: Roomote <roomote@roomote.dev>
* feat: add self-hosted license purchase entry points * chore: remove obsolete telemetry exports * Disable invites at seat capacity * Responsive fixes * Add self-hosted license usage sync * fix: guard self-hosted license sync * test: cover license usage retry after cloud outage * fix: guard concurrent license activations --------- Co-authored-by: Roomote <roomote@roomote.dev> Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Matt Rubens <2600+mrubens@users.noreply.github.com>
Co-authored-by: Roomote <roomote@roomote.dev>
Co-authored-by: Matt Rubens <2600+mrubens@users.noreply.github.com>
…r succeed (#1025) * fix: stop ChatGPT device auth waiting on codes that can never succeed The device-code endpoint returns an expires_at roughly fifteen minutes out, but startChatGptDeviceAuth dropped it and the connect dialog had no expiry timer, so an aged-out code kept polling behind a "Waiting for authorization" spinner forever. Return the expiry alongside the interval and stop the loop at the deadline with a restart prompt. Polling also mapped every 403 and 404 to pending. Only 403 with the structured code deviceauth_authorization_pending means the user has not entered the code yet; 404 (deviceauth_not_found) means the issuer no longer knows the code, and a 403 carrying any other code is a refusal waiting cannot resolve, most often an org policy blocking the OAuth app. Classify on error.code rather than the bare status, and give the blocked and expired cases their own copy. An unrecognized error body still falls back to pending, now bounded by the expiry deadline. Rate-limited polls back off instead of failing, and the poll loop gets the .catch() it was missing so a rejected request surfaces in the dialog instead of rejecting unobserved. 🤖 Generated with Claude Code * refactor: extract the deviceauth refusal branch into a pure classifier The 403/404 handling was four sequential returns whose correctness depended on the unrecognized-code fallback sitting between the two specific checks. Move it to `classifyDeviceAuthRefusal`, a pure switch keyed only on the structured error code, so the mapping reads as a table and can be tested directly instead of through a fetch mock. The HTTP status is deliberately absent from the signature: the issuer reuses 403 for both pending and terminal refusals, so it carries no information the code does not already give. 🤖 Generated with Claude Code
…CodeFlow (#1028) The ChatGPT, xAI, and GitHub Copilot connect dialogs each reimplemented the same device-code lifecycle (start-once guard, expiry deadline, slow-down backoff, terminal states, restart) with drift between them. Move the lifecycle into one hook; the dialogs become presentational shells supplying provider-specific mutations, query keys, and copy. The hook takes the strongest behavior from each source. From ChatGPT: expiry deadline, failure reasons with dedicated copy, rate-limit backoff, and the poll .catch(). From xAI: generation-counter cancellation instead of a shared boolean, which closes a race where cancel + quick reopen could flip the boolean back to true and revive a stale loop still polling the previous device code. xAI and Copilot gain the race protection and terminal polish; all three now hide the dead code input once a terminal error is shown. The per-provider "authorization code expired" sentence is now one config value per dialog instead of duplicated literals. Server-side copies stay as-is and remain produce-only. 🤖 Generated with Claude Code
* feat: show product tips during task startup * fix: show startup tips for tasks without transcripts * feat: improve product tip rotation * remove debug content * feat(web): surface practical Roomote use cases --------- Co-authored-by: Roomote <roomote@roomote.dev> Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Roomote <roomote@roomote.dev>
Co-authored-by: Roomote <roomote@roomote.dev>
Co-authored-by: sky <136036952+easonLiangWorldedtech@users.noreply.github.com>
* feat: improve automations filtering and editing * improve: refine automations editor layout --------- Co-authored-by: Roomote <roomote@roomote.dev>
…nt (#1018) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: tebieshi <197311053+tebieshi@users.noreply.github.com>
Co-authored-by: Matt Rubens <2600+mrubens@users.noreply.github.com>
* feat: add bulk integration disable action * fix: prevent integrations when deployment disables them * fix: enforce integration policy for active Linear flows * test: update Linear env mock for integration policy * feat: disable curated integrations by default Flip R_CURATED_INTEGRATIONS_ENABLED to an opt-in policy so curated integrations stay off unless the operator explicitly enables them. * test: fix formatting and enable integrations policy in route-policy test * feat: invert policy to R_CURATED_INTEGRATIONS_DISABLED opt-out Curated integrations stay enabled for all deployments by default; operators set R_CURATED_INTEGRATIONS_DISABLED=true to switch the catalog off. --------- Co-authored-by: Roomote <roomote@roomote.dev> Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
* docs: add Roomote Cookbook recipes * docs: add cookbook recipe issue flow * docs: refine cookbook recipes * docs: generate cookbook index from recipes * docs: standardize cookbook recipe format * docs: refine cookbook metadata * docs: simplify cookbook recipes * docs: format cookbook contributor links * docs: polish cookbook presentation * docs: update cookbook contributors * fixes * fix: run docs scripts with pinned Mintlify CLI * fix --------- Co-authored-by: Roomote <roomote@roomote.dev> Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Matt Rubens <2600+mrubens@users.noreply.github.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Contributor
|
3 issues outstanding. See task
Reviewed cff848c |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promote v0.31.0
Frozen at
cff848cb3693b2a18803db3f547753cbd368414c— the commit where0.31.0was versioned. Commits merged todevelopafterward require an explicit candidate refresh or ship in the next release.v0.31.0and triggers the existing GHCRv*image publish (latestchannel).release/v0.31.0branch can be deleted after this PR merges.Changelog
0.31.0 (2026-08-03)
This release expands Amazon Bedrock and deployment controls, refreshes Automations and self-hosted licensing, and adds copyable Cookbook recipes for common workflows.
Highlights
Minor changes
Patch changes