Skip to content

chore(#5694): remove deprecated customized/ scaffold - #5697

Merged
ggallen merged 1 commit into
mainfrom
agent/5694-remove-customized-scaffold
Aug 4, 2026
Merged

chore(#5694): remove deprecated customized/ scaffold#5697
ggallen merged 1 commit into
mainfrom
agent/5694-remove-customized-scaffold

Conversation

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor

Summary

Remove the deprecated customized/ directory scaffold code per ADR 0064. The installer was still generating customized/ subdirectories with .gitkeep placeholders in new enrollments despite the overlay mechanism being deprecated a month ago. This corresponds to PR 3 in the deprecation plan.

Related Issue

Closes #5694

Changes

  • Delete embedded customized/ directory tree (10 .gitkeep files under internal/scaffold/fullsend-repo/customized/)
  • Remove CustomizedDirs(), PerRepoCustomizedDirs() from scaffold.go
  • Remove customizedDirsForPrefix() and .gitkeep generation loops from installfiles.go (CollectInstallFiles and CollectPerRepoInstallFiles)
  • Update layeredDirs comment to reference ADR 0064 instead of ADR 0035
  • Update .pre-commit-tools.yaml to remove L1 override path docs referencing customized/scripts/
  • Replace TestCustomizedDirsInstalled with TestNoCustomizedDirsInstalled (verifies no customized/ paths appear in scaffold walk)
  • Add TestNoCustomizedDirsInInstallFiles for both org and per-repo install paths
  • Remove customized/ assertions from e2e admin test and layers workflow test

Testing

  • go test ./internal/scaffold/... passes
  • go vet ./internal/scaffold/... ./internal/layers/... passes
  • Tests added/updated for new or modified logic
  • New negative tests verify no customized/ paths appear in install output

Checklist

  • PR title follows Conventional Commits (correct type, ! for breaking changes)
  • Commits are signed off (DCO) — human and human-directed agent sessions only

Closes #5694

Post-script verification

  • Branch is not main/master (agent/5694-remove-customized-scaffold)
  • Secret scan passed (gitleaks — 038de3bab1f3b949daaa04441b3d7672be00c7c7..HEAD)
  • PR body secret scan passed (gitleaks — no-git)
  • Pre-commit hooks passed (authoritative run on runner)
  • Tests ran inside sandbox

@fullsend-ai-coder
fullsend-ai-coder Bot requested a review from a team as a code owner July 28, 2026 20:58
@fullsend-ai-coder fullsend-ai-coder Bot added the ready-for-review Triggers review agent dispatch label Jul 28, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Jul 28, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 9:00 PM UTC · Completed 9:11 PM UTC
Commit: 460ea00 · View workflow run →

@codecov

codecov Bot commented Jul 28, 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 commented Jul 28, 2026

Copy link
Copy Markdown

Looks good to me


Labels: PR removes deprecated scaffold code from the installer (internal/scaffold/)

Previous run

Looks good to me

Previous run (2)

Looks good to me

fullsend-ai-review[bot]

This comment was marked as outdated.

@ggallen

ggallen commented Aug 2, 2026

Copy link
Copy Markdown
Member

/fs-fix In internal/scaffold/scaffold_test.go, remove the test case at line 962 in TestManagedHeader:

{path: "customized/agents/.gitkeep", expect: ""},

The embedded .gitkeep files are deleted in this PR, so this test case is stale.

@fullsend-ai-coder

fullsend-ai-coder Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 10:52 AM UTC · Completed 10:58 AM UTC
Commit: 460ea00 · View workflow run →

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 1 (human-triggered)

Removed stale test case referencing deleted customized/agents/.gitkeep from TestManagedHeader. All tests pass.

Fixed (1):

  1. stale .gitkeep test case in TestManagedHeader (internal/scaffold/scaffold_test.go): Removed the customized/agents/.gitkeep test case and its associated comment from TestManagedHeader. The embedded .gitkeep files under customized/ were deleted in this PR, making this test case stale.

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-coder Bot added a commit that referenced this pull request Aug 2, 2026
Remove the customized/agents/.gitkeep test case and its comment from
TestManagedHeader. The embedded .gitkeep files under customized/ were
deleted in this PR, making this test case reference a non-existent file.

Addresses review feedback on #5697
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 2, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 10:59 AM UTC · Completed 11:08 AM UTC
Commit: e37c64c · View workflow run →

fullsend-ai-review[bot]

This comment was marked as outdated.

The customized/ directory overlay was deprecated by ADR 0064.
This removes the scaffold code that generates customized/
subdirectories and .gitkeep placeholders during installation.

Changes:
- Delete embedded customized/ directory tree (10 .gitkeep files)
- Remove CustomizedDirs() and PerRepoCustomizedDirs() from
  scaffold.go
- Remove customizedDirsForPrefix() and .gitkeep generation
  loops from installfiles.go
- Update layeredDirs comment to reference ADR 0064
- Update .pre-commit-tools.yaml to remove L1 override path
  docs referencing customized/scripts/
- Replace TestCustomizedDirsInstalled with
  TestNoCustomizedDirsInstalled that verifies no customized/
  paths appear
- Add TestNoCustomizedDirsInInstallFiles for both org and
  per-repo install paths
- Remove customized/ assertions from e2e and layers tests

Closes #5694

Signed-off-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Greg Allen <gallen@redhat.com>
@ggallen
ggallen force-pushed the agent/5694-remove-customized-scaffold branch from e37c64c to 76f1c21 Compare August 2, 2026 11:41
@fullsend-ai-review

fullsend-ai-review Bot commented Aug 2, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 11:42 AM UTC · Completed 11:54 AM UTC
Commit: 76f1c21 · View workflow run →

@ggallen
ggallen added this pull request to the merge queue Aug 4, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 4, 2026
@ggallen
ggallen added this pull request to the merge queue Aug 4, 2026
Merged via the queue into main with commit 4afea7d Aug 4, 2026
27 of 28 checks passed
@ggallen
ggallen deleted the agent/5694-remove-customized-scaffold branch August 4, 2026 19:41
@fullsend-ai-retro

fullsend-ai-retro Bot commented Aug 4, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 7:44 PM UTC · Completed 8:04 PM UTC
Commit: 76f1c21 · View workflow run →

ggallen pushed a commit that referenced this pull request Aug 4, 2026
Remove the fullsend agent migrate-customizations command, which became
dead code after the customized/ directory overlay mechanism was fully
removed (PRs #5697 and #5836). With no overlay to migrate from, the
command has nothing meaningful to do.

- Delete internal/cli/migrate.go and internal/cli/migrate_test.go
- Remove subcommand registration from internal/cli/agent.go
- Update agent_test.go assertion and add negative assertion
- Remove CLI reference documentation and migration guidance
- Remove stale migrate.go references from docs
- Annotate cross-references in ADRs to note the command's removal

BREAKING CHANGE: The `fullsend agent migrate-customizations` CLI command
has been removed. Users who have already migrated to config-driven agents
are unaffected.

Closes #5864

Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Greg Allen <gallen@redhat.com>
@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #5697 — Remove deprecated customized/ scaffold

Workflow overview

PR #5697 removed the deprecated customized/ directory scaffold (10 embedded .gitkeep files, associated Go functions, and test assertions across 17 files). The full agent pipeline completed efficiently:

  • Triage (6 min): Labeled issue Installer shouldn't perpetuate deprecated /customized folder #5694 for code agent. No issues.
  • Code (11 min): Created PR with comprehensive changes. Missed one stale test reference.
  • Review (12 min): Approved with 0 correctness findings. Did not catch the stale reference.
  • Fix (6 min): Resolved the missed test case promptly when human directed via /fs-fix.
  • Total agent compute: ~35 minutes across all stages. Pipeline was efficient.

Key finding: code agent missed a stale test table entry, causing one rework cycle

The code agent correctly removed all 10 .gitkeep files, deleted CustomizedDirs()/PerRepoCustomizedDirs()/customizedDirsForPrefix() functions, and updated most test assertions. However, it missed a test case in TestManagedHeader that referenced customized/agents/.gitkeep as a path string in a table-driven test:

{path: "customized/agents/.gitkeep", expect: ""},

This entry was invisible to test-driven validation because it asserted an empty header (the test still passed). Human reviewer ggallen caught it 4 days later and used /fs-fix to direct the fix agent, which resolved it in 6 minutes. The code agent likely searched for callers of the removed functions rather than doing a comprehensive codebase-wide grep for string-literal path references to the deleted embedded files.

Review agent gap

The review agent's correctness sub-agent (Opus) reported "clean removal, no stale callers, tests strengthened" — it verified no remaining callers of the removed exported functions, but did not audit test data tables for path strings referencing deleted files. The stale entry was in the same file as other changes the agent reviewed.

This provides additional evidence for existing issues:

Merge queue bounce (transient)

The first merge queue attempt (Aug 4, 18:30 UTC) was ejected after ~3 minutes due to a GCP WIF API rate limit (HTTP 429) during behaviour test setup. A concurrent PR (#5836) was in the merge queue simultaneously, and both runs' WIF provisioning exhausted the quota. The second attempt 1 hour later succeeded. This provides additional evidence for #2837 (post diagnostic comment when PR is ejected from merge queue) — no automated diagnostic was posted, and the human had to manually re-queue.

What went well

  • The triage → code → review pipeline completed end-to-end in ~30 minutes with no human intervention needed for the initial submission.
  • The fix agent resolved the issue in 6 minutes with a clean, focused commit.
  • Full test coverage was maintained throughout (Codecov confirmed all modified lines covered).
  • The human squash workflow (force-push to clean commit history) triggered appropriate re-reviews.
  • Two independent human reviewers approved the final result.

Proposals filed

ggallen pushed a commit that referenced this pull request Aug 4, 2026
Remove the fullsend agent migrate-customizations command, which became
dead code after the customized/ directory overlay mechanism was fully
removed (PRs #5697 and #5836). With no overlay to migrate from, the
command has nothing meaningful to do.

- Delete internal/cli/migrate.go and internal/cli/migrate_test.go
- Remove subcommand registration from internal/cli/agent.go
- Update agent_test.go assertion and add negative assertion
- Remove CLI reference documentation and migration guidance
- Remove stale migrate.go references from docs
- Annotate cross-references in ADRs to note the command's removal

BREAKING CHANGE: The `fullsend agent migrate-customizations` CLI command
has been removed. Users who have already migrated to config-driven agents
are unaffected.

Closes #5864

Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Greg Allen <gallen@redhat.com>
ggallen pushed a commit that referenced this pull request Aug 4, 2026
Remove the fullsend agent migrate-customizations command, which became
dead code after the customized/ directory overlay mechanism was fully
removed (PRs #5697 and #5836). With no overlay to migrate from, the
command has nothing meaningful to do.

- Delete internal/cli/migrate.go and internal/cli/migrate_test.go
- Remove subcommand registration from internal/cli/agent.go
- Update agent_test.go assertion and add negative assertion
- Remove CLI reference documentation and migration guidance
- Remove stale migrate.go references from docs
- Annotate cross-references in ADRs to note the command's removal

BREAKING CHANGE: The `fullsend agent migrate-customizations` CLI command
has been removed. Users who have already migrated to config-driven agents
are unaffected.

Closes #5864

Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Greg Allen <gallen@redhat.com>
ggallen pushed a commit that referenced this pull request Aug 5, 2026
Remove the fullsend agent migrate-customizations command, which became
dead code after the customized/ directory overlay mechanism was fully
removed (PRs #5697 and #5836). With no overlay to migrate from, the
command has nothing meaningful to do.

- Delete internal/cli/migrate.go and internal/cli/migrate_test.go
- Remove subcommand registration from internal/cli/agent.go
- Update agent_test.go assertion and add negative assertion
- Remove CLI reference documentation and migration guidance
- Remove stale migrate.go references from docs
- Annotate cross-references in ADRs to note the command's removal

BREAKING CHANGE: The `fullsend agent migrate-customizations` CLI command
has been removed. Users who have already migrated to config-driven agents
are unaffected.

Closes #5864

Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Greg Allen <gallen@redhat.com>
ggallen pushed a commit that referenced this pull request Aug 5, 2026
Remove the fullsend agent migrate-customizations command, which became
dead code after the customized/ directory overlay mechanism was fully
removed (PRs #5697 and #5836). With no overlay to migrate from, the
command has nothing meaningful to do.

- Delete internal/cli/migrate.go and internal/cli/migrate_test.go
- Remove subcommand registration from internal/cli/agent.go
- Update agent_test.go assertion and add negative assertion
- Remove CLI reference documentation and migration guidance
- Remove stale migrate.go references from docs
- Annotate cross-references in ADRs to note the command's removal

BREAKING CHANGE: The `fullsend agent migrate-customizations` CLI command
has been removed. Users who have already migrated to config-driven agents
are unaffected.

Closes #5864

Signed-off-by: Claude <noreply@anthropic.com>
Signed-off-by: Greg Allen <gallen@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/install CLI install and app setup ready-for-merge All reviewers approved — ready to merge ready-for-review Triggers review agent dispatch tech-debt

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Installer shouldn't perpetuate deprecated /customized folder

4 participants