You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* chore: replace deprecated APIs and unmaintained packages
- Replace io/ioutil with io (deprecated since Go 1.16)
- Remove math/rand.Seed (auto-seeded since Go 1.20)
- Use crypto/rand for secure random string generation
- Migrate from streadway/amqp to rabbitmq/amqp091-go (official fork)
- Replace k8s.io/utils/pointer with k8s.io/utils/ptr
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: resource leaks from defer in loops and unclosed connections
- Extract file processing to helper functions so defer executes properly
in file-service and worker packages
- Store and close AMQP connection on server shutdown in control-service
The defer statement inside a loop doesn't close resources until the
function returns, potentially exhausting file descriptors when processing
many files.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: propagate request context instead of using context.Background
Use c.Request().Context() in HTTP handlers to properly propagate
cancellation signals. This ensures that when a client disconnects,
the server stops processing the request instead of continuing to
make etcd calls unnecessarily.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* refactor: use sync.Map for worker reply channels
Replace manual mutex + map pattern with sync.Map for storing worker
reply channels. sync.Map is optimized for the concurrent access pattern
used here: many reads with relatively few writes.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: rename WorkerExectionOptions to WorkerExecutionOptions
Fix typo in exported struct name (missing 'u' in Execution).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: typos in log/error messages
- "could n ot" -> "could not"
- "recursivelyt" -> "recursively"
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: handle missing reply channel gracefully in Subscribe
Add defensive check to avoid panic if reply channel is not found
in sync.Map (shouldn't happen in normal flow, but prevents crash).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ci: add debug step on failure and timeout for health check
- Add 2 minute timeout to wait-on health check
- Add debug step that runs on failure to collect:
- Pod status
- Control service logs
- Pod descriptions
- RabbitMQ and etcd logs
- Service status
- Direct health endpoint check from within cluster
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ci: reduce timeout for kubectl wait on worker pods
- Decrease timeout from 10 minutes to 3 minutes for waiting on worker pods to be ready in CI workflow.
* ci: fix debug step label selectors and add previous logs
- Use deploy/control instead of label selectors
- Add --previous flag to get logs from crashed container
- Fix label selector to io.kompose.service
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: amqp heartbeat parameter format for rabbitmq/amqp091-go
The new library expects heartbeat as integer seconds (heartbeat=5),
not duration string (heartbeat=5s).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ci: add file service logs to debug step
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* refactor: use slices.Contains for MIME type validation
Replace verbose chain of != comparisons with slices.Contains
for cleaner, more maintainable code.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* refactor: use slices.Contains in more places
- workertypes.IsValid(): replace manual loop with slices.Contains
- worker-java transformOutput(): simplify forbidden line filtering
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
0 commit comments