- Pass --state-path and --cooldown-path per feed so a rate limit on one
feed no longer triggers a global cooldown that blocks all other feeds
- Add --max-posts 5 cap to prevent burst posting (e.g. 22 posts in one
run) that was causing HTTP 429 errors on eurosky.social
- Add 15s sleep between batches to reduce cumulative API pressure
- Increase MAX_PARALLEL_FEEDS from 4 to 6 now that cooldowns are isolated
- Add MAX_POSTS_PER_FEED env var for central control of the post cap
- Fix missing line continuation backslash on --service argument
Fixes: batch 2-7 feeds being skipped due to shared cooldown state
- Changed `post_lang: str` to `post_langs: List[str]` in `run_once`
and `try_send_post_with_variants` to support multiple BCP-47 language
tags passed to Bluesky's `langs=` field.
- Updated `--lang` CLI argument to accept comma-separated language codes
(e.g. `--lang ca,es`), parsed into a list at startup. Defaults to `["ca"]`.
- Added startup log line reporting the configured language(s) per run.
- Corrected the regular expression in the `strip_trailing_url_punctuation` function to properly escape the single quote (') and ensure valid syntax.
- Fixed potential issues caused by unescaped characters in the regex pattern.
- Updated the text truncation logic to avoid using "..." when shortening text.
- Ensured that text is truncated to the maximum allowed length without additional trailing characters.
- Improved handling of text variants to maintain clarity and avoid unnecessary truncation.
- fix SyntaxError caused by global STATE_PATH/COOLDOWN_STATE_PATH usage in main()
- pass state and cooldown paths explicitly to helpers
- add emoji-based logging for login, posting, cooldown, and summary events
- keep shared cooldown behavior across parallel Jenkins workers
- persist post and thumbnail cooldowns to shared JSON state
- check global cooldown before login and before posting
- stop parallel workers from repeatedly hitting createRecord after first 429
- add clear post start/success/failure/global-cooldown logs
- reduce traceback noise for expected rate-limit failures