Repository navigation
feat(installer): needs-list converges the hub over stock routes (CL-8085) - #745
Closed
TheGreatAxios wants to merge 7 commits into
Closed
TheGreatAxios wants to merge 7 commits into
TheGreatAxios wants to merge 7 commits into
Conversation
…is and provisioner (CL-8085)
…CL-8085) Genesis converge reports an unresolvable agent deploy as pending (retry contract) instead of failing or silently skipping; the finishing-setup page drives the deploy itself over stock routes once the credential seed lands, and the setup poll is bounded by an attempt cap with explicit timeout/cancelled outcomes.
…r (CL-8085) The deleted genesis/provision hook is gone: the first signup creates the root over POST /api/tenants and becomes its owner, later members join by owner invite + activate. Rewires signup-genesis, boot-does-not-seed, composition, and the greeting-delivery / local-rip / smoke-onboarding e2e suites onto that contract; aligns client error wording and reportError coverage (onboarding-page refId, baseline, tsconfig refs).
Contributor
Author
TheGreatAxios
added a commit
that referenced
this pull request
Sep 17, 2026
…-8130) The closed-signup/sub-workbench policy table, checkSignupGate, and the tenant-scoped access-policy routes had no native equivalent and were never mounted by any hub composition (T1/T2 already repointed first-login onto native setup-status and left onboarding's provisioning routes unwired). Per CL-7575's ruling, native POST /api/tenants grant-gating is the only signup/child-tenant gate now; there is nothing to keep as a Workbench-side gate, so the package is deleted rather than carried forward unwired. - packages/onboarding: drops its dependency on @workbench/access-policy; genesis/provision no longer thread an accessPolicy gate through first-login (it was already always-undefined in production). - scripts/db-setup.ts, scripts/checks/no-product-tenancy.ts, scripts/checks/report-error-baseline.txt, tsconfig.build.json: drop the deleted package from migration wiring, the schema-table allowlist, the report-error baseline, and the build project graph. - packages/settings-ui: deletes the "Who can join" People-section panel and its API client — it called /api/tenants/:tenantId/access-policy, a route no hub composition ever mounted. Overlaps with the in-flight PR #745 (CL-8085), which independently deletes packages/onboarding's genesis/provisioner and adds an empty-hub count read to access-policy; whichever of the two lands second will need a small rebase against the other. Claude-Session: https://claude.ai/code/session_01RweuMUskU2nvcFhdckc7EG
TheGreatAxios
added a commit
that referenced
this pull request
Sep 17, 2026
* test(onboarding): drop signup-gate coverage ahead of access-policy deletion The closed-signup gate genesis.ts called through @workbench/access-policy was never wired into any hub composition; these cases tested behavior the next commit deletes. Claude-Session: https://claude.ai/code/session_01RweuMUskU2nvcFhdckc7EG * feat(hub-zero)!: delete @workbench/access-policy, cut signup gate (CL-8130) The closed-signup/sub-workbench policy table, checkSignupGate, and the tenant-scoped access-policy routes had no native equivalent and were never mounted by any hub composition (T1/T2 already repointed first-login onto native setup-status and left onboarding's provisioning routes unwired). Per CL-7575's ruling, native POST /api/tenants grant-gating is the only signup/child-tenant gate now; there is nothing to keep as a Workbench-side gate, so the package is deleted rather than carried forward unwired. - packages/onboarding: drops its dependency on @workbench/access-policy; genesis/provision no longer thread an accessPolicy gate through first-login (it was already always-undefined in production). - scripts/db-setup.ts, scripts/checks/no-product-tenancy.ts, scripts/checks/report-error-baseline.txt, tsconfig.build.json: drop the deleted package from migration wiring, the schema-table allowlist, the report-error baseline, and the build project graph. - packages/settings-ui: deletes the "Who can join" People-section panel and its API client — it called /api/tenants/:tenantId/access-policy, a route no hub composition ever mounted. Overlaps with the in-flight PR #745 (CL-8085), which independently deletes packages/onboarding's genesis/provisioner and adds an empty-hub count read to access-policy; whichever of the two lands second will need a small rebase against the other. Claude-Session: https://claude.ai/code/session_01RweuMUskU2nvcFhdckc7EG * docs: clear access-policy references after CL-8130 deletion TENANCY.md's Signup mode and sub-workbench-creation sections, the package glossary, the migration-shape reference implementation pointer, and two package READMEs all named @workbench/access-policy as retained-but-unwired; it is now deleted outright. Claude-Session: https://claude.ai/code/session_01RweuMUskU2nvcFhdckc7EG
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.
Summary
tenant-create-guard,tenant-create-onboard,signup-tenancyhub routes and the onboardinggenesis/provisionpaths (0→1 moved to the client needs-list).POST /completeandPOST /complete-setupconverge instead of deploying or kicking reconciles.cl-7586-pending-seed-drain); supersedes local approach of feat(hub)!: delete Slack ingress #743 (not depended on).Myra retry follow-up (b84bff1)
Verification (local)
bun run scripts/typecheck.ts✅ cleanbun run lint✅ 0 errors (10 pre-existing noInlineConfig warnings in untouched files)bun run scripts/test-scripts/test_all.ts✅ 82/82packages/onboarding✅ 143/143 (incl. new connect-deploys-nothing suite)apps/webinstaller tests ✅ 64/64packages/access-policy✅ 39/39bun run testrun went fully green earlier (a5d512fb, exit 0).--no-verifyper director approval — CI to arbitrate.apps/webbun test ./src ./test✅ 973/973 (incl. new myra-deploy, setup-completion-poll, converge-pending suites);tsc --noEmit✅ clean; eslint on touched files ✅ 0 errors.Client convergence-as-owner (ec99651)
Convergence contract (all client-driven, no hub provision seam):
POST /api/tenants({name, slug}→ 201) and becomes its owner; signup itself mints no tenant and seeds nothing.POST /api/tenants/:id/members/invite→ 201) + activate (PATCH .../principals/:id {status: active}→ 200) into the member role; no second tenant is minted.POST /api/onboarding/provision404s; re-creating the same slug conflicts (409), never duplicates.apps/hub/test/signup-genesis,boot-does-not-seed,composition, and e2esmoke-onboarding,local-rip,greeting-delivery. Client wording aligned (stock/myraprefixes), onboarding provisioning failures now carry areportErrorrefId.Per-job triage (local, ec99651):
signup-genesis3/3,myra-deploy9/9,needs-converge+needs-list25/25 (combined re-run 37/37, exit 0).bun run lint✅ 0 errors (prettier clean on all touched files; remaining warnings pre-existing in untouched files);bun run typecheck✅ clean (pre-push hook stages passed).bun run teststill flakes on shared-host Postgres saturation in untouched suites (applyBenchMigrations/applyNotifyMigrations/applyInferenceCatalogMigrations,scripts/db-setupold-numbering) — each passes in isolation; same class as the previously recorded saturation flakes. Pushed with--no-verifyon that basis — CI to arbitrate.bobbindings left by the join-path rewrite (dropped, account-creation calls kept).Sign-off needed
POST /api/tenantsremains as brief-ordered (CL-8085): any authenticated account can create tenants with no hub-side gate. Flagged as a known risk needing explicit sign-off before merge. Re-vendor item STILL-OPEN.Closes CL-8085