* fix: make tenant switch button into a picker
* fix: improve ui, group by org
* fix: more problematic z indexes
* fix: more z index issues, remove standalone tenants
* Tell eslint to ignore the generated code so that the npm run commands are usable
* Cleaning something I noticed while reading around
* An editorconfig so my editor knows when to use tabs and when to use spaces
* make it so you don't have to pass in unnecessary empty objects
* Two "new organization" pages – one for onboarding, one for after, both displaying the same form
* Fix a bug with asChild in the button component + make the "Create Organization" button a proper link
* the same form + save logic used in a "new organization" onboarding screen and a regular "new organization" screen
* not tested, but this tenant saver form looks like a reasonable starting place
* a "new tenant" modal that seems to work
* move minimumReleaseAge to a pnpm-specific config so npm doesn't complain at me when I reflexively type `npm run`
* automated unit tests for the frontend
* Rework the tenant+organization onboarding redirects, and use union types to try to make working with the organization in the app context more painless
* When onboarding, default the organization to the user's name
* isSaving doesn't need to be optional
https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2835696077
* wrap callback in useCallback
https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2835697163
* empty string is not the correct default
https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2835702156
* only set up the event listener once!
https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2835712324
* use tiny-invariant for assertions
https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2835707451
* [jedi hand move]
https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2835700130
* try a mutation
* I thiiiiink this is about what I want
* Finish getting the user-universe provider up to snuff, implement it in a few places.
Also fix a bug caused by the fact that some pages that assumed you were authenticated were not underneath the authenticated route
* change appContext to pull from user universe rather than querying tenants + organizations itself
also, rename the organization/tenant hooks isLoading->isUserUniverseLoaded
* We want resetQueries, not invalidateQueries
invalidate sets the query to stale, but leaves the data around and leaves isSuccess = true
* Make the user universe query dependent on isCloudEnabled + get the query client from context
https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2854606886https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2854611980https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2854614616
* get rid of an unpleasant `as`
https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2854620958
* fix a name that was too generic for what it was being used for
* Make the NewOrganizationSaverForm assertion message more useful
https://github.com/hatchet-dev/hatchet/pull/3068#discussion_r2854629289
* some embarrassing errors in the non-cloud flow
* fix: unwind pnpm changes
* Revert "fix: unwind pnpm changes"
This reverts commit 5df6a4b5d3.
* fix: add `packages` hack to pnpm-workspace files
* fix: shrink spacing
* fix: start improving styling of orgs page with tabs
* fix: start cleaning up UI
* fix: remove mobile views, nobody uses them
* fix: spacing, border
* fix: org edit button
* fix: remove invites tab
* fix: factor out columns
* login screen needs to clear any current user query errors before redirecting
otherwise it keeps trying to redirect you back to the login screen until the latest metadata request succeeds
* Fix some issues during login when switching between users
- we need to invalidate all the previous user's information when they log out so that it's not floating around in memory
- we need to validate the tenant id stored in localstorage before passing it along to the rest of the world
- to be safe, invalidate the user universe and start refetching it as soon as they log in, before we redirect to the authenticated route
* One more bit of explicit fetching that needs to happen
* After accepting a tenant invite, need to invalidate the user universe and re-fetch
Also, kill the listTenantMemberships query to force people to use the query that's wrapped up by the user universe
* Change the tenant-create e2e testto account for the UI changes
* It seems like Cypress was trying to navigate to the onboarding page too quickly for the test to pass on my machine
* Slightly better copy for the tenant label
* fix lint issues
* quote the glob paths?
* Disable running the tests in CI for now
* use the width settings that are most common across dialogs right now
* node 20 -> 24
* Need to manually specify node version apparently?
---------
Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
* feat(python-sdk): add opt-in retries for REST transport errors (GET/DELETE)
* feat(python-sdk): make REST transport retries configurable via TenacityConfig
* docs(python-sdk): clarify transport retry methods exclude mutating verbs by default
* refactor(sdk): avoid parsing HTTP method from REST transport error message
- add http_method field to RestTransportError
- populate http_method when translating urllib3 transport exceptions
- use http_method for transport retry gating in tenacity utils
- update unit tests to cover the new structured method propagation
* fix(sdk): move REST transport http_method changes into apply_patches
* chore(python-sdk): bump version to 1.26.2 and update changelog
* refactor(python-sdk): type retry_transport_methods as HTTPMethod enum
* refactor(python-sdk): type retry_transport_methods as HTTPMethod enum
* fix(sdk): type rest transport http_method as HTTPMethod
- Update apply_patches to emit HTTPMethod typed http_method in generated REST transport exceptions
- Normalize method values via method.upper() when constructing HTTPMethod
- Simplify tenacity transport retry check to compare enums directly
- Update transport retry tests to use HTTPMethod enums
* feat(python-sdk): add opt-in retry for HTTP 429 responses
- Introduce TooManyRequestsException and map HTTP 429 in ApiException.from_response()
- Add retry_429 flag to TenacityConfig (default: false)
- Update tenacity retry predicate to accept config and retry 429 only when enabled
- Add unit tests covering 429 mapping + retry behavior and keep existing retry semantics intact
Refs: #2872
* feat(python-sdk): add opt-in retry support for REST 429 responses
Adds TooManyRequestsException (HTTP 429) mapping for the REST client and
enables 429 to be retried when configured via TenacityConfig.
This aligns REST retry semantics more closely with gRPC, where
RESOURCE_EXHAUSTED is retried.
Refs discussion in #2872.
* feat(sdk): add opt-in retry for REST HTTP 429
* chore(sdk): patch bump to 1.26.1 and update changelog entry
* fix: work with type syntax
* fix: one more instance of asyncio.iscoroutinefunction
* test: add tests for type alias with type syntax
* chore: remove type ignores
* chore: changelog + bump