perf: replace Go Loops sync with Bash - #5928
Conversation
|
There was a problem hiding this comment.
All reported issues were addressed across 15 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
470e8ff to
ecaf39d
Compare
There was a problem hiding this comment.
All reported issues were addressed across 3 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
ecaf39d to
8b5d489
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
All reported issues were addressed across 12 files (changes from recent commits).
Requires human review: Auto-approval blocked because this review re-detected 1 unresolved issue already reported by Cubic.
Tip: Review your code locally with the cubic CLI to iterate faster.
Fix all with cubic | Re-trigger cubic
8b5d489 to
ac0dd52
Compare
Summary
Replace the Go Loops HTTP client and reconciler with a versioned Bash script that synchronizes the transactional email manifest directly through the Loops Content API using
curlandjq. Keep the Go manifest validator for source-level contract tests and a small compatibility launcher for release automation that still invokesgo run.Motivation
The release path was compiling the server email dependency graph for an operation that ultimately consists of Loops API calls. The network reconciler does not need to be part of the Go codebase or rebuilt on each promotion.
Impact
The Bash script supports read-only ID resolution and full draft/update/Guardian/publish reconciliation while preserving mutation spacing, guarded retries, managed-name checks, and atomic ID output. The local email-ID setup task uses the script directly. Existing release automation remains compatible through a standard-library-only Go launcher, whose fresh-cache build completes in approximately three seconds.
Technical details
Manifest parsing and LMX validation remain in the
email/loopsGo package for CI contract tests; the deleted Go code is limited to HTTP transport and reconciliation. The compatibility launcher replaces itself with Bash so signals and exit codes propagate directly, and it can locate the script from the repository, server directory, or an explicit manifest path.