Design + schedule: multi-tenant auth, public-repo sharing, locked model sets#110
Merged
Conversation
…g self-service
Refines the gitsema-side ("Semahub Layer 1") portion of the Semahub idea into
its own design doc, scoping out the SaaS-specific signup/billing work that
stays a separate project.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013QsKVsfa7BwEHzrfraz4MZ
…-member orgs Extends multi-tenant-auth-plan.md with the personal-group concept (GitHub-style auto-created one-member org per user), gated by a new auth.personalGroups config key, with default repo placement and a move-to-org mechanism for promoting solo repos into team orgs. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QsKVsfa7BwEHzrfraz4MZ
Captures the cost/abuse concern of multiple users separately indexing the same public repo on a shared server, as a distinct undesigned idea adjacent to the multi-tenant auth work. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QsKVsfa7BwEHzrfraz4MZ
- feature-ideas.md: add "Superadmin-Locked Model Set" idea (server-wide embedding/narrator model allowlist with BYOK override and org-level narrowing), dependent on the multi-tenant-auth-plan role model. - Promote the access-control half of "Shared/Deduplicated Indexing for Public Repos" into docs/public-repo-sharing-plan.md. Research showed the storage/clone-duplication concern is already solved by the existing repoRegistry dedup-by-URL and incremental blob-hash dedup; the real gap is a visibility flag, auto-granted reader access, and abuse-resistant first-index gating. Cross-repo blob-level dedup for forks stays in feature-ideas.md as a separate, undesigned, larger idea. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QsKVsfa7BwEHzrfraz4MZ
… designs into PLAN.md Adds three new tracks (Phases 122-130) scheduling the three draft design docs into the roadmap, and cross-links each doc's header to its assigned phase numbers. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013QsKVsfa7BwEHzrfraz4MZ
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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
feature-ideas.mdassumptions:docs/multi-tenant-auth-plan.md— user accounts, sessions/API keys, orgs (incl. auto-provisioned personal groups), per-repo/per-branch grants, SSO linking, audit log (Phases 122–125).docs/public-repo-sharing-plan.md—repos.visibilityflag, attach-as-reader auto-grants, first-index gate, refresh throttle (Phases 126–127, depends on 122–123). Note: existingrepoRegistry.tsalready dedupes registrations by normalized URL, so this scopes to access control only, not storage dedup.docs/locked-model-set-plan.md— multi-profile embedding serving, admin-gated enabled sets, never-persisted per-request BYOK for narrator/guide (Phases 128–130). Note: today's embedding provider is a single process-wide singleton with no per-request override, so "locking" required new multi-profile architecture first.docs/PLAN.mdas new Tracks (Phases 122–130), following the file's existing Track/table conventions, and cross-links each design doc's header to its assigned phase numbers.docs/feature-ideas.mdpointers ("Refined into:") for the two ideas that graduated into design docs this round.Test plan
docs/PLAN.mdinsertion point and phase numbering (next free number after 121) viagrep -n "^### Phase" docs/PLAN.md.repoRegistry.tsdedup,resolveModels()singleton,embed_configmulti-model support) — citations included inline in each doc's §2.🤖 Generated with Claude Code
https://claude.ai/code/session_013QsKVsfa7BwEHzrfraz4MZ
Generated by Claude Code