Skip to content

fix(observability): preserve skipped and failed replay states - #1562

Merged
Open-Squilla merged 3 commits into
TokenRhythm:mainfrom
GuddXzy:fix/replay-skipped-status
Sep 17, 2026
Merged

Open-Squilla merged 3 commits into
TokenRhythm:mainfrom
GuddXzy:fix/replay-skipped-status

Conversation

@GuddXzy

@GuddXzy GuddXzy commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

Scope

Scope boundary: Make read-only replay transcripts distinguish successful, conditionally skipped, and failed pipeline steps after decision logs have been written and loaded. Persist a small outcome field before privacy filtering removes exception text, using additive decision-log schema version 17. Historical logs without enough information to distinguish a failure from a skip display UNKNOWN.

Non-goals: Change pipeline execution, expose exception text in persisted logs, or add a WebUI surface.

Branch

Base branch: main

Target exception: N/A

Issue

Linked issue: Fixes #1503

If None, reason: N/A

Release Note

Release note: Replay now displays SKIPPED for conditionally skipped pipeline steps and preserves FAIL for exceptions even when their text is removed from logs. Historical ambiguous records display UNKNOWN.

Tests

Ruff: ruff check src tests — passed.

Type checking: mypy src/opensquilla --show-error-codes — passed for 1,605 source files.

Pytest (Python 3.12, explicit local source path):

  • Targeted replay, decision-log contract, and privacy preflight — 35 passed.
  • python -m pytest -vv --tb=short tests/test_observability — 258 passed.

Regression tests: added. Coverage includes a real pipeline with a gated production step, successful and failing steps, empty exception text, private primary/debug JSONL persistence, hydration, and the replay CLI. Historical records with missing, null, empty, explicit, and unknown status values are covered.

The default tests remain offline, deterministic, credential-free, and safe for forks. The local full repository suite was not run; repository CI provides the required acceptance checks. No WebUI or packaging source changes are included.

Maintainer Live Check

Maintainer live check: no

Surface: N/A

Maintainer-only note: No credentialed provider call is needed for decision-log persistence and read-only replay validation.

Safety

Exception text remains filtered from primary and debug logs. The outcome uses an existing safe metadata field; privacy rules are unchanged. Historical ambiguous records are not inferred to be successful or skipped. The added dataclass field has a default and older readers ignore it. The change is platform-neutral and does not change filesystem, subprocess, or platform-specific behavior.

No secrets, local-only artifacts, private prompts/transcripts, channel identifiers, AI session artifacts, non-public fixtures, or tests/_private/ contents are included.

Third-Party Origin

Third-party origin: none

Details if non-none: N/A

Documentation Changes

Updated docs/diagnostics-and-replay.md to explain replay outcomes and historical UNKNOWN records.

  • Links point to existing repository files or stable external pages.
  • Code fences and Markdown tables render correctly on GitHub.
  • Examples avoid real secrets, local private paths, and private transcripts.

@GuddXzy

GuddXzy commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the focused fix and regression tests. I checked the current main branch, and skipped steps are still rendered as FAIL(None), so #1503 remains unresolved.

CI, PR body lint, and PR target branch currently show action_required, with no CI jobs executed. Could a maintainer check whether these workflows need approval and review this PR? The branch is also behind main; please advise whether an update is needed before validation.

@Open-Squilla Open-Squilla changed the title fix(observability): render skipped pipeline steps fix(observability): preserve skipped and failed replay states Sep 16, 2026
@Open-Squilla
Open-Squilla added this pull request to the merge queue Sep 16, 2026
Merged via the queue into TokenRhythm:main with commit f78d482 Sep 17, 2026
43 checks passed
@github-actions

Copy link
Copy Markdown

Merge queue CI: success — run 35167683077, attempt 1.
Tested queue candidate: f78d48286393dae95d5e760641e110e3f20aabaf. This result belongs to that combined tree, not necessarily the PR's current head.

The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has 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.

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

2 participants