Repository navigation
Dendra 0.10.0
-
createServerCallerindendra/nextbuilds request context from Next.js
headers and reuses it within a server render. -
inspectRouter, named middleware and typed.meta()make router policy
assertions possible without reading procedure internals. -
Per-attempt
timeoutMsdeadlines and persistedonInterrupt: "fail"prevent
automatic replay of interrupted work. Late results cannot overwrite terminal
failures; handlers that ignore cancellation keep their local concurrency slot. -
jobs.stop({ graceMs, timeoutMs })provides bounded shutdown and reports
unfinished work or settlement errors. No-argumentstop()retains its
Promise<void>signature and immediate cancellation, with a 30-second bound. -
job.schedule(id, input, calendar)andjobs.unschedule(id)support durable
daily/weekly UTC schedules. Atomic occurrence insertion and cursor advancement
prevent duplicate occurrences across workers. Missed runs coalesce into one
catch-up, not an unbounded backlog. -
Both built-in stores support the new policies. Custom stores explicitly
advertise capabilities; unsupported features fail clearly.
Upgrading: run the new Postgres store.schema as owner before deploying
workers. It adds columns to existing job tables, a schedules table and its
revision sequence; grant the runtime role DML and sequence USAGE. Stop 0.9
workers before enabling new policies, or use distinct queues during transition.
Choose retries: 0, onInterrupt: "fail" for paid work that must not replay.
Cancellation is cooperative and cannot undo external side effects.
Daily/weekly schedules are UTC only; arbitrary cron expressions and timezones
are outside this release. Existing retry defaults remain unchanged.