Skip to content

feat(#7065): add --fullsend-binary and --fullsend-source flags to repos install - #7066

Merged
ggallen merged 4 commits into
mainfrom
agent/7065-vendor-flags-repos-install
Sep 6, 2026
Merged

feat(#7065): add --fullsend-binary and --fullsend-source flags to repos install#7066
ggallen merged 4 commits into
mainfrom
agent/7065-vendor-flags-repos-install

Conversation

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor

Summary

Add --fullsend-binary and --fullsend-source vendor flags to repos install, bringing it to parity with github setup. Previously, repos install --vendor hardcoded empty strings for these parameters, forcing every invocation to cross-compile the fullsend binary from scratch.

Changes

  • Add fullsendBinary and fullsendSource fields to reposInstallConfig
  • Replace standalone --vendor bool flag registration with addVendorFlags() (which registers --vendor, --fullsend-binary, and --fullsend-source together)
  • Add validateVendorFlags and applyDeprecatedVendorBinaryFlag calls in RunE, matching the github setup pattern
  • Pass opts.fullsendBinary and opts.fullsendSource through to appendVendorTreeFiles instead of hardcoded empty strings

Testing

  • Added TestReposInstallCmd_VendorFlags — verifies --fullsend-binary and --fullsend-source flags are registered
  • Added TestReposInstallCmd_VendorFlagValidation — verifies --fullsend-binary and --fullsend-source require --vendor
  • All existing repos install tests pass
  • All existing vendor tests pass

Checklist

  • PR title follows Conventional Commits
  • Tests added for new flag registration and validation

Closes #7065

Post-script verification

  • Branch is not main/master (agent/7065-vendor-flags-repos-install)
  • Secret scan passed (gitleaks — d207874bb16547d8703429e17761d5192491eb2e..HEAD)
  • PR body secret scan passed (gitleaks — no-git)

…os install

Wire the existing vendor flags (--fullsend-binary, --fullsend-source)
into the repos install command, bringing it to parity with github
setup. Previously, repos install hardcoded empty strings for these
parameters when calling appendVendorTreeFiles, forcing every
--vendor invocation to cross-compile from scratch.

Changes:
- Add fullsendBinary and fullsendSource fields to reposInstallConfig
- Replace standalone --vendor bool flag with addVendorFlags() which
  registers --vendor, --fullsend-binary, and --fullsend-source
- Add validateVendorFlags and applyDeprecatedVendorBinaryFlag calls
  in RunE, matching the github setup pattern
- Pass opts.fullsendBinary and opts.fullsendSource through to
  appendVendorTreeFiles instead of hardcoded empty strings

Note: pre-commit hooks were not run. pre-commit could not complete
(infrastructure failure: network access blocked in sandbox).

Closes #7065
@fullsend-ai-coder
fullsend-ai-coder Bot requested a review from a team as a code owner September 6, 2026 17:47
@fullsend-ai-coder fullsend-ai-coder Bot added the ready-for-review Triggers review agent dispatch label Sep 6, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 6, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 5:49 PM UTC · Completed 6:03 PM UTC

Commit: 587a6ad · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $4.62

@codecov

codecov Bot commented Sep 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@fullsend-ai-review fullsend-ai-review Bot added the risk/moderate PR risk: moderate label Sep 6, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 6, 2026

Copy link
Copy Markdown

Risk Assessment: moderate (2/5)

Details

Tier 1 remains uniformly low (small well-tested bot-authored change, no protected paths, no security exposure, no dependency changes, composite ~1.1), Tier 3 confirms a well-scoped additive flag enhancement with no risk labels (composite ~1.5), but repos.go and surrounding files remain high-churn hotspots (avg ~18 commits/30d, avg ~17+ fix/revert commits/90d, Tier 2 composite ~2.6), producing a weighted composite of ~1.6 that rounds to 2 (moderate); signals are essentially unchanged from the prior assessment.

Previous run

Risk Assessment: moderate (2/5)

Details

Tier 1 is uniformly low (small well-tested bot-authored change with no protected paths, security exposure, or dependency changes), Tier 3 confirms a well-scoped additive enhancement with no risk labels, but repos.go and surrounding files remain high-churn hotspots (avg 18 commits/30d, ~17.7 fix-pattern commits/90d in Tier 2, score ~2.4) that hold the composite at ~1.6, rounding to moderate (2); signals are essentially unchanged from the prior assessment.

Previous run (2)

Risk Assessment: moderate (2/5)

Details

Tier 1 is uniformly low (small, well-tested, bot-authored change with no security or CI exposure), Tier 3 confirms a well-scoped additive enhancement with no risk labels, but repos.go and its surrounding files remain high-churn hotspots (16-20 commits in 30 days, 4-6 authors, 14-18 fix-pattern commits in 90 days) that hold Tier 2 at ~3.1, yielding a composite of ~1.7 which rounds to moderate (2); signals are essentially unchanged from the prior assessment.

Previous run (3)

Risk Assessment: moderate (2/5)

Details

Tier 1 is uniformly low (small, tested, bot-authored change with no security or CI exposure), but repos.go is a high-churn hotspot (26 commits in 30 days, 4 authors) with a heavy fix-pattern commit history that elevates Tier 2 to ~2.7, yielding a composite of ~1.5 which rounds to moderate (2).

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 6, 2026

Copy link
Copy Markdown

Looks good to me

Previous run

Looks good to me

Previous run (2)

Review

Findings

Low

  • [naming-convention] internal/cli/repos_test.go:1164 — The new test TestReposInstallCmd_VendorFlags (plural) is nearly identical in name to the existing TestReposInstallCmd_VendorFlag (singular) at line 1157. The only difference is a trailing 's', and the tests are immediately adjacent, making them easy to conflate when scanning test output or searching by name.
    Remediation: Rename to TestReposInstallCmd_FullsendBinarySourceFlags or TestReposInstallCmd_NewVendorFlags to distinguish it clearly from the existing test.

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 (3)

Review

Findings

Medium

  • [Missing flag documentation] docs/cli/repos.md:121 — The repos install flags table documents --vendor but does not include the new --fullsend-binary and --fullsend-source flags added by this PR. The --vendor row's statement that the binary and content are auto-resolved from --fullsend-ref remains correct as the default behavior, but is now incomplete since the new flags allow explicit overrides. The same documentation gap pre-exists in docs/cli/github.md for github setup.
    Remediation: Add --fullsend-binary and --fullsend-source rows to the repos install flags table after --vendor. Update the --vendor row description to note that the binary can be provided explicitly via --fullsend-binary or built from source via --fullsend-source, otherwise auto-resolved from --fullsend-ref. Consider also updating docs/cli/github.md for consistency.

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

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-coder

fullsend-ai-coder Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 6:05 PM UTC · Completed 6:13 PM UTC

Commit: 587a6ad · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $1.28

…ags table

Add the two new vendor flags to the repos install documentation, matching
the code changes in this PR. Update the --vendor row to note explicit
override options.

Note: pre-commit hooks were not run. `pre-commit` could not complete
(infrastructure failure); fallback lint checks (trailing-whitespace,
end-of-file-fixer, lint-docs-links, lychee) passed.

Addresses #7066
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 1 (bot-triggered)

Added --fullsend-binary and --fullsend-source flag documentation to the repos install flags table in docs/cli/repos.md. Updated the --vendor description to reference the new override flags. Declined to update docs/cli/github.md as the documentation gap there predates this PR.

Fixed (1):

  1. Missing flag documentation (docs/cli/repos.md): Added --fullsend-binary and --fullsend-source rows to the repos install flags table after --vendor. Updated the --vendor row description to note that the binary can be provided explicitly via --fullsend-binary or built from source via --fullsend-source, instead of only mentioning auto-resolution from --fullsend-ref. Flag descriptions match the help text in addVendorFlags() and note the --vendor requirement consistent with validateVendorFlags().

Disagreed (1):

  1. Missing flag documentation in docs/cli/github.md for github setup: The reviewer noted this as a pre-existing gap ('The same documentation gap pre-exists in docs/cli/github.md'). The github setup command already had --fullsend-binary and --fullsend-source flags before this PR — that documentation gap was not introduced by this PR's changes. Additionally, docs/cli/github.md is also missing the --vendor flag itself, which predates this PR. Fixing pre-existing documentation gaps in unrelated commands is out of scope for this PR.

Tests: passed

Decision points
  • Whether to update docs/cli/github.md for the pre-existing vendor flag documentation gap (alternatives: Update github.md to add --vendor, --fullsend-binary, and --fullsend-source, Leave github.md unchanged since the gap predates this PR; rationale: The reviewer framed this as 'Consider also updating' (optional suggestion) and explicitly noted the gap pre-exists. This PR only modified repos.go, not github.go. Adding documentation for flags that were already present on github setup before this PR would expand the PR's scope beyond the review finding.)

Next steps:

  • /fs-review — request a re-review of the changes
  • /fs-fix <your instruction> — run another fix pass with specific guidance
  • Push commits directly — review re-runs automatically on push
    Updated by fullsend fix agent

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 6, 2026

Copy link
Copy Markdown

🤖 Review · ❌ Terminated · Started 6:14 PM UTC · Ended 6:26 PM UTC

Commit: faea6c9 · View workflow run →

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown

Site preview

Preview: https://a04b4241-site.fullsend-ai.workers.dev

Commit: d8332254e4ccdd692db6128f74184c9f49169d42

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 6:14 PM UTC · Completed 6:26 PM UTC

Commit: faea6c9 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $3.42

@fullsend-ai-coder

fullsend-ai-coder Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 6:28 PM UTC · Completed 6:36 PM UTC

Commit: faea6c9 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $1.06

Rename TestReposInstallCmd_VendorFlags to
TestReposInstallCmd_FullsendBinarySourceFlags to clearly distinguish it
from the adjacent TestReposInstallCmd_VendorFlag test, which differs
only by a trailing 's'.

Addresses #7066
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 2 (bot-triggered)

Renamed the confusingly similar test function TestReposInstallCmd_VendorFlags to TestReposInstallCmd_FullsendBinarySourceFlags as suggested by the reviewer, to clearly distinguish it from the existing TestReposInstallCmd_VendorFlag test.

Fixed (1):

  1. Test name TestReposInstallCmd_VendorFlags is nearly identical to TestReposInstallCmd_VendorFlag (internal/cli/repos_test.go): Renamed TestReposInstallCmd_VendorFlags to TestReposInstallCmd_FullsendBinarySourceFlags to clearly distinguish it from the adjacent TestReposInstallCmd_VendorFlag test

Tests: passed

Next steps:

  • /fs-review — request a re-review of the changes
  • /fs-fix <your instruction> — run another fix pass with specific guidance
  • Push commits directly — review re-runs automatically on push
    Updated by fullsend fix agent

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 6, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 6:38 PM UTC · Completed 6:49 PM UTC

Commit: 09839c3 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $2.80

@fullsend-ai-review
fullsend-ai-review Bot dismissed stale reviews from themself September 6, 2026 18:49

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 Sep 6, 2026
@ggallen

ggallen commented Sep 6, 2026

Copy link
Copy Markdown
Member

/fs-code

In internal/cli/repos.go, remove the applyDeprecatedVendorBinaryFlag(cmd, &opts.vendor) call from the repos install RunE. The --vendor-fullsend-binary flag was never offered on repos install, only on github setup, so the deprecation shim is a no-op here and shouldn't be added. Keep validateVendorFlags — that's correct.

@ggallen

ggallen commented Sep 6, 2026

Copy link
Copy Markdown
Member

/fs-fix

In internal/cli/repos.go, remove the applyDeprecatedVendorBinaryFlag(cmd, &opts.vendor) call from the repos install RunE. The --vendor-fullsend-binary flag was never offered on repos install, only on github setup, so the deprecation shim is a no-op here and shouldn't be added. Keep validateVendorFlags — that's correct.

@fullsend-ai-coder

fullsend-ai-coder Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 7:13 PM UTC · Completed 7:20 PM UTC

Commit: 09839c3 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $1.08

…tall

The --vendor-fullsend-binary flag was only ever offered on `github setup`,
never on `repos install`. The deprecation shim is a no-op here — it looks
up a flag that, while registered by addVendorFlags, has no prior callers
to deprecate. Remove the unnecessary call; keep validateVendorFlags.

Note: pre-commit hooks were not run. `pre-commit` could not complete
(infrastructure failure); hooks were run directly (gofmt, go vet).

Addresses #7066
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 3 (human-triggered)

Removed the no-op applyDeprecatedVendorBinaryFlag call from repos install RunE per human instruction. The deprecation shim only applies to github setup where --vendor-fullsend-binary was historically offered. validateVendorFlags was kept as requested.

Fixed (1):

  1. Remove applyDeprecatedVendorBinaryFlag call from repos install RunE (internal/cli/repos.go): Removed the applyDeprecatedVendorBinaryFlag(cmd, &opts.vendor) call from repos install RunE. The --vendor-fullsend-binary flag was never offered on repos install (only on github setup), so the deprecation shim is a no-op here. Kept validateVendorFlags as instructed.

Tests: passed

Decision points
  • Whether to also remove the --vendor-fullsend-binary registration from addVendorFlags (alternatives: Remove the flag registration from addVendorFlags entirely, Remove only the applyDeprecatedVendorBinaryFlag call in repos install RunE; rationale: The human instruction specifically says to remove only the applyDeprecatedVendorBinaryFlag call. The flag registration via addVendorFlags is shared with github setup where the deprecation shim is needed, so it should stay.)

Next steps:

  • /fs-review — request a re-review of the changes
  • /fs-fix <your instruction> — run another fix pass with specific guidance
  • Push commits directly — review re-runs automatically on push
    Updated by fullsend fix agent

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 6, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 7:22 PM UTC · Completed 7:35 PM UTC

Commit: d833225 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $4.30

@ggallen
ggallen added this pull request to the merge queue Sep 6, 2026
Merged via the queue into main with commit 9d7f140 Sep 6, 2026
42 checks passed
@ggallen
ggallen deleted the agent/7065-vendor-flags-repos-install branch September 6, 2026 23:04
@fullsend-ai-retro

fullsend-ai-retro Bot commented Sep 6, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 11:06 PM UTC · Completed 11:18 PM UTC

Commit: d833225 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $3.71

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #7066 — Add vendor flags to repos install

Overall: The workflow completed successfully in ~5.5 hours (issue to merge), with most idle time waiting for human approval. The code agent produced a working implementation, the review agent found real cosmetic issues, and the fix agent resolved them cleanly. However, the human reviewer caught a functional issue that the review agent missed across 4 review cycles — the inclusion of a no-op deprecation shim (applyDeprecatedVendorBinaryFlag) that only applies to github setup, not repos install.

Timeline:

  • 17:27 — Issue #7065 created by ggallen (well-scoped, 4 specific changes listed)
  • 17:29–17:33 — Triage agent confirmed root cause ($0.80)
  • 17:34 — /fs-code triggered
  • 17:36–17:47 — Code agent implemented and opened PR ($3.75). Included applyDeprecatedVendorBinaryFlag (not in issue spec)
  • 17:49–18:03 — Review 1 found missing flag documentation ($4.62)
  • 18:05–18:13 — Fix 1 added docs ($1.28)
  • 18:14–18:26 — Review 2 found test naming collision ($3.42)
  • 18:28–18:36 — Fix 2 renamed test ($1.06)
  • 18:38–18:49 — Review 3 approved ($2.80)
  • 18:55 — Human reviewer (ggallen) identified no-op applyDeprecatedVendorBinaryFlag
  • 19:11 — /fs-fix triggered with human instruction
  • 19:13–19:20 — Fix 3 removed no-op call ($1.08)
  • 19:22–19:35 — Review 4 approved ($4.30)
  • 22:52 — Human approved; 23:04 — Merged

Cost: ~$23.11 total (triage $0.80, code $3.75, 4 reviews $15.14, 3 fixes $3.42). The human-triggered fix cycle (review 4 + fix 3 = $5.38) was caused by the review agent not catching the no-op.

Autonomy delta: The human review added clear value — ggallen caught a functional issue (no-op deprecated shim) that the review agent missed across 4 iterations. The review agent found real but lower-impact issues (missing docs, confusing test name). This is evidence that the review agent lacks the ability to evaluate whether backwards-compatibility code applies to the target context.

Existing issue evidence: Pre-commit hooks could not run in sandbox across all 4 commits. This is covered by #3746. Related but distinct: #3517 covers review agent missing functional purpose verification — this retro's finding about no-op detection is a different pattern.

Proposals filed

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

Labels

ready-for-merge All reviewers approved — ready to merge ready-for-review Triggers review agent dispatch risk/moderate PR risk: moderate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add --fullsend-binary and --fullsend-source flags to repos install

1 participant