Skip to content

[Bug]: Replay labels conditionally skipped pipeline steps as FAIL(None) #1503

Description

@safe-openclaw

OpenSquilla version or commit

Commit 04e75e1a219a0d886746b9546c589ef4f17d5b13

Area

CLI

Reproduction steps

  1. Run any normal main/webchat turn that is not a subagent session and has no channel-specific rendering hint.
  2. Obtain its session key and turn ID.
  3. Run: opensquilla replay --session --turn

Expected behavior

Replay should distinguish at least three states:

  • OK or APPLIED when the step ran and applied a change;
  • SKIPPED / NOT_APPLICABLE when applied=false and no fallback reason exists;
  • FAIL(<reason>) only when the step raised and a failure reason exists.

Actual behavior

The transcript includes:

- inject_subagent_grounding [FAIL(None)] tier=None source=none confidence=None
- inject_platform_hint [FAIL(None)] tier=None source=none confidence=None

These are expected gated no-ops for this turn, not exceptions.

The implementation documents the distinction in src/opensquilla/engine/pipeline.py:

  • an exception records applied=False with fallback_reason=str(exc);
  • a skipped-by-gate path records applied=False with fallback_reason=None.

However, src/opensquilla/observability/replay.py currently formats all false values with logic equivalent to:

status = "OK" if step.applied else f"FAIL({step.fallback_reason})"

### Environment

Windows 11 64-bit

### Diagnostic bundle and error reference

_No response_

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghas-linked-prAn open pull request is linked to this issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions