Skip to content

feat: add local repositories as a project source - #454

Open
Rauleinstein wants to merge 10 commits into
theam:mainfrom
Rauleinstein:feat/local-1-foundation
Open

Rauleinstein wants to merge 10 commits into
theam:mainfrom
Rauleinstein:feat/local-1-foundation

Conversation

@Rauleinstein

Copy link
Copy Markdown

What changes

Adds local repository support end to end: source columns, kickstart rendering, host and source services, registration routes, CLI commands, SDK contracts, web UI, infra wiring and docs.

Stack (1/5) — the remaining slices will be opened as follow-up PRs once this one merges.

Why

Lets a project use a repository on the local machine instead of a GitHub installation. This is the foundation the rest of the stack builds on.

Verification

  • Typecheck passes on this branch
  • db, api, core, sdk and cli test suites pass against a fresh database
  • pnpm verify passes locally
  • Behaviour verified beyond the test suite (say how)
  • Documentation updated, or no user-facing change

🤖 Generated with Claude Code

Rauleinstein and others added 10 commits September 26, 2026 14:46
Adds project_repositories.source ("github" or "local"), a source_path for
local rows, and workspaces.source_revisions to track the imported commit
per repository without an implicit re-fetch.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Extends the workspace kickstart renderer and id helpers so a local
repository's manifest and credentials can be materialized the same way a
GitHub repository's are.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds the local repository host (approved-root validation, ownership,
symlink and worktree checks, read-only Git access through a Facility-owned
staging repository), a source selector that picks GitHub or local readers
for .facility.yml/agents/skills, and the local review/export service used
in place of a pull request.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Imports a local repository's pinned commit into the workspace as a Git
bundle instead of cloning from GitHub, guards the reserved facility/
branch namespace against a colliding default branch, records the imported
revision on the workspace, and skips GitHub credentials and triggers for
local turns.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ults

Adds the local repository registration/listing routes, config parsing for
FACILITY_LOCAL_REPOSITORY_ROOTS/OWNER_UIDS/GIT_NAME/GIT_EMAIL and
FACILITY_LISTEN_HOST (loopback by default), and requires the development
login to come from a loopback peer to a loopback host.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds `facility repos add-local` and `--local` project scaffolding backed
by agents-local templates, and teaches init/doctor about the local
workflow's environment variables.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Regenerates the OpenAPI document and typed SDK contracts/routes for the
local repository registration and review endpoints.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a local-repository project creation flow, an agent catalog refresh
action, and a local review panel the story page shows in place of a pull
request for local-source stories.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a user guide for registering and working with a local repository, an
operator guide for self-hosting local mode, updated reference docs for the
new manifest fields/CLI commands/API routes, and the implementation notes
for the feature.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Publishes the api/web ports on loopback by default (override with
FACILITY_BIND_ADDRESS), passes FACILITY_LOCAL_REPOSITORY_ROOTS/OWNER_UIDS
through to the api/worker containers, and sets FACILITY_LISTEN_HOST=0.0.0.0
inside the Docker image since the host, not the container, controls
external exposure.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant