Skip to content

fix(sync): skip install-only visual components in sync runtime#1276

Closed
aparragithub wants to merge 1 commit into
Gentleman-Programming:mainfrom
aparragithub:fix/sync-install-only-components
Closed

fix(sync): skip install-only visual components in sync runtime#1276
aparragithub wants to merge 1 commit into
Gentleman-Programming:mainfrom
aparragithub:fix/sync-install-only-components

Conversation

@aparragithub

@aparragithub aparragithub commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closes #1275

PR Type

  • Bug fix (type:bug)

Summary

  • gentle-ai sync aborted with component "claude-theme" is not supported in sync runtime for every full-gentleman install: the installer persists claude-theme and opencode-gentle-logo in state.json, sync builds a componentSyncStep per persisted component, and the switch never handled them, so they hit the default error branch and killed the whole pipeline.
  • Adds a no-op case for both install-only visual components — they have nothing to re-apply on sync.
  • Adds a regression test that reproduces the exact production error before the fix.

Changes

File Change
internal/cli/sync.go No-op case for ComponentClaudeTheme and ComponentOpenCodeGentleLogo before the default error branch
internal/cli/sync_test.go TestComponentSyncStepSkipsInstallOnlyComponents: Run() returns nil and reports no changed files for both components

Test Plan

  • TDD: test written first and reproduced the exact error (component "claude-theme" is not supported in sync runtime), green after the fix
  • go test ./internal/cli/ passes
  • End-to-end: patched binary ran a real gentle-ai sync on a machine with the full-gentleman selection persisted — pipeline completed across all 5 configured agents (previously aborted)
  • Native bounded review: lineage review-d3944a9b347bff3b, risk medium, review-reliability lens, 0 findings, receipt approved; pre-commit/pre-push/pre-pr gates allow

Contributor Checklist

Summary by CodeRabbit

  • Bug Fixes
    • Synchronization now safely skips install-only visual components instead of reporting them as unsupported or out of sync.
    • Unknown components continue to be handled with an error.

The installer persists claude-theme and opencode-gentle-logo in
state.json, so sync builds a componentSyncStep for them, but the sync
switch never handled them: they fell into the default branch and
aborted the whole pipeline with 'component "claude-theme" is not
supported in sync runtime' for every full-gentleman install.

Skip them as no-ops — they are install-only and have nothing to
re-apply on sync.

Fixes Gentleman-Programming#1275
@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5083e627-d867-4dba-96f2-dd74849cd118

📥 Commits

Reviewing files that changed from the base of the PR and between e6b00c9 and 3b71f8d.

📒 Files selected for processing (2)
  • internal/cli/sync.go
  • internal/cli/sync_test.go

📝 Walkthrough

Walkthrough

The sync dispatcher now skips claude-theme and opencode-gentle-logo as install-only components. A regression test verifies both return success without changed files.

Changes

Install-only component sync handling

Layer / File(s) Summary
Skip install-only components and validate no-op behavior
internal/cli/sync.go, internal/cli/sync_test.go
The sync step ignores the Claude theme and OpenCode gentle logo, while preserving errors for unknown components; tests verify successful no-op results with no changed files.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested labels: type:bug

Suggested reviewers: alan-thegentleman

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the sync change and is concise.
Linked Issues check ✅ Passed The PR implements the requested no-op handling for claude-theme and opencode-gentle-logo and adds a regression test.
Out of Scope Changes check ✅ Passed The changes stay focused on skipping install-only visual components in sync and do not introduce unrelated scope.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Alan-TheGentleman

Copy link
Copy Markdown
Contributor

Thank you, @aparragithub. Your report, diagnosis, and implementation in this PR identified the missing sync runtime coverage.

We merged #1321 with the broader managed-refresh behavior instead of a no-op. The delivery commit preserves you as its Git author so your contribution remains visible in the repository history and contributor graph.

Closing this PR as superseded by #1321.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(sync): sync pipeline aborts on install-only components claude-theme/opencode-gentle-logo

2 participants