Skip to content

v0.6.0

  • v0.6.0
  • b22862d
  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
  • Choose a tag to compare

  • v0.6.0
  • b22862d
  • Choose a tag to compare

  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
@nicu-chiciuc nicu-chiciuc tagged this 21 Oct 14:07
* Convex.state: one alchemy-state project for each team

The Alchemy state of every stack and stage of a Convex team lives in the
production deployment of one project, `alchemy-state`, outside every
resource that a stack manages. Convex.state({ team }) finds or creates the
project with the team token, mints a key for the run that can only run the
store's internal functions, checks `state:version`, and pushes
src/store/convex with the installed Convex CLI when the store is missing or
older. The alchemyState component and CONVEX_STATE_DEPLOY_KEY are gone.

Every store function is internal: a public function of a root app answers
anyone who knows the deployment URL (recorded in
test/fixtures/state/public_mutation_no_key.json). `stacks` and `stages` also
list a stage that has only an output row.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* Release 0.6.0: design note, README, and changelog for the team store

The design note records the decision and the measured table of the
base-alchemy proof: the first run creates alchemy-state and pushes the
store, main and preview stages share the rows of a stack, a destroy of the
app project leaves the store, two stacks of one team do not collide, an
older store is upgraded, and a key with runInternalQueries reads the index.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* Fold in the review: one store per team under races, newer store kept, key renewal

Two first runs that both create alchemy-state end on the oldest project: the
other run deletes its own empty project before it writes anything. The
version is read again right before a push, and a store newer than the
package is used as it is, because the function names are a wire contract. A
call that gets HTTP 401 or 403, such as after the two-hour expiry of the run
key, creates one new key and runs once more; every key of the run is
deleted when the scope closes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Assets 2
Loading