Skip to content

Releases: EvoMap/feishu-evolver-wrapper

v1.10.0

06 May 00:31

Choose a tag to compare

What's new

True heartbeat polling for inner Evolver core (Issue #19)

The previous wrapper logged a 5-minute pure-console "heartbeat" while a child Evolver core was running. That heartbeat only kept wrapper_out.log mtime fresh, which silently tricked the outer 240-minute lifecycle watchdog into never firing on truly stuck children. One reporter observed a child process stuck at cycle #5372 for 22 days, with the wrapper reporting "running" the whole time.

This release replaces that with a real polling loop:

  • Every EVOLVE_INNER_PROGRESS_POLL_MS (default 60000) the wrapper reads the inner core's memory/evolution/cycle_progress.json heartbeat (written by Evolver v1.79.0+).
  • If progress.updated_at goes stale beyond EVOLVE_INNER_STUCK_TIMEOUT_SEC (default 1800 = 30 minutes), the wrapper SIGKILLs the child, appends an inner_stuck_killed failure lesson, and pushes a CRITICAL Feishu card (once per stuck cycle, no spam).
  • Backward-compatible: when the progress file is missing or invalid (older Core builds, fresh boot), the wrapper falls back to the previous plain heartbeat log instead of killing the child. So old Cores (<= 1.78.10) continue to run unchanged.

Upgrade

Pair this with Evolver >= 1.79.0 to get the full benefit. The new heartbeat polling stays compatible with older Cores by falling back automatically.

New env vars

  • EVOLVE_INNER_STUCK_TIMEOUT_SEC (default 1800)
  • EVOLVE_INNER_PROGRESS_POLL_MS (default 60000)

Tests

tests/innerStuckDetection.test.js: 18 cases covering the stuck-detect decision, source-level guards (env var defaults, SIGKILL path, double-kill prevention, compat fallback), and the 22-day stuck-cycle reproduction case.

Run with npm test.

Closes EvoMap/evolver-private-dev#19.

v1.9.1

13 Apr 17:23

Choose a tag to compare

Release created by publish script.

v1.8.0

11 Apr 08:13

Choose a tag to compare

Release created by publish script.

v1.7.0

11 Apr 02:09

Choose a tag to compare

Release created by publish script.