Skip to content

[Bug] --loop still defaults to bridge=false, auto-rejects pending solidify, and may self-restart immediately #306

@danni357jkl

Description

@danni357jkl

Summary

When running Evolver in --loop mode inside OpenClaw, the current upstream default behavior still lands in bridge=false, which causes pending solidify runs to be auto-rejected instead of being closed through a useful bridge/solidify path. In addition, the process can self-restart almost immediately due to RSS crossing the built-in threshold.

This creates a bad operational state:

  • loop is running
  • pending work is auto-rejected
  • little or no durable solidify output is produced
  • process may self-restart very early (cycles=1, rssMb=661 observed)

Environment

  • Repo: EvoMap/evolver
  • Evolver: local clone from current main as of 2026-03-27
  • OpenClaw host runtime present
  • Node.js: v22.22.0
  • OS: Linux x64
  • Hub configured: A2A_HUB_URL=https://evomap.ai
  • Node ID configured: node_a95f1b0da71cebf5
  • Strategy: EVOLVE_STRATEGY=innovate

What we verified locally

1) --loop still defaults to bridge=false in source

Current index.js contains:

process.env.EVOLVE_LOOP = 'true';
if (!process.env.EVOLVE_BRIDGE) {
  process.env.EVOLVE_BRIDGE = 'false';
}
console.log(`Loop mode enabled (internal daemon, bridge=${process.env.EVOLVE_BRIDGE}, verbose=${isVerbose}).`);

This means the effective runtime default for node index.js --loop is still bridge=false unless explicitly overridden.

2) Local maintenance script had also forced EVOLVE_BRIDGE=false

We removed that local extra forcing to restore closer-to-upstream behavior, then restarted with the plain official-style loop command. The runtime still came up as bridge=false because of upstream index.js.

3) Runtime behavior observed after clean restart

Observed environment in the live loop process:

  • A2A_HUB_URL=https://evomap.ai
  • A2A_NODE_ID=node_a95f1b0da71cebf5
  • EVOLVE_STRATEGY=innovate
  • EVOLVE_BRIDGE=false

Observed logs after restart:

Loop mode enabled (internal daemon, bridge=false, verbose=false).
[SOLIDIFY REQUIRED] After applying the patch and validations, run: node index.js solidify
[Loop] Auto-rejected pending run because bridge is disabled in loop mode (state only, no rollback).
[Daemon] Restarting self (cycles=1, rssMb=661)

Why this is problematic

Operationally this leaves loop mode in a weak state:

  1. --loop is the documented long-running mode.
  2. Its actual default behavior disables bridge.
  3. Disabled bridge causes pending solidify work to be auto-rejected.
  4. The process may also self-restart very early because RSS already exceeds EVOLVER_MAX_RSS_MB default.

So even when loop is “healthy” from a process perspective, it may produce very limited durable output.

Expected behavior

One of these should be made true/documented clearly:

Option A — bridge=false is intentionally the correct loop default

If this is the intended design, then:

  • docs should clearly explain that --loop is observation/draft mode by default
  • docs should explain when solidify is expected to happen
  • docs should explain why auto-reject is preferable to a queued/manual bridge path

Option B — loop should support a practical durable-output path by default

If --loop is meant to be useful in steady-state automation, then current default behavior is too weak:

  • either bridge behavior should be reliable enough to enable by default in supported host environments
  • or another built-in loop-safe solidify workflow should exist that does not just auto-reject pending work

Related context

A prior issue already reported bridge-mode problems:

That issue makes it understandable why users/workarounds end up forcing EVOLVE_BRIDGE=false, but the current result is still an awkward half-functional loop mode.

Request

Please clarify and/or fix:

  1. Is bridge=false in --loop mode still the intended upstream default?
  2. If yes, what is the recommended path for achieving durable solidify output in unattended loop operation?
  3. Is the immediate self-restart after cycles=1, rssMb=661 expected, or should memory thresholds / startup behavior be adjusted?
  4. Should README be updated so documented behavior matches actual runtime defaults more explicitly?

Reproduction steps

cd evolver
A2A_HUB_URL=https://evomap.ai \
A2A_NODE_ID=node_a95f1b0da71cebf5 \
EVOLVE_STRATEGY=innovate \
node index.js --loop

Then inspect:

  • startup log line for bridge mode
  • pending solidify behavior
  • early self-restart behavior

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions