feat: add GitLab-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. |
0fe83c2 to
3805dd8
Compare
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains in the previously reported provider-classification, mixed-home reconciliation, or unsupported-origin mutation paths. Reviews (10): 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. |
# Conflicts: # bin/fm-startup-network.sh
* feat(bin): parallelize session-start remote secondmate network sweeps Run per-secondmate liveness and convergence probes concurrently and overlap clone refresh, while replaying each mate's fail-closed diagnostic in original order. Ignore scratchpad* so untracked scratch no longer blocks remote sync. Co-authored-by: Cursor <cursoragent@cursor.com> * no-mistakes(document): Document parallel startup network sweeps * no-mistakes(lint): Fix empty environment assignment lint warning * no-mistakes: apply CI fixes --------- Co-authored-by: Cursor <cursoragent@cursor.com>
…losed unknown-origin fleet refresh
723bd2f to
256b113
Compare
|
Speaking as Kun's firstmate: Re-review of NEW HEAD Still default-behavior: VISION (per rule):
What is not cleared:
Security: no ( Overlap: no collision with the teardown/treehouse hold pair or the spawn-freshen hold. This is waiting on the author, not the captain: push a matching no-mistakes attestation for this HEAD, and let CI finish. I will flag the default-behavior toolchain change only if this later goes fully green and stays default-on. Merge-eligible: NO. Captain-flag NOW: NO. |
Intent
Ship PR #1560: add the GitLab-aware forge bootstrap provider boundary while preserving GitHub behavior and resolving the current main-branch conflict.
What Changed
Risk Assessment
✅ Low: The provider classification, host-scoped authentication, mixed-provider handling, and fail-closed fleet-sync boundary are consistent with the stated intent; no additional source-verifiable defects were substantiated.
Testing
The targeted bootstrap, startup-network, session-start, and fleet-sync tests passed after correcting an outdated assertion; manual CLI checks demonstrated unknown origins fail closed, supported GitHub remediation continues, and direct fleet-sync performs no fetch for unsupported origins. Evidence was recorded in the dedicated evidence directory.
Evidence: Provider boundary CLI transcript
Source: Provider boundary CLI transcript
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
🔧 **Rebase** - 3 issues found → auto-fixed ✅
AGENTS.md- merge conflict rebasing onto refs/remotes/no-mistakes-push/feat/gitlab-bootstrap-provider-boundarybin/fm-bootstrap.sh- merge conflict rebasing onto refs/remotes/no-mistakes-push/feat/gitlab-bootstrap-provider-boundarybin/fm-startup-network.sh- merge conflict rebasing onto refs/remotes/no-mistakes-push/feat/gitlab-bootstrap-provider-boundary🔧 Fix applied.
✅ Re-checked - no issues remain.
🔧 **Review** - 2 issues found → auto-fixed (3) ✅
bin/fm-bootstrap.sh:1324- In a mixed home containing a supported GitHub project and an unknown-origin project,forge_report_unsupportedreturns failure at line 1324, so the GitHub authentication loop is skipped; line 1358 likewise skips the entire fleet-sync sweep. This omits valid GitHub remediation and prevents supported projects from refreshing, contradicting the requirement to preserve GitHub behavior. Report unsupported projects independently and filter them at the per-project fleet-sync boundary..agents/skills/bootstrap-diagnostics/SKILL.md:31- This guidance incorrectly saysFORGE_UNSUPPORTEDcan result from an unreachable network. The diagnostic is emitted from local origin classification; network/auth failures produceNEEDS_GH_AUTHorNEEDS_GLAB_AUTH. Move reachability guidance to those authentication diagnostics so operators do not troubleshoot an unsupported host as an outage.🔧 Fix: Fixed mixed-provider bootstrap gating and fail-closed unknown-origin fleet refresh
1 warning still open:
bin/fm-forge-lib.sh:179- The deferredFM_BOOTSTRAP_NETWORK=onlypath silently omits authentication diagnostics when the provider CLI is absent:fm_forge_check_authreturns immediately oncommand -v gh/glabfailure without printingNEEDS_GH_AUTHorNEEDS_GLAB_AUTH. This regresses standalone/rerun network behavior and lets the phase appear clean despite an unverifiable forge prerequisite; emit the corresponding diagnostic before returning.🔧 Fix: Emit forge auth diagnostics when provider CLIs are missing
1 error still open:
bin/fm-fleet-sync.sh:339- The provider boundary is only enforced when bootstrap invokes fleet sync withFM_FLEET_SYNC_SKIP_UNKNOWN=1. A directbin/fm-fleet-sync.shinvocation against a registered checkout whose origin ishttps://code.example/team/project.gitreachesgit fetch originat line 344 because the guard at lines 339-342 is disabled by default. This leaves the same unsupported-origin network mutation reachable outside the deferred bootstrap wrapper; enforce the unknown-provider skip at the shared fleet-sync boundary.🔧 Fix: Enforced fail-closed filtering for standalone fleet sync
✅ Re-checked - no issues remain.
✅ **Test** - passed
✅ No issues found.
./bin/fm-test-run.sh tests/fm-bootstrap.test.sh./bin/fm-test-run.sh tests/fm-startup-network.test.sh tests/fm-session-start.test.sh tests/fm-fleet-sync.test.shManual deferred-network unknown-origin and mixed-provider CLI checksManual direct fleet-sync unknown-origin check confirming no fetch attempt✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.