Skip to content

Fix/josk 640 recovery types - #28

Merged
dr-dimitru merged 8 commits into
masterfrom
fix/josk-640-recovery-types
Sep 26, 2026
Merged

dr-dimitru merged 8 commits into
masterfrom
fix/josk-640-recovery-types

Conversation

@dr-dimitru

Copy link
Copy Markdown
Member
  • Documented claimed-task hold behavior for setInterval and updated JoSk API and troubleshooting references.
  • Added v6.3 to v6.4 migration guide.
  • Added packed-declaration type check using Bun bundler resolution.
  • Excluded .superpowers from Git, npm, and Meteor packages.

- Rewrite README: one CRON helper, re-registration table, shorter examples, fixed anchors
- RedisAdapter throws when a cluster client is passed without useHashTags: true
- Remove duplicate Meteor assets test (covered by test/types/packed.mjs)
…ter scripts by key

- JoSk#shutdown({ timeout }) destroys the instance, waits for running
  handlers to call ready(), then hands unfinished interval claims back to
  storage so peers run them on their next poll instead of after zombieTime
- destroy() hands back tasks claimed but not started (concurrency queue,
  claims that land mid-iterate); releases flush after iterate() returns
- Adapters return claimLeaseId on claimed tasks; update() writes only while
  the stored lease matches, so a handler finishing after zombie recovery
  cannot overwrite the newer run's schedule
- RedisAdapter sends scripts on cluster clients via sendCommand(firstKey),
  working around redis@4 cluster EVAL routing to a random master
  (~4% MOVED failures with 3 masters)
- One isClusterClient() check for setup, ping, and script routing
- Live contract suite runs against Redis Cluster when REDIS_CLUSTER_URLS is
  set; new CI job covers redis@4 and redis@5 on a 3-master cluster
- Docs and skill references for shutdown(), fencing, and adapter contract
@dr-dimitru
dr-dimitru merged commit ebb0748 into master Sep 26, 2026
94 checks passed
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