Skip to content

feat(projects): select a development branch independently of GitHub default - #458

Merged
alvaroloes merged 2 commits into
mainfrom
codex/development-branch
Oct 15, 2026
Merged

alvaroloes merged 2 commits into
mainfrom
codex/development-branch

Conversation

@alvaroloes

@alvaroloes alvaroloes commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Projects that develop on a branch other than the GitHub default can now select it in project settings. Agents, skills, .facility.yml, new story branches and configuration PRs use that development source. The stored GitHub default remains repository metadata; projects without an override retain their current source.

Closes #457.

  • Adds an optional settings.developmentBranch and a narrow PATCH field, plus the settings UI and generated SDK contract. Changing it requires both projects:write and repos:write, an organization-scoped active installation, and an existing branch. Clearing it restores the default. No SQL migration or credential changes.
  • Preserves retained story work and queued/running agent snapshots. Both base branches are protected from direct configuration writes and branch adoption. Proposal heads for an override are separate from proposals against the previous default. A removed development branch cannot silently dispatch a cached catalog from another source.
  • Saving the preference does not force a bulk synchronization. Subsequent catalog refreshes use the selected branch; workspace preparation reads its manifest. Existing story branches and saved work remain intact.
  • Leaves GitHub mirror metadata, costs, budgets and analytics unchanged. The existing project-update audit records the preference change. This is additive, user-visible functionality.

Validation at ab794358f6c89ac1ac63f2ed81c17ab2eff8acd2:

  • Incorporates current main, including the dependency remediation merged in fix(deps): patch Next, MCP SDK, sharp and shell-quote audit findings #460. This feature adds no dependency changes relative to its updated base.
  • Local pnpm verify: passed in full, including lint, typecheck, clean builds, critical integrations without skips, remaining tests, unused-reference checks, guards and the all-severity audit. The three existing reviewed audit exceptions are unchanged. The first attempt timed out in the existing ICNS parser subprocess test; its three cases passed isolated and the complete unchanged command passed on retry. No tests or timeouts were modified.
  • Deterministic GitHub and local Git integration coverage checks differing default/development content, source SHA, agent/skill/manifest discovery, configuration PR bases, permissions, malformed/missing refs, suspended installations, tenant/project isolation, preserved snapshots and retained commits/dirty files after the base advances and compute is replaced.
  • The feature's source UI and local API were exercised with synthetic data and a fake GitHub installation: empty/fallback, pending, saved/reloaded value, missing-branch error, clearing the override and reader denial. No deployed project was changed. This base update adds no UI source changes.
  • CI on this exact head: verify (including the audit), minimum-node, self-host-build and workspace-e2e all passed. The workspace E2E built the runner and executed the Docker-backed persistent workspace loop. Commit-subject and PR-title checks also passed. Release publication jobs are intentionally skipped for a pull request.

No merge or deployment was performed for this feature. Human review remains required before merge.

@alvaroloes
alvaroloes marked this pull request as ready for review October 14, 2026 10:29
@alvaroloes
alvaroloes merged commit b052a79 into main Oct 15, 2026
16 checks passed
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.

Support a project development branch independent of the GitHub default branch

1 participant