Part of #983.
Context
The hosted multi-tenant App is the PRIMARY productization target. gittensory's multi-tenant schema already EXISTS — installations, repositories, repositorySettings, repositoryAiKeys (BYOK), installationHealth — plus a large services/ surface (operator-dashboard, control-panel-roles, maintainer-quality-dashboard), the packages/gittensory-mcp package, and apps/ (gittensory-ui, gittensory-extension). So this is WIRING reviewbot's per-agent config/secrets/audit into that existing per-installation isolation, NOT greenfield. The key adversarial check is cross-tenant leakage: reviewbot's REVIEW_CONFIG/audit are per-agent-slug; in a hosted App they must be per-INSTALLATION, isolated, with no private-rubric or audit bleed across tenants.
Deliverables
Acceptance criteria
- A new operator can install the App and onboard a repo through the UI without a deploy.
- Config/secrets/audit are isolated per installation; the cross-tenant isolation test passes (no private-config or audit bleed).
- BYOK keys are stored per-installation and used advisory-only.
Notes
Part of #983.
Context
The hosted multi-tenant App is the PRIMARY productization target. gittensory's multi-tenant schema already EXISTS —
installations,repositories,repositorySettings,repositoryAiKeys(BYOK),installationHealth— plus a large services/ surface (operator-dashboard, control-panel-roles, maintainer-quality-dashboard), thepackages/gittensory-mcppackage, andapps/(gittensory-ui, gittensory-extension). So this is WIRING reviewbot's per-agent config/secrets/audit into that existing per-installation isolation, NOT greenfield. The key adversarial check is cross-tenant leakage: reviewbot'sREVIEW_CONFIG/audit are per-agent-slug; in a hosted App they must be per-INSTALLATION, isolated, with no private-rubric or audit bleed across tenants.Deliverables
installations/repositoriesschema.control-panel-roles/operator-dashboard; expose the public.gittensory.yml-equivalent settings, keep the private rubric private (Per-operator private-config seam (runtime rubric/guardrails/params) #1018).repositoryAiKeys; advisory-only, never blocking.gittensory-mcppackage + the workboard/badge/stats dashboard apps for tenants.Acceptance criteria
Notes