Skip to content
This repository was archived by the owner on Oct 31, 2026. It is now read-only.

The hub is the team's base app - #20

Merged
nicu-chiciuc merged 9 commits into
mainfrom
base-app
Oct 30, 2026
Merged

nicu-chiciuc merged 9 commits into
mainfrom
base-app

Conversation

@nicu-chiciuc

@nicu-chiciuc nicu-chiciuc commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

What changes

One Convex project, samebase, now holds the team's base: the sign-in hub (identityBroker) and the Alchemy state of every stack (alchemyState), on the deployment secret-chickadee-10. It keeps the domain auth.samebase.com, the keys, the apps and the Google setup.

  • @samebase/alchemy-convex 0.14.1 moves to dependencies, and convex moves to 1.48.0.
  • convex/convex.config.ts mounts alchemyState. convex/state.ts, convex/reader.ts and convex/auth.config.ts serve the store from the package's exports, with the host "base".
  • alchemy.run.ts adopts the project with the slug samebase and its production deployment, and retains both. ISSUER is a prop of the stack.
  • The repository is renamed to samebase/team-base, and the stack follows it, as every stack of the team does.
  • .github/workflows/alchemy.yml loses the adopt input, because the stack carries the adoption.
  • scripts/convex-cli.ts: hasVariable uses env list --names-only, because convex 1.48.0 prints names only when an agent runs it.

How the move ran

The hub stayed where it is, and the state came to it, so the domain, the keys and the hub's data did not move, and sign-in did not stop.

  1. Pushed this branch's code to secret-chickadee-10 with a short-lived key. state:host answered "base", state:stacks [], the three apps were listed, and discovery at auth.samebase.com answered with its issuer.
  2. Exported the old store and imported the alchemyState component with --replace (114 resource rows, 34 output rows). All 8 stacks were identical by hash of state:readStack on both deployments.
  3. Checked that no deploy ran and the old store had not changed, then swapped the project names in 366 ms. Project 3304792 is samebase, and project 3259168 is samebase-state-old.

The merge of this PR is the first stack run on the base.

samebase-state-old stays until the consumers have deployed on the base. It is the way back: swap the names again. Then the rows of the old stack samebase/identity-hub go with state:removeStack, and that project is deleted.

Do not use npx convex import --replace-all on the base: it deletes the rows of the other component.

🤖 Generated with Claude Code

nicu-chiciuc and others added 4 commits October 30, 2026 10:56
convex/ imports the package now, so it moves to dependencies. The
release-age exclusion moves to 0.14.0. The exclusions for 0.11.0 to
0.13.0 go: no entry of the lockfile needs them.

convex 1.48.0 prints names only from `env list` when it detects an AI
agent. hasVariable read NAME=value lines, so keys:init run by an agent
saw no key set and would replace it. It asks for the names now.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The app mounts the alchemyState component without a name and exports
the store functions with the host "base", so one deployment can run the
hub and hold the state of the team. The exported functions ship as
TypeScript and read identity claims with dot access, so the Convex
project stops checking noPropertyAccessFromIndexSignature.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A new constant stack name starts with empty state, so no run reads the
rows of samebase/identity-hub, which hold secret-chickadee-10. The
stack adopts the project and its production deployment and retains
both. It sets ISSUER. The workflow loses its adopt input: the stack
carries the adoption.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nicu-chiciuc and others added 5 commits October 30, 2026 11:02
samebase/base is the starter template's repository. A stack under this repository's name is found by
the repository reader, whose run records name the same repository, so the Samebase view keeps
showing it and the repository needs no rename.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The repository is renamed to samebase/team-base, so the stack is named after it, like every other
stack of the team, and the hard-coded name goes. The old stack samebase/identity-hub keeps its rows,
and this stack never reads them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0.14.1 reads the reader's claims with bracket access, so convex/tsconfig.json keeps
noPropertyAccessFromIndexSignature.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nicu-chiciuc
nicu-chiciuc marked this pull request as ready for review October 30, 2026 09:24
@nicu-chiciuc
nicu-chiciuc merged commit 982993c into main Oct 30, 2026
4 checks passed
@nicu-chiciuc
nicu-chiciuc deleted the base-app branch October 30, 2026 09:24
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant