Skip to content

Remove agent config directory syncing from both backends#187

Merged
bbrowning merged 7 commits into
mainfrom
remove-agent-config-sync
Apr 3, 2026
Merged

Remove agent config directory syncing from both backends#187
bbrowning merged 7 commits into
mainfrom
remove-agent-config-sync

Conversation

@bbrowning
Copy link
Copy Markdown
Owner

Eliminates automatic syncing of agent config directories
(~/.claude/, ~/.cursor/, etc.) into containers at session start.
Users who need config persistence must now use PVC volumes.

This simplifies the codebase by removing complex rsync/copy logic,
plugin path rewriting, and associated test coverage. It also
addresses GitOps migration blockers by eliminating post-apply
imperative steps that cannot be represented declaratively.

Changes:

  • Remove config_excludes and config_sync_files_only from AgentConfig
  • Remove _sync_agent_config, _copy_dir, and _rewrite_plugin_paths
    from BaseConfigSyncer and both backend implementations
  • Remove copy_agent_config function from entrypoint scripts
  • Update KNOWN_ISSUES.md to reflect simplified sync requirements
  • Remove ~1100 lines of test code covering removed functionality
  • Update docs/OPENSHIFT.md to document config persistence via PVC

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

bbrowning and others added 7 commits April 3, 2026 13:24
Eliminates automatic syncing of agent config directories
(~/.claude/, ~/.cursor/, etc.) into containers at session start.
Users who need config persistence must now use PVC volumes.

This simplifies the codebase by removing complex rsync/copy logic,
plugin path rewriting, and associated test coverage. It also
addresses GitOps migration blockers by eliminating post-apply
imperative steps that cannot be represented declaratively.

Changes:
- Remove config_excludes and config_sync_files_only from AgentConfig
- Remove _sync_agent_config, _copy_dir, and _rewrite_plugin_paths
  from BaseConfigSyncer and both backend implementations
- Remove copy_agent_config function from entrypoint scripts
- Update KNOWN_ISSUES.md to reflect simplified sync requirements
- Remove ~1100 lines of test code covering removed functionality
- Update docs/OPENSHIFT.md to document config persistence via PVC

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Package session config (stub GCP ADC, gitconfig user.name/email,
sandbox config script, .ready marker) into a ConfigMap mounted at
/credentials. StatefulSet now runs entrypoint-session.sh directly
with PAUDE_HEADLESS=1 instead of sleep infinity + oc exec. This
eliminates all oc cp/oc exec orchestration from paude create and
removes config syncing from paude connect.

Drops cursor auth and global gitignore syncing entirely.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The config sync removal in bc01c7d deleted PAUDE_AGENT_SEED_DIR from
shared.py but left the integration test asserting it exists, causing
CI failure. Also removes ~230 lines of unit tests that tested seed
copy logic no longer present in the entrypoint scripts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The ConfigMap conditionally included the gitconfig key only when the
host had git user config, but the StatefulSet volume mount always
referenced it, causing a FailedMount error in environments like CI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The upgrade integration test was failing because the pod would time
out waiting to become Ready. The entrypoint tried to install the
"gemini" agent from the internet, but the pod's egress was
restricted by NetworkPolicy. Adding PAUDE_SKIP_AGENT_INSTALL=1
prevents the installation attempt and allows the test to proceed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When using ConfigMap-based sessions, the container would crash loop
because entrypoint-session.sh exits after completing setup in headless
mode, causing the container to terminate. This breaks the Kubernetes
integration tests.

Wrap the entrypoint command with bash to run sleep infinity after the
entrypoint completes, keeping the container alive for the agent to
connect.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The PR removed _syncer_instance from OpenShiftBackend as part of
config sync removal, but the upgrade integration test still tried
to mock it, causing an AttributeError. This commit removes the
stale mock and the now-unused MagicMock import.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@bbrowning bbrowning merged commit 5a0b430 into main Apr 3, 2026
6 checks passed
@bbrowning bbrowning deleted the remove-agent-config-sync branch April 3, 2026 19:15
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.

1 participant