feat: add provider-aware forge bootstrap boundary - #1560
Conversation
ee30b40 to
0afa277
Compare
b51117f to
e03d829
Compare
|
Automated reminder: thanks for the PR! This branch currently has a merge conflict with the base branch. When you get a chance, please rebase onto (or merge) the latest base branch, resolve the conflict, and push. After that, checks will re-run and the PR will get looked at again. Noted for firstmate#1560 at |
e03d829 to
b892fea
Compare
b892fea to
1634739
Compare
|
Automated reminder: thanks for the PR! This branch currently has a merge conflict with the base branch. When you get a chance, please rebase onto (or merge) the latest base branch, resolve the conflict, and push. After that, checks will re-run and the PR will get looked at again. Noted for firstmate#1560 at |
1e36b59 to
3819f3d
Compare
36f87ff to
48f098b
Compare
7a8c11d to
0fe83c2
Compare
|
Speaking as Kun's firstmate: Default-behavior — GitLab-aware bootstrap derives CLI/auth from registered project origins ( VISION: GitLab-from-registered-origins aligns (the fleet outlives any one forge; do not guess provider). Does not align: Security: no (host parsing uses Overlap: This is waiting on the author, not the captain: confirm or drop the watcher/session-start contract diffs, then let CI finish. Fork workflows approved: 32504091077 CI (in_progress), 32504091014 Require no-mistakes (SUCCESS). |
|
Speaking as Kun's firstmate: GitLab-aware forge boundary: detect github/gitlab/local/unknown from origin, require Class: opt-in capability (GitLab hosts via |
|
Speaking as Kun's firstmate: Correcting my earlier class. This is default-behavior, not opt-in: Still not a captain decision. Waiting on the author for the unrelated watcher/session-start contract diffs, and on CI. Will flag Firstmate only if this later goes fully green and stays default-on. |
Derive forge tools and auth checks from registered project remotes so GitLab-only homes do not require GitHub tooling. Keep unknown hosts fail-closed and scope self-managed GitLab through FM_GITLAB_HOSTS. Refs: kunchenguid#695
Keep the GitLab tool diagnostic explicit instead of using a single-item loop.
0fe83c2 to
3805dd8
Compare
Confidence Score: 4/5The PR is not yet safe to merge because an unsupported project origin still prevents supported project clones from being refreshed. A single unknown provider makes the fleet-wide bootstrap gate skip Files Needing Attention: bin/fm-bootstrap.sh Reviews (5): Last reviewed commit: "no-mistakes: apply CI fixes" | Re-trigger Greptile |
|
Speaking as Kun's firstmate: Re-review of NEW HEAD VISION: mixed. Provider-aware bootstrap is a legitimate fleet-outlives-vendor move, and fail-closed unknown origins are the right refusal shape. But this remains default-behavior: The earlier wait on unrelated watcher / session-start contract diffs is cleared on this HEAD (session-start is label/fixture only; no watcher files). What is not cleared:
Security: none. Overlap: no collision with the teardown/treehouse hold pair or the spawn-freshen hold. Other forge/bootstrap PRs were not in this batch. CI: first-time fork workflows approved after diff review. Greptile is red on the two P1s above. no-mistakes is pending and blocking. Ahead 16, behind 0, mergeable. Still not a captain decision. Waiting on the author for those two P1s, and on CI — not waiting on the captain. Will flag Firstmate only if this later goes fully green and stays default-on. Merge-eligible: NO. Captain-flag NOW: NO. |
|
Speaking as Kun's firstmate: Newer HEAD VISION: GitLab-from-origin aligns. Dropping CI in progress. Not a captain decision yet. Waiting on CI — not waiting on the captain. Will flag only if this later goes fully green and stays default-on. |
|
Speaking as Kun's firstmate: Newer HEAD VISION: provider boundary aligns; dropping Not merge-eligible. Not a captain decision yet. Waiting on CI / author — not waiting on the captain. Will flag only if this later goes fully green and stays default-on. |
|
Speaking as Kun's firstmate: Re-review of NEW HEAD VISION (per rule):
What is not cleared:
Security: no ( Overlap: no collision with the teardown/treehouse hold pair or the spawn-freshen hold. CI: first-time fork workflows re-approved on this HEAD after diff review (CI 32561670331, Require no-mistakes 32561670322). Greptile is still red on the fleet_sync P1. Portable CI / no-mistakes have not finished. Ahead 20, behind 3, mergeable, mergeStateStatus UNSTABLE. Still not a captain decision. Waiting on the author for the remaining fleet_sync P1 and matching attestation, and on CI — not waiting on the captain. Will flag only if this later goes fully green and stays default-on. Merge-eligible: NO. Captain-flag NOW: NO. |
Intent
Add a provider-aware bootstrap boundary for registered GitHub and GitLab projects. Preserve the existing GitHub-only behavior, allow GitLab-only and local homes to avoid unnecessary GitHub requirements, fail closed for unknown origins, and report host-specific authentication remediation. Keep the PR focused on forge bootstrap behavior and do not change watcher, session-start, procevent, or unrelated supervision contracts.
What Changed
Risk Assessment
Testing
Exercised the end-user bootstrap CLI behavior for GitHub, GitLab, local, and unsupported project origins, including host-specific authentication remediation and fail-closed network phases; all targeted tests passed and the reviewer-visible CLI transcript was captured.
Evidence: Provider-aware bootstrap targeted test transcript
Source: Provider-aware bootstrap targeted test transcript
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
bin/fm-bootstrap.sh- merge conflict rebasing onto refs/remotes/no-mistakes-push/feat/gitlab-bootstrap-provider-boundarybin/fm-forge-lib.sh- merge conflict rebasing onto refs/remotes/no-mistakes-push/feat/gitlab-bootstrap-provider-boundarytests/fm-bootstrap.test.sh- merge conflict rebasing onto refs/remotes/no-mistakes-push/feat/gitlab-bootstrap-provider-boundary🔧 **Review** - 2 issues found → auto-fixed ✅
bin/fm-bootstrap.sh:1237- The deferredFM_BOOTSTRAP_NETWORK=onlypath skips unknown providers in the authentication loop and never emitsFORGE_UNSUPPORTED. A standalone or rerun-only invocation can therefore proceed through mutating network sweeps for a registered project whose origin is unknown, violating the required fail-closed behavior. The network phase should independently surface the unsupported-origin diagnostic, or establish an equivalent shared guard before any forge-dependent sweep runs.docs/configuration.md:297- The documented universal toolchain still says every home requiresgh, GitHub auth, and compatiblegh-axi, contradicting the new provider-aware behavior and the added GitLab/local requirements below. This will direct GitLab-only and local users to install unnecessary GitHub tooling.🔧 Fix: Fail closed on unsupported forge network phases
✅ Re-checked - no issues remain.
✅ **Test** - passed
✅ No issues found.
bash tests/.targeted-bootstrap.test.shcovering provider-specific CLI/auth policy, GitHub/GitLab/local/unknown origin behavior, and network-phase partitioningbash tests/fm-startup-network.test.shcovering deferred network bootstrap behavior and provider-neutral auth reportingbash tests/fm-project-origin.test.shcovering origin URL validation and executable transport rejectionCaptured the targeted test transcript at/Users/andreylitvinov/.no-mistakes/evidence/01M0KJCN6QHS8K8RX38Q5HZS64/bootstrap-provider-test-transcript.txt✅ **Document** - passed
✅ No issues found.
🔧 **Lint** - 1 issue found → auto-fixed ✅
🔧 Fix: Remove unused forge network flag
✅ Re-checked - no issues remain.
✅ **Push** - passed
✅ No issues found.