ADR 0025: origin-first forge resolution and host-keyed credentials (tracking) #30

Closed
opened 2026-07-13 15:56:29 +00:00 by hexajon · 1 comment
hexajon commented 2026-07-13 15:56:29 +00:00 (Migrated from codeberg.org)

Implements docs/adr/0025-origin-first-forge-resolution.md on branch adr/0025-origin-first-forge-resolution.

Landed on the branch (with review):

  • ADR text (2acb9e13) · T1 host parsing: ParseRemoteHost/forgeHost/OriginForgeURL/runGitDir (5b01e432) · T2 host-keyed TokenStore v2 across keychain/pass/systemd-creds (e516ec7b, fix 6fce6df3) · T3 resolver: host-keyed lookup + migrate-on-first-use, signature resolveSecureOrGitToken(ctx, cleanURL, gitUser) (token, user, source string, secureErr error) (fdaf007a) · T4 the origin-first chain in getConfigFromGit/GetCredentials/GetCredentialsWithSource + migrate-gate rework (0b787929).

Remaining: the sub-issues below. Order: #A ∥ #B (disjoint files), then #C, then #D ∥ #E, then #F, then #G (gate + merge).

Exit criterion: full ./scripts/gate.sh green on the branch; a repo whose origin names forge X can never be queried against forge Y; one credential per forge host; repo-less calls resolve a session forge or fail closed; ADR status flipped to Accepted.

Sub-issues:

  • #31 — ADR 0025 T5: per-dir and per-URL config resolution entry points
  • #32 — ADR 0025 T6: auth login — origin-aware, prompt-minimal, forge-wide
  • #33 — ADR 0025 T7: session forge — workspace scan with fail-closed ambiguity
  • #34 — ADR 0025 T8: dir= operations resolve their target's forge
  • #35 — ADR 0025 T9: conformance probe for session-forge fail-closed ambiguity
  • #36 — ADR 0025 T10: docs, ADR acceptance, changelog
  • #37 — ADR 0025 T11: full gate + merge

Follow-on (not gating this epic):

  • #59 — dir= targeting on the API plane (issues/prs/labels/milestones/comments); depends on #31 and #34 so it lands on the finished resolver.
Implements docs/adr/0025-origin-first-forge-resolution.md on branch `adr/0025-origin-first-forge-resolution`. **Landed on the branch (with review):** - ADR text (2acb9e13) · T1 host parsing: `ParseRemoteHost`/`forgeHost`/`OriginForgeURL`/`runGitDir` (5b01e432) · T2 host-keyed TokenStore v2 across keychain/pass/systemd-creds (e516ec7b, fix 6fce6df3) · T3 resolver: host-keyed lookup + migrate-on-first-use, signature `resolveSecureOrGitToken(ctx, cleanURL, gitUser) (token, user, source string, secureErr error)` (fdaf007a) · T4 the origin-first chain in getConfigFromGit/GetCredentials/GetCredentialsWithSource + migrate-gate rework (0b787929). **Remaining:** the sub-issues below. Order: #A ∥ #B (disjoint files), then #C, then #D ∥ #E, then #F, then #G (gate + merge). **Exit criterion:** full ./scripts/gate.sh green on the branch; a repo whose origin names forge X can never be queried against forge Y; one credential per forge host; repo-less calls resolve a session forge or fail closed; ADR status flipped to Accepted. **Sub-issues:** - [ ] #31 — ADR 0025 T5: per-dir and per-URL config resolution entry points - [ ] #32 — ADR 0025 T6: auth login — origin-aware, prompt-minimal, forge-wide - [ ] #33 — ADR 0025 T7: session forge — workspace scan with fail-closed ambiguity - [ ] #34 — ADR 0025 T8: dir= operations resolve their target's forge - [ ] #35 — ADR 0025 T9: conformance probe for session-forge fail-closed ambiguity - [ ] #36 — ADR 0025 T10: docs, ADR acceptance, changelog - [ ] #37 — ADR 0025 T11: full gate + merge **Follow-on (not gating this epic):** - [ ] #59 — dir= targeting on the API plane (issues/prs/labels/milestones/comments); depends on #31 and #34 so it lands on the finished resolver.
hexajon commented 2026-07-14 22:20:28 +00:00 (Migrated from codeberg.org)

All sub-issues T5–T11 (#31–#37) are closed and the branch merged to main via PR #41 (merge commit 7f874f80). Exit criteria verified: ADR status is Accepted (docs/adr/0025-origin-first-forge-resolution.md:3), full gate ran as T11 (#37), host-keyed credentials + origin-first chain + session-forge scan + dir= forge routing all on main. The body checklist predates the sub-issue closes and is stale; the closed children are the record. Follow-on #59 (dir= on the API plane) remains open by design.

All sub-issues T5–T11 (#31–#37) are closed and the branch merged to main via PR #41 (merge commit 7f874f80). Exit criteria verified: ADR status is Accepted (docs/adr/0025-origin-first-forge-resolution.md:3), full gate ran as T11 (#37), host-keyed credentials + origin-first chain + session-forge scan + dir= forge routing all on main. The body checklist predates the sub-issue closes and is stale; the closed children are the record. Follow-on #59 (dir= on the API plane) remains open by design.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea#30
No description provided.