Skip to content

reconcile-repos.sh: shim reconciliation destroys custom dispatch jobs #703

@ascerra

Description

@ascerra

What happens

The reconcile script compares enrolled repos' .github/workflows/fullsend.yaml against templates/shim-workflow.yaml by content hash and does a full file replacement when they differ. Custom dispatch jobs added by org admins (e.g., dispatch-gh-classify for auto-classifying new issues) are silently removed.

The current workaround is adding custom jobs to the org's templates/shim-workflow.yaml, but this is fragile — the next admin install overwrites all scaffold files including the template.

What should happen

Custom event-driven dispatch jobs should survive both shim reconciliation and admin install. Two directions:

  1. Separate workflow files: Custom dispatch jobs live in their own workflow files (e.g., .github/workflows/fullsend-classify.yaml) rather than co-located in the shim. The shim stays template-managed; custom workflows are untouched.
  2. Merge-aware reconciliation: The script merges template updates into the existing shim rather than replacing it wholesale, preserving jobs not present in the template.

Option 1 is simpler and aligns with the directory separation work in #632.

Context

During the v0.5.0 upgrade, enrollment PRs (fullsend-ai/experiments#18) removed the dispatch-gh-classify job. The workaround was adding it to the org template (fullsend-ai/.fullsend#11), but this only lasts until the next admin install.

Related

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions