Skip to content

fix: reapply mint.fullsend.sh as default hosted mint URL - #6290

Merged
rh-hemartin merged 1 commit into
mainfrom
fix/reapply-mint-fullsend-sh-defaults
Aug 18, 2026
Merged

fix: reapply mint.fullsend.sh as default hosted mint URL#6290
rh-hemartin merged 1 commit into
mainfrom
fix/reapply-mint-fullsend-sh-defaults

Conversation

@rh-hemartin

Copy link
Copy Markdown
Member

Summary

Test plan

  • go test ./internal/cli/ ./internal/config/ ./pkg/e2etest/ all pass
  • New tests: TestValidateMintURL_Accepts*, TestDefaultMintURL_IsHostedCommunity, TestIsHostedMintURL (including port and case edge cases)
  • No remaining fullsend-mint-gljhbkcloq references outside DefaultPoolOrgInstallMintURL
  • CI green

🤖 Generated with Claude Code

@rh-hemartin
rh-hemartin requested a review from a team as a code owner August 17, 2026 13:26
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 17, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 1:27 PM UTC · Ended 1:37 PM UTC

Commit: aa4433b · View workflow run →

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Reapply mint.fullsend.sh as default hosted mint URL

🐞 Bug fix 📝 Documentation 🧪 Tests 🕐 20-40 Minutes

Grey Divider

AI Description

• Restore CLI/config defaults to use https://mint.fullsend.sh for the hosted community mint.
• Broaden mint URL validation and add hostname-based hosted-mint detection.
• Update docs to remove legacy Cloud Run URLs and enrollment-required language for hosted mint.
Diagram

graph TD
u["User / CI"] --> cli["CLI admin"] --> hosted{{"Hosted mint (mint.fullsend.sh)"}}
cli --> cfg["Config defaults"]
e2e["E2E tests"] --> hosted
e2e --> legacy{{"Legacy dev mint (.run.app)"}}
docs["Docs"] --> hosted
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Server-side redirect from legacy Cloud Run URL
  • ➕ Fixes existing clients without requiring CLI/doc changes
  • ➕ Reduces risk of future accidental reversion causing user-facing mismatch
  • ➖ Still leaves code/docs inconsistent unless defaults are updated anyway
  • ➖ Redirect behavior may be undesirable for security/audit expectations around token minting
2. Mint endpoint discovery (config-driven)
  • ➕ Avoids hardcoding hosted endpoints in multiple places
  • ➕ Easier future migrations (rotate hostnames without code changes)
  • ➖ More moving parts and failure modes (discovery availability)
  • ➖ Overkill for a single hosted endpoint change

Recommendation: Keep this PR’s approach: explicitly set mint.fullsend.sh as the default and accept it in validation, while documenting it consistently. Consider adding a server-side redirect as a belt-and-suspenders mitigation, but it should not replace updating client defaults/validation.

Files changed (12) +97 / -47

Bug fix (2) +18 / -6
admin.goRestore DefaultMintURL to mint.fullsend.sh and widen mint URL validation +17/-5

Restore DefaultMintURL to mint.fullsend.sh and widen mint URL validation

• Updates DefaultMintURL to https://mint.fullsend.sh. Adds IsHostedMintURL() helper using hostname parsing (case/port tolerant) and updates validateMintURL() to accept the hosted domain in addition to Cloud Run/Functions hosts.

internal/cli/admin.go

defaults.goRestore DefaultPerRepoMintURL to mint.fullsend.sh +1/-1

Restore DefaultPerRepoMintURL to mint.fullsend.sh

• Updates the default per-repo mint URL constant to https://mint.fullsend.sh to match the intended hosted community mint endpoint.

internal/config/defaults.go

Tests (4) +57 / -6
admin_test.goForce admin e2e installs to use legacy pool-org mint URL +2/-2

Force admin e2e installs to use legacy pool-org mint URL

• Changes admin install invocations to pass DefaultPoolOrgInstallMintURL rather than the env-configured MintURL. This preserves per-org install coverage while the hosted community mint remains public-mode only.

e2e/admin/admin_test.go

admin_test.goAdd tests for hosted mint URL acceptance and IsHostedMintURL +33/-1

Add tests for hosted mint URL acceptance and IsHostedMintURL

• Updates expected validation error messaging to mention hosted mint URLs. Adds coverage for validateMintURL() acceptance/rejection cases, DefaultMintURL correctness, and IsHostedMintURL behavior (case and port handling).

internal/cli/admin_test.go

auth.goIntroduce DefaultPoolOrgInstallMintURL and broaden hosted-mint detection +11/-1

Introduce DefaultPoolOrgInstallMintURL and broaden hosted-mint detection

• Adds DefaultPoolOrgInstallMintURL for admin e2e pool-org installs that must target the legacy per-org mint. Updates MintEnrollProjectID() to treat both the legacy pool-org URL and mint.fullsend.sh (via cli.IsHostedMintURL) as hosted-mint cases for selecting the hosted GCP project.

pkg/e2etest/auth.go

auth_test.goTest MintEnrollProjectID for both hosted URLs and overrides +11/-2

Test MintEnrollProjectID for both hosted URLs and overrides

• Extends coverage to ensure both DefaultPoolOrgInstallMintURL and cli.DefaultMintURL map to the hosted GCP project. Preserves behavior for env override precedence and custom mint URLs.

pkg/e2etest/auth_test.go

Documentation (6) +22 / -35
README.mdRemove hosted-mint enrollment step from getting-started order +3/-17

Remove hosted-mint enrollment step from getting-started order

• Drops the "Mint enrollment" prerequisite section so the guide flow starts with inference setup. This aligns onboarding with the hosted community mint requiring no manual enrollment.

docs/guides/getting-started/README.md

operations.mdClarify uninstall steps and self-hosted unenroll semantics +3/-3

Clarify uninstall steps and self-hosted unenroll semantics

• Replaces the hosted-mint unenrollment step with removing the FULLSEND_MINT_URL override variable. Clarifies that only self-hosted mints require explicit unenroll/allowlist removal.

docs/guides/getting-started/operations.md

repo-management.mdUpdate prerequisites: hosted mint needs no enrollment +5/-4

Update prerequisites: hosted mint needs no enrollment

• Adjusts GCP prerequisites to require WIF provisioning, and scopes mint enrollment to self-managed mints only. Updates install prerequisite callout to reflect the same distinction.

docs/guides/getting-started/repo-management.md

layered-config-reference.mdUpdate documented default mint_url to mint.fullsend.sh +1/-1

Update documented default mint_url to mint.fullsend.sh

• Changes the default compiled-in mint_url reference from the legacy Cloud Run URL to https://mint.fullsend.sh.

docs/guides/infrastructure/layered-config-reference.md

mint-administration.mdRefresh hosted mint section for community mint and new URL +3/-3

Refresh hosted mint section for community mint and new URL

• Updates hosted-mint description to state no enrollment is required (shared public Apps + CLI defaults). Replaces the legacy Cloud Run URL with https://mint.fullsend.sh and clarifies that the rest of the guide is for self-hosted operators.

docs/guides/infrastructure/mint-administration.md

standalone-mint.mdSwitch fallback proxy examples to mint.fullsend.sh and update prereqs +7/-7

Switch fallback proxy examples to mint.fullsend.sh and update prereqs

• Replaces legacy run.app references in prerequisites, env var tables, and examples with https://mint.fullsend.sh. Updates proxy semantics to require shared public GitHub Apps instead of enrollment language.

docs/guides/infrastructure/standalone-mint.md

@qodo-code-review

qodo-code-review Bot commented Aug 17, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (1) 📜 Skill insights (1)

Grey Divider


Remediation recommended

1. Hardcoded Cloud Run mint URL 📘 Rule violation ⛨ Security
Description
DefaultPoolOrgInstallMintURL hardcodes a real Cloud Run hostname, which is an environment-specific
identifier embedded in source code and tests. This increases the risk of coupling tests to real
infrastructure and violates the rule against hardcoded sensitive/environment-specific identifiers.
Code

pkg/e2etest/auth.go[R47-50]

+// mint against FULLSEND_MINT_URL. The community hosted mint (mint.fullsend.sh)
+// runs in public mode and does not support per-org installs, so org-mode admin
+// e2e must keep using the legacy per-org hosted dev mint until that changes.
+const DefaultPoolOrgInstallMintURL = "https://fullsend-mint-gljhbkcloq-uc.a.run.app"
Relevance

●● Moderate

The endpoint is intentional for per-org e2e tests, but no close rejection precedent addresses this
compliance rule.

PR-#6261

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1062040 forbids hardcoded environment-specific identifiers (including real
hostnames/service endpoints) in source and tests. The newly added DefaultPoolOrgInstallMintURL
constant hardcodes a specific Cloud Run endpoint.

Rule 1062040: Disallow hardcoded secrets and sensitive environment-specific identifiers in source code
pkg/e2etest/auth.go[42-50]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A real Cloud Run mint URL is hardcoded as `DefaultPoolOrgInstallMintURL`.

## Issue Context
Compliance requires avoiding hardcoded sensitive or environment-specific identifiers in source code (including tests). This URL appears to reference real infrastructure.

## Fix Focus Areas
- pkg/e2etest/auth.go[42-50]
- e2e/admin/admin_test.go[96-96]
- e2e/admin/admin_test.go[901-901]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Informational

2. Guides not under admin/user 📜 Skill insight ⌂ Architecture
Description
This PR modifies guide files under docs/guides/getting-started/ and docs/guides/infrastructure/,
but the compliance rule requires guides to live under docs/guides/admin/ or docs/guides/user/
only. Leaving these guides outside those directories violates the required documentation structure
and audience separation policy.
Code

docs/guides/getting-started/README.md[R10-12]

+1. [Getting Inference](getting-inference.md)
+2. [Configuring GitHub](configuring-github.md)
+3. [Organization Mode](org-mode.md)
Relevance

● Weak

Multiple recent reviews rejected relocating guides; repository accepts dev/infrastructure guide
taxonomy despite the claimed rule.

PR-#5454
PR-#5457
PR-#5502

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
PR Compliance ID 1062077 requires every guide under docs/guides/ to be placed in either the
admin/ or user/ subdirectory. The PR modifies multiple guides that are located instead in
docs/guides/getting-started/ and docs/guides/infrastructure/, demonstrating non-compliant
placement.

docs/guides/getting-started/README.md[1-12]
docs/guides/infrastructure/mint-administration.md[1-33]
Skill: writing-user-docs

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Modified guide files live outside the allowed `docs/guides/admin/` and `docs/guides/user/` directories.

## Issue Context
This PR changes guides under `docs/guides/getting-started/` and `docs/guides/infrastructure/`, which violates the required guide placement policy.

## Fix Focus Areas
- docs/guides/getting-started/README.md[10-12]
- docs/guides/getting-started/operations.md[72-72]
- docs/guides/getting-started/repo-management.md[22-22]
- docs/guides/infrastructure/mint-administration.md[23-33]
- docs/guides/infrastructure/standalone-mint.md[34-35]
- docs/guides/infrastructure/layered-config-reference.md[312-312]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Mint URL error mismatch ✓ Resolved 🐞 Bug ⚙ Maintainability
Description
validateMintURL() only accepts the exact hosted hostname "mint.fullsend.sh", but the error message
claims any ".fullsend.sh" host is allowed; this can mislead users when diagnosing rejected URLs.
Code

internal/cli/admin.go[225]

+	return fmt.Errorf("--mint-url must be a hosted mint or Cloud Run URL (.fullsend.sh, .run.app, or .cloudfunctions.net), got host %q", host)
Relevance

● Weak

The identical wording mismatch was explicitly rejected in PR #6261, despite the exact-host
allowlist.

PR-#6261

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The code allowlists only mint.fullsend.sh via an exact (case-insensitive) comparison, but the
emitted error message indicates .fullsend.sh is an accepted category, which is broader than what
the code actually permits.

internal/cli/admin.go[219-226]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`validateMintURL()` only allows the exact hosted host `mint.fullsend.sh` (plus `.run.app` / `.cloudfunctions.net`), but the error text says ".fullsend.sh" broadly. This makes the CLI error misleading when users try other `*.fullsend.sh` subdomains.

## Issue Context
The validation logic is exact-match for the hosted community mint; the user-facing error should reflect that policy (or the policy should be expanded if broader subdomains are intended).

## Fix Focus Areas
- internal/cli/admin.go[219-226]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context
✅ Compliance rules (platform): 56 rules

Grey Divider

Tip of the day
💡 Did you know, you can keep summaries lean with Finding overflow, which tucks the rest behind 'View more'

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread pkg/e2etest/auth.go
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 17, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:39 PM UTC · Completed 1:59 PM UTC

Commit: 6afd368 · View workflow run →

@fullsend-ai-review

fullsend-ai-review Bot commented Aug 17, 2026

Copy link
Copy Markdown

Review

Findings

Medium

  • [stale-enrollment-language] docs/architecture.md:54 — States "enrollment remains required until follow-on ADRs land" but this PR removes the enrollment requirement for the hosted community mint across 7 other doc files. This file was not updated, creating an internal contradiction within the documentation.
    Remediation: Update the sentence on line 54 to reflect that the hosted community mint no longer requires per-org enrollment.

Low

  • [error-message-inconsistency] internal/dispatch/gcf/provisioner.go:1019 — The error messages in provisionSelfManaged say "function URL %q is not a valid Cloud Run URL" but the validation now also accepts mint.fullsend.sh. The provisionWithExistingMint block was updated to say "must be mint.fullsend.sh or a Cloud Run URL" but provisionSelfManaged retains the old wording in both error branches (lines 1012 and 1019).
    Remediation: Update both error format strings to "function URL %q must be mint.fullsend.sh or a Cloud Run URL (.run.app or .cloudfunctions.net)" for consistency.

  • [authorization-tier] — PR title uses fix: but linked issue feat: default hosted mint URL to mint.fullsend.sh #6256 uses feat:. Re-applying a reverted feature as fix: is defensible (regression fix), but worth a conscious decision since GoReleaser categorizes release notes by PR title prefix.

  • [DRY-internal-reuse] internal/cli/admin.go:220validateMintURL duplicates the mint.fullsend.sh hostname check that IsHostedMintURL already encapsulates.
    Remediation: Consider extracting the hostname comparison into a helper that takes a pre-parsed hostname, usable by both IsHostedMintURL and validateMintURL, to avoid both duplication and double-parsing.

  • [authorization-scope] pkg/e2etest/auth.go:93MintEnrollProjectID() broadened detection from exact string equality to matching either the legacy Cloud Run URL or any URL with hostname mint.fullsend.sh. Impact limited to e2e test infrastructure.

Previous run

Review

Findings

Medium

  • [breaking-change] internal/cli/admin.go:41DefaultMintURL changes from https://fullsend-mint-gljhbkcloq-uc.a.run.app to https://mint.fullsend.sh. Per COMMITS.md, "default values change in ways that alter existing behavior" is a breaking change criterion. Users with network allowlists, proxy rules, or TLS certificate pinning against the .run.app domain may be affected. Consider whether the PR title needs a ! suffix and a BREAKING CHANGE: trailer, or document in the commit body why this default change is safe (same service behind Cloudflare edge proxy).

  • [stale-enrollment-language] docs/architecture.md:54 — States "enrollment remains required until follow-on ADRs land" but this PR removes the enrollment requirement for the hosted community mint across 7 other doc files. This file was not updated.
    Remediation: Update to reflect that the hosted community mint no longer requires per-org enrollment.

Low

  • [authorization-tier] — PR title uses fix: but linked issue feat: default hosted mint URL to mint.fullsend.sh #6256 uses feat: and original PR feat(#6256): default hosted mint URL to mint.fullsend.sh #6261 also used feat:. Re-applying a reverted feature as fix: is defensible (regression fix), but worth a conscious decision since GoReleaser categorizes release notes by PR title prefix.

  • [stale-implementation-reference] docs/contributing/go-code.md:249 — States "Enrollment and other mint-mutating commands rewrite Cloud Run env vars" but the default hosted mint is now mint.fullsend.sh. The advice (always use go run) remains correct, but "Cloud Run env vars" is slightly misleading in the hosted mint context.
    Remediation: Consider softening to "rewrite service env vars" to cover both hosted and self-managed mints.

Previous run (2)

Review

Findings

Low

  • [URL validation inconsistency] internal/dispatch/gcf/provisioner.go:669 — The mint.fullsend.sh check uses parsedURL.Hostname() (strips port), while the existing .run.app and .cloudfunctions.net checks use parsedURL.Host (includes port). The inconsistency is pre-existing but this PR mixes both accessor methods in the same conditional expression. In practice, Cloud Run URLs never use non-standard ports, so the impact is negligible.
    Remediation: Normalize all host checks in the provisioner to use parsedURL.Hostname() consistently, matching admin.go's validateMintURL.

  • [URL validation inconsistency] internal/dispatch/gcf/provisioner.go:1006 — The post-deploy URL validation in provisionSelfManaged() was not updated to accept mint.fullsend.sh. However, this path validates the URI returned by the Cloud Run API for a self-deployed function (always a .run.app URL by construction), so mint.fullsend.sh would never appear here. No change needed.

  • [stale-implementation-reference] docs/cli/repos.md:259 — Configuration table describes forge.github.mint_url as "Cloud Run endpoint URL for the token mint". Since the default is now mint.fullsend.sh (not a Cloud Run URL), this description is slightly misleading.
    Remediation: Change description from "Cloud Run endpoint URL for the token mint" to "Token mint service URL".

Previous run (3)

Review

Findings

High

  • [test assertion mismatch] internal/cli/admin_test.go:194TestInstallCmd_PerRepoRejectsNonCloudRunMintURL asserts the error contains "--mint-url must be a hosted mint or Cloud Run URL", but the actual error from validateMintURL reads "--mint-url must be mint.fullsend.sh or a Cloud Run URL (.run.app or .cloudfunctions.net), got host %q". The substring "a hosted mint" does not appear in the actual error message ("mint.fullsend.sh"), so this assertion will always fail.
    Remediation: Change the assertion to match the actual error message, e.g.: assert.Contains(t, err.Error(), "--mint-url must be mint.fullsend.sh or a Cloud Run URL")

Low

  • [URL validation inconsistency] internal/dispatch/gcf/provisioner.go:670 — The new mint.fullsend.sh check uses parsedURL.Hostname() (strips port), while the existing .run.app and .cloudfunctions.net checks continue to use parsedURL.Host (includes port). The inconsistency is pre-existing but the PR now mixes both accessor methods in the same conditional expression.
    Remediation: Consider normalizing all host checks in the provisioner to use parsedURL.Hostname() consistently, matching the pattern in admin.go's validateMintURL.

  • [stale-implementation-reference] docs/cli/repos.md:259 — Configuration table describes forge.github.mint_url as "Cloud Run endpoint URL for the token mint". Since the default is now mint.fullsend.sh (not a Cloud Run URL), this description is slightly misleading.
    Remediation: Change description from "Cloud Run endpoint URL for the token mint" to "Token mint service URL".


Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (4)

Review

Findings

Medium

Low

  • [stale implementation reference] docs/contributing/go-code.md:249 — References "Cloud Run env vars" when discussing mint-mutating commands. With the default URL now mint.fullsend.sh, this phrase couples documentation to a specific backend implementation.
    Remediation: Consider changing "rewrite Cloud Run env vars" to "rewrite mint environment variables."

  • [stale implementation reference] docs/cli/repos.md:259 — Describes forge.github.mint_url as "Cloud Run endpoint URL" in the same table row that shows the default as https://mint.fullsend.sh.
    Remediation: Change "Cloud Run endpoint URL for the token mint" to "Token mint service URL."


Labels: PR modifies mint URL defaults, validation, and documentation across cli, config, e2e, and docs packages

@fullsend-ai-review fullsend-ai-review Bot added requires-manual-review Review requires human judgment component/mint Token mint and cross-boundary credentials component/docs User-facing documentation component/e2e End-to-end tests labels Aug 17, 2026

@waynesun09 waynesun09 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional findings on files not touched by this PR's diff (GitHub won't allow inline comments on unchanged lines), posted here instead:

[HIGH] internal/dispatch/gcf/provisioner.go:670 — validateMintURL now accepts mint.fullsend.sh but GCF provisioner still rejects it

Confirmed on HEAD (6afd368): internal/cli/admin.go's validateMintURL (admin.go:217-225) now accepts host mint.fullsend.sh via strings.EqualFold, matching this PR's intent. However internal/dispatch/gcf/provisioner.go — not touched by this PR — still hard-requires the mint host to end in .run.app or .cloudfunctions.net in two separate places (provisionWithExistingMint at line 670: "MintURL %q must be a valid Cloud Run URL (.run.app or .cloudfunctions.net)", and again at line 1009: "function URL %q is not a valid Cloud Run URL"). Since DefaultMintURL is now https://mint.fullsend.sh, any code path that reaches provisionWithExistingMint with the new default (e.g. fullsend admin install without --skip-mint-check) will pass CLI-level validation and then fail deep inside the provisioner with a confusing, unrelated error message.

Suggestion: Add a mint.fullsend.sh exception to both provisioner.go host checks (ideally via cli.IsHostedMintURL so the allowlists can't diverge again), or explicitly document that installs against the hosted community mint require --skip-mint-check.


[MEDIUM] docs/guides/getting-started/configuring-github.md:11 — Getting-started docs edit leaves a stale "step 1" cross-reference in an untouched doc

Confirmed via diff against origin/main: this PR removes the numbered "Mint enrollment" step 1 from docs/guides/getting-started/README.md, renumbering "Getting Inference" as step 1. docs/guides/getting-started/configuring-github.md (not touched by this PR) still says on line 11: "Your org or repo is enrolled in a fullsend token mint service (see Getting Started step 1)." Step 1 is now "Getting Inference", which has nothing to do with mint enrollment, so this cross-reference now points to the wrong content and undermines the PR's own stated goal of fixing the getting-started user journey.

Suggestion: Update configuring-github.md's prerequisite bullet to remove the stale "see Getting Started step 1" reference or rewrite it to match the no-enrollment-required hosted community mint flow this PR introduces.

Comment thread internal/cli/admin.go Outdated
Comment thread pkg/e2etest/auth.go Outdated
Comment thread pkg/e2etest/auth.go
@rh-hemartin

Copy link
Copy Markdown
Member Author

/fs-plan-tests

@fullsend-ai-coder

fullsend-ai-coder Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

🤖 Finished Qualityflow · ✅ Success · Started 7:18 AM UTC · Completed 7:27 AM UTC

Commit: 6afd368 · View workflow run →

fullsend-ai-coder Bot pushed a commit that referenced this pull request Aug 18, 2026
fullsend-ai-coder Bot pushed a commit that referenced this pull request Aug 18, 2026
Generated 21 passing tests across 3 packages:
- internal/cli: 15 tests (validateMintURL, IsHostedMintURL, DefaultMintURL)
- internal/config: 1 test (DefaultPerRepoMintURL)
- pkg/e2etest: 5 tests (MintEnrollProjectID, DefaultPoolOrgInstallMintURL)
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 18, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 7:27 AM UTC · Ended 7:43 AM UTC

Commit: 4db5569 · View workflow run →

@rh-hemartin
rh-hemartin force-pushed the fix/reapply-mint-fullsend-sh-defaults branch from 4db5569 to 6afd368 Compare August 18, 2026 07:42
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 18, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 7:44 AM UTC · Ended 7:54 AM UTC

Commit: 6afd368 · View workflow run →

@rh-hemartin
rh-hemartin force-pushed the fix/reapply-mint-fullsend-sh-defaults branch from 6afd368 to d557b83 Compare August 18, 2026 07:54
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 18, 2026

Copy link
Copy Markdown

🤖 Review · ⚠️ Cancelled · Started 7:56 AM UTC · Ended 7:57 AM UTC

Commit: d557b83 · View workflow run →

@rh-hemartin
rh-hemartin force-pushed the fix/reapply-mint-fullsend-sh-defaults branch from d557b83 to 2400e8e Compare August 18, 2026 07:57
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 18, 2026

Copy link
Copy Markdown

🤖 Review · ❌ Terminated · Started 7:58 AM UTC · Ended 8:16 AM UTC

Commit: 2400e8e · View workflow run →

@github-actions

github-actions Bot commented Aug 18, 2026

Copy link
Copy Markdown

Site preview

Preview: https://836905ba-site.fullsend-ai.workers.dev

Commit: 4ee7cecb13f5a18dce28795ee47409d7acbcf4e1

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot removed the requires-manual-review Review requires human judgment label Aug 18, 2026
@fullsend-ai-review

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 7:58 AM UTC · Completed 8:16 AM UTC

Commit: 2400e8e · View workflow run →

@rh-hemartin
rh-hemartin force-pushed the fix/reapply-mint-fullsend-sh-defaults branch from 2400e8e to 3cf82e1 Compare August 18, 2026 09:10
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 18, 2026

Copy link
Copy Markdown

🤖 Review · ❌ Terminated · Started 9:11 AM UTC · Ended 9:27 AM UTC

Commit: 3cf82e1 · View workflow run →

@codecov

codecov Bot commented Aug 18, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.29412% with 5 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
internal/dispatch/gcf/provisioner.go 66.66% 2 Missing and 3 partials ⚠️

📢 Thoughts on this report? Let us know!

@fullsend-ai-review
fullsend-ai-review Bot dismissed their stale review August 18, 2026 09:27

Superseded by updated review

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added the ready-for-merge All reviewers approved — ready to merge label Aug 18, 2026
@fullsend-ai-review

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 9:11 AM UTC · Completed 9:27 AM UTC

Commit: 3cf82e1 · View workflow run →

@rh-hemartin
rh-hemartin force-pushed the fix/reapply-mint-fullsend-sh-defaults branch from 3cf82e1 to e6a7569 Compare August 18, 2026 10:25
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 18, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 10:26 AM UTC · Completed 10:44 AM UTC

Commit: e6a7569 · View workflow run →

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review fullsend-ai-review Bot added requires-manual-review Review requires human judgment and removed ready-for-merge All reviewers approved — ready to merge labels Aug 18, 2026
Reapply changes from PR #6261 that were silently reverted by merge
df491ae (#6257): update DefaultMintURL and DefaultPerRepoMintURL to
https://mint.fullsend.sh, add IsHostedMintURL() helper, update
validateMintURL() and provisioner host checks to accept the new
hostname, add DefaultPoolOrgInstallMintURL for admin e2e tests, and
replace stale Cloud Run URL references in docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Hector Martinez <hemartin@redhat.com>
@rh-hemartin
rh-hemartin force-pushed the fix/reapply-mint-fullsend-sh-defaults branch from e6a7569 to 4ee7cec Compare August 18, 2026 11:39
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 18, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 11:41 AM UTC · Completed 12:00 PM UTC

Commit: 4ee7cec · View workflow run →

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the review comment for full details.

(!strings.EqualFold(host, "mint.fullsend.sh") &&
!strings.HasSuffix(host, ".run.app") &&
!strings.HasSuffix(host, ".cloudfunctions.net")) {
return nil, fmt.Errorf("function URL %q is not a valid Cloud Run URL", mintURL)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[low] error-message-inconsistency

Error messages in provisionSelfManaged say 'function URL is not a valid Cloud Run URL' but validation now accepts mint.fullsend.sh. The provisionWithExistingMint block was updated but provisionSelfManaged retains the old wording in both error branches (lines 1012 and 1019).

Suggested fix: Update both error format strings to match the other validation sites.

Comment thread internal/cli/admin.go
if !strings.HasSuffix(host, ".run.app") &&
!strings.HasSuffix(host, ".cloudfunctions.net") {
return fmt.Errorf("--mint-url must be a Cloud Run URL (.run.app or .cloudfunctions.net), got host %q", host)
if strings.EqualFold(host, "mint.fullsend.sh") ||

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[low] DRY-internal-reuse

validateMintURL duplicates the mint.fullsend.sh hostname check that IsHostedMintURL already encapsulates.

Suggested fix: Consider extracting the hostname comparison into a helper that takes a pre-parsed hostname.

Comment thread pkg/e2etest/auth.go
mintURL = cli.DefaultMintURL
}
if mintURL == cli.DefaultMintURL {
if isPoolOrgMintURL(mintURL) || cli.IsHostedMintURL(mintURL) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[low] authorization-scope

MintEnrollProjectID() broadened detection from exact string equality to matching either legacy Cloud Run URL or mint.fullsend.sh hostname. Impact limited to e2e test infrastructure.

Merged via the queue into main with commit 0bb4649 Aug 18, 2026
16 checks passed
@rh-hemartin
rh-hemartin deleted the fix/reapply-mint-fullsend-sh-defaults branch August 18, 2026 12:00
@fullsend-ai-retro

fullsend-ai-retro Bot commented Aug 18, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 12:03 PM UTC · Completed 12:12 PM UTC

Commit: 4ee7cec · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #6290 — reapply mint.fullsend.sh as default hosted mint URL

What happened

Two agent-created PRs touched overlapping files and merged within 2 hours of each other, causing a silent revert:

  1. PR #6261 (code agent, issue feat: default hosted mint URL to mint.fullsend.sh #6256) merged at 2026-08-16 21:58 UTC — updated DefaultMintURL and DefaultPerRepoMintURL to https://mint.fullsend.sh, added IsHostedMintURL() helper, and updated validateMintURL() to accept the new hostname.
  2. PR #6258 (code agent, issue fix: remove credential mode model, separate mint mode from inference requirements #6257) merged at 2026-08-16 23:47 UTC — removed the credential mode model and made inference secrets unconditional. This large refactor touched the same 3 critical files (internal/cli/admin.go, internal/config/defaults.go, pkg/e2etest/auth.go) and silently reverted all of PR feat(#6256): default hosted mint URL to mint.fullsend.sh #6261's mint URL changes through merge conflict resolution.
  3. PR #6290 (human-authored by rh-hemartin) was created ~1 day later to re-apply the reverted changes. It went through multiple review iterations before merging at 2026-08-18 12:00 UTC.

Review quality

The review agent correctly identified several issues: the DefaultMintURL domain switch as a potential breaking change, stale enrollment language in docs, a test assertion mismatch, and code duplication in validation logic. However, the human reviewer (waynesun09) caught a high-severity gap the review agent missed: validateMintURL() was updated to accept mint.fullsend.sh but the GCF provisioner's host checks in provisioner.go still rejected it, meaning code paths reaching provisionWithExistingMint would pass CLI validation then fail in the provisioner. This is cross-component validation consistency — the review agent checked the diff but didn't reason about what other validation callsites needed updating.

Evidence for existing issues

Proposals filed

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

Labels

component/docs User-facing documentation component/e2e End-to-end tests component/mint Token mint and cross-boundary credentials requires-manual-review Review requires human judgment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants