test(e2e): workflow example 9 — session-driven interactive exploration (review profile) #790

Closed
freemo wants to merge 1 commit from test/e2e-wf09-session into master
Owner

Summary

E2E test for Specification Workflow Example 9: Session-Driven Interactive Exploration. Exercises the full session lifecycle with the real CleverAgents CLI.

Note: session tell is currently stubbed at the CLI layer (M3 milestone) — the assistant echoes an acknowledgement rather than invoking a real LLM. AC #5 (action creation) therefore always takes the WARN path. Assertions validate the echo response pattern until real LLM integration lands.

Closes #755

Changes

  • robot/e2e/wf09_session.robot — New E2E test that:

    • Creates a temp git repo with a multi-module Python project fixture (auth, routes, models)
    • Registers the repo as a resource and creates a project (with UUID suffix for parallel CI safety)
    • Creates a session with a dynamically selected LLM actor
    • Sends three session tell queries per spec Example 9: codebase overview, auth module deep-dive, and action creation request (the defining differentiator of WF09)
    • Content relevance check — validates the echo response pattern ("Acknowledged") on every session tell call
    • Verifies action creation (AC #5) — soft-checks via action show that the LLM actually created the requested action (logs WARN if LLM didn't create it, since behavior is non-deterministic and session tell is currently stubbed)
    • Verifies accumulated session history (AC #4) — parses session show --format json, asserts message_count >= 6 (3 user + 3 assistant turns) and recent_messages >= 3
    • Exports conversation to JSON via session export with hard assertions on file existence, content validity, JSON structure (session_id, messages keys), session_id value match, individual message structure (role field), and non-empty messages list
    • Uses spec canonical argument order for session export (flag before positional)
    • Traceback/INTERNAL checks on all CLI invocations
    • Test-level timeout ([Timeout] 20 minutes) for CI reliability
    • Diagnostic teardown (WF09 Test Teardown) that logs session state on failure
    • Stale export cleanup — removes previous export file before new export to prevent false passes
    • Uses Skip If No LLM Keys for graceful degradation without API keys
  • .gitignore — Added ca-cow-backup-*/ pattern to prevent copy-on-write sandbox backup artifacts from being committed

  • CHANGELOG.md — Fixed tagging description to accurately reflect Force Tags E2E mechanism

Design Decisions

  • Keyword extraction: Reusable keywords (Create Sample Project Fixture, Create Session With Actor, Verify Session Tell Response, Verify Session History, Verify Session Export) reduce the test case to ~60 lines and improve maintainability
  • Safe Parse Json Field / Extract JSON From Stdout: Uses shared keywords from common_e2e.resource for robust JSON parsing with raw_decode() to handle non-JSON preamble
  • Hard assertions with soft AC #5: All validations use assertive keywords that fail the test on unexpected output. The exception is action creation verification (AC #5), which uses a soft WARN because LLM tool-calling behavior is non-deterministic and session tell is currently stubbed
  • Stubbed session tell documentation: Suite-level and keyword-level documentation explicitly notes that session tell is stubbed (M3) and assertions validate the echo pattern. Comments explain when to update tests for real LLM integration
  • UUID suffix: All resource/project names include a UUID suffix to prevent UNIQUE constraint violations in parallel CI runs
  • Actor selection: Dynamically selects actor based on available API keys (Anthropic preferred for richer conversational output; OpenAI fallback). Comment explains that only Anthropic is checked explicitly — falls through to OpenAI unconditionally since session tell is stubbed and actor choice only affects echo prefix
  • Timeout for action-creation session tell: Uses 300s (vs. default 120s) as forward-compatible for when real LLM integration lands; while session tell remains stubbed the command returns instantly
  • No --project on session create: The CLI's session create does not accept a --project parameter. The project fixture is registered separately so the LLM can discover it via resource/project queries during the conversation.

Quality Gates

Gate Result
nox -e lint Pass
nox -e typecheck Pass
nox -e unit_tests Pass (12831 scenarios, 0 failed)
nox -e integration_tests Pass
nox -e e2e_tests Pass (63 tests, 62 passed, 1 skipped)
nox -e coverage_report Pass (97%)
## Summary E2E test for Specification Workflow Example 9: Session-Driven Interactive Exploration. Exercises the full session lifecycle with the real CleverAgents CLI. **Note:** `session tell` is currently stubbed at the CLI layer (M3 milestone) — the assistant echoes an acknowledgement rather than invoking a real LLM. AC #5 (action creation) therefore always takes the WARN path. Assertions validate the echo response pattern until real LLM integration lands. Closes #755 ## Changes - **`robot/e2e/wf09_session.robot`** — New E2E test that: - Creates a temp git repo with a multi-module Python project fixture (auth, routes, models) - Registers the repo as a resource and creates a project (with UUID suffix for parallel CI safety) - Creates a session with a dynamically selected LLM actor - Sends three `session tell` queries per spec Example 9: codebase overview, auth module deep-dive, and **action creation request** (the defining differentiator of WF09) - **Content relevance check** — validates the echo response pattern ("Acknowledged") on every `session tell` call - **Verifies action creation (AC #5)** — soft-checks via `action show` that the LLM actually created the requested action (logs WARN if LLM didn't create it, since behavior is non-deterministic and session tell is currently stubbed) - **Verifies accumulated session history (AC #4)** — parses `session show --format json`, asserts `message_count >= 6` (3 user + 3 assistant turns) and `recent_messages >= 3` - Exports conversation to JSON via `session export` with **hard assertions** on file existence, content validity, JSON structure (`session_id`, `messages` keys), **session_id value match**, **individual message structure** (role field), and non-empty messages list - Uses spec canonical argument order for `session export` (flag before positional) - **Traceback/INTERNAL checks** on all CLI invocations - **Test-level timeout** (`[Timeout] 20 minutes`) for CI reliability - **Diagnostic teardown** (`WF09 Test Teardown`) that logs session state on failure - **Stale export cleanup** — removes previous export file before new export to prevent false passes - Uses `Skip If No LLM Keys` for graceful degradation without API keys - **`.gitignore`** — Added `ca-cow-backup-*/` pattern to prevent copy-on-write sandbox backup artifacts from being committed - **`CHANGELOG.md`** — Fixed tagging description to accurately reflect `Force Tags E2E` mechanism ## Design Decisions - **Keyword extraction**: Reusable keywords (`Create Sample Project Fixture`, `Create Session With Actor`, `Verify Session Tell Response`, `Verify Session History`, `Verify Session Export`) reduce the test case to ~60 lines and improve maintainability - **`Safe Parse Json Field` / `Extract JSON From Stdout`**: Uses shared keywords from `common_e2e.resource` for robust JSON parsing with `raw_decode()` to handle non-JSON preamble - **Hard assertions with soft AC #5**: All validations use assertive keywords that fail the test on unexpected output. The exception is action creation verification (AC #5), which uses a soft WARN because LLM tool-calling behavior is non-deterministic and session tell is currently stubbed - **Stubbed session tell documentation**: Suite-level and keyword-level documentation explicitly notes that `session tell` is stubbed (M3) and assertions validate the echo pattern. Comments explain when to update tests for real LLM integration - **UUID suffix**: All resource/project names include a UUID suffix to prevent UNIQUE constraint violations in parallel CI runs - **Actor selection**: Dynamically selects actor based on available API keys (Anthropic preferred for richer conversational output; OpenAI fallback). Comment explains that only Anthropic is checked explicitly — falls through to OpenAI unconditionally since session tell is stubbed and actor choice only affects echo prefix - **Timeout for action-creation `session tell`**: Uses 300s (vs. default 120s) as forward-compatible for when real LLM integration lands; while session tell remains stubbed the command returns instantly - **No `--project` on session create**: The CLI's `session create` does not accept a `--project` parameter. The project fixture is registered separately so the LLM can discover it via resource/project queries during the conversation. ## Quality Gates | Gate | Result | |------|--------| | `nox -e lint` | Pass | | `nox -e typecheck` | Pass | | `nox -e unit_tests` | Pass (12831 scenarios, 0 failed) | | `nox -e integration_tests` | Pass | | `nox -e e2e_tests` | Pass (63 tests, 62 passed, 1 skipped) | | `nox -e coverage_report` | Pass (97%) |
test(e2e): workflow example 9 — session-driven interactive exploration (review profile)
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 18s
CI / e2e_tests (pull_request) Failing after 27s
CI / typecheck (pull_request) Successful in 38s
CI / security (pull_request) Successful in 1m7s
CI / coverage (pull_request) Successful in 5m31s
CI / unit_tests (pull_request) Successful in 6m45s
CI / integration_tests (pull_request) Successful in 7m2s
CI / docker (pull_request) Successful in 22s
CI / benchmark-regression (pull_request) Successful in 37m6s
24e88366e7
Add robot/e2e/wf09_session.robot — E2E test for Workflow Example 9
(Session-Driven Interactive Exploration).

The test exercises the full session lifecycle with zero mocking:
- Creates a temp git repo with a sample multi-module Python project
  (src/auth.py, src/routes.py, src/models.py, README.md)
- Registers the repo as a resource and creates a project
- Creates a session via 'session create --actor anthropic/claude-3.5-sonnet'
- Sends multiple conversational queries via 'session tell'
- Verifies accumulated session history via 'session show'
- Exports the conversation to JSON via 'session export'
- Validates the exported JSON structure (schema_version, messages array,
  session_id, message count >= 4)

Tagged [Tags] E2E, uses common_e2e.resource keywords, and skips
gracefully when LLM API keys are absent.

ISSUES CLOSED: #755
freemo added this to the v3.0.0 milestone 2026-03-12 23:05:24 +00:00
freemo force-pushed test/e2e-wf09-session from 24e88366e7
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 18s
CI / e2e_tests (pull_request) Failing after 27s
CI / typecheck (pull_request) Successful in 38s
CI / security (pull_request) Successful in 1m7s
CI / coverage (pull_request) Successful in 5m31s
CI / unit_tests (pull_request) Successful in 6m45s
CI / integration_tests (pull_request) Successful in 7m2s
CI / docker (pull_request) Successful in 22s
CI / benchmark-regression (pull_request) Successful in 37m6s
to 038da9f572
Some checks failed
CI / lint (pull_request) Successful in 13s
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 25s
CI / build (pull_request) Successful in 13s
CI / security (pull_request) Successful in 35s
CI / typecheck (pull_request) Successful in 36s
CI / e2e_tests (pull_request) Successful in 36s
CI / unit_tests (pull_request) Successful in 2m37s
CI / integration_tests (pull_request) Successful in 3m12s
CI / docker (pull_request) Successful in 55s
CI / coverage (pull_request) Successful in 5m3s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-13 16:15:06 +00:00
Compare
freemo force-pushed test/e2e-wf09-session from 038da9f572
Some checks failed
CI / lint (pull_request) Successful in 13s
CI / benchmark-publish (pull_request) Has been skipped
CI / quality (pull_request) Successful in 25s
CI / build (pull_request) Successful in 13s
CI / security (pull_request) Successful in 35s
CI / typecheck (pull_request) Successful in 36s
CI / e2e_tests (pull_request) Successful in 36s
CI / unit_tests (pull_request) Successful in 2m37s
CI / integration_tests (pull_request) Successful in 3m12s
CI / docker (pull_request) Successful in 55s
CI / coverage (pull_request) Successful in 5m3s
CI / benchmark-regression (pull_request) Has been cancelled
to 77682e2c43
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 17s
CI / build (pull_request) Successful in 15s
CI / typecheck (pull_request) Successful in 35s
CI / security (pull_request) Successful in 37s
CI / e2e_tests (pull_request) Successful in 38s
CI / unit_tests (pull_request) Successful in 3m43s
CI / integration_tests (pull_request) Successful in 3m48s
CI / docker (pull_request) Successful in 1m18s
CI / coverage (pull_request) Successful in 5m25s
CI / benchmark-regression (pull_request) Successful in 33m31s
2026-03-13 16:23:59 +00:00
Compare
freemo force-pushed test/e2e-wf09-session from 77682e2c43
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 16s
CI / quality (pull_request) Successful in 17s
CI / build (pull_request) Successful in 15s
CI / typecheck (pull_request) Successful in 35s
CI / security (pull_request) Successful in 37s
CI / e2e_tests (pull_request) Successful in 38s
CI / unit_tests (pull_request) Successful in 3m43s
CI / integration_tests (pull_request) Successful in 3m48s
CI / docker (pull_request) Successful in 1m18s
CI / coverage (pull_request) Successful in 5m25s
CI / benchmark-regression (pull_request) Successful in 33m31s
to 8d8003da4f
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 21s
CI / build (pull_request) Successful in 17s
CI / e2e_tests (pull_request) Failing after 25s
CI / typecheck (pull_request) Successful in 38s
CI / security (pull_request) Successful in 36s
CI / quality (pull_request) Successful in 1m7s
CI / unit_tests (pull_request) Successful in 3m9s
CI / integration_tests (pull_request) Successful in 3m52s
CI / docker (pull_request) Successful in 11s
CI / coverage (pull_request) Successful in 5m18s
CI / benchmark-regression (pull_request) Successful in 35m17s
2026-03-13 23:19:40 +00:00
Compare
Author
Owner

PM Review — Day 34

Status: Mergeable, 0 reviews, M1 (v3.0.0)
Author: @freemo

E2E test for WF09 (session-driven interactive exploration, review profile). Retroactive M1 coverage.

Action Items

Who Action Deadline
@hurui200320 Peer review Day 37
## PM Review — Day 34 **Status**: Mergeable, 0 reviews, M1 (v3.0.0) **Author**: @freemo E2E test for WF09 (session-driven interactive exploration, review profile). Retroactive M1 coverage. ### Action Items | Who | Action | Deadline | |-----|--------|----------| | @hurui200320 | **Peer review** | Day 37 |
freemo modified the milestone from v3.0.0 to v3.6.0 2026-03-16 00:32:10 +00:00
Author
Owner

PM Status — Day 36 (2026-03-16)

Day 34 review assignment deadline check. This PR has 0 reviewer activity after 2 days.

Priority note: M3 PRs take precedence. Reviewers should complete M3 reviews first, then address M4+ PRs in milestone order.

Assigned reviewer: Please acknowledge and provide an ETA for your review, or flag if reassignment is needed.

## PM Status — Day 36 (2026-03-16) Day 34 review assignment deadline check. This PR has 0 reviewer activity after 2 days. **Priority note**: M3 PRs take precedence. Reviewers should complete M3 reviews first, then address M4+ PRs in milestone order. **Assigned reviewer**: Please acknowledge and provide an ETA for your review, or flag if reassignment is needed.
freemo left a comment

PM Day 36: M7 E2E test. Merge conflict. @freemo rebase needed.

PM Day 36: M7 E2E test. Merge conflict. @freemo rebase needed.
Author
Owner

@hurui200320 I am going to have you take over this PR, it is mostly completed but is waiting on #628 and #966 One is yours and one is Brent's. Please be sure to get this PR and the two blocking PRs I listed in asap, thanks.

@hurui200320 I am going to have you take over this PR, it is mostly completed but is waiting on https://git.cleverthis.com/cleveragents/cleveragents-core/issues/628 and https://git.cleverthis.com/cleveragents/cleveragents-core/issues/966 One is yours and one is Brent's. Please be sure to get this PR and the two blocking PRs I listed in asap, thanks.
Author
Owner

PM Status — Day 37 — Rebase Required

This PR has merge conflicts and cannot be merged in its current state. 42% of all open PRs (21 of 50) have conflicts — this is a project-wide issue that must be resolved.

@freemo — Please rebase this PR onto master by Day 39 EOD (2026-03-19). If you cannot rebase by then, please post a comment explaining the blocker.


PM rebase request — Day 37

## PM Status — Day 37 — Rebase Required This PR has **merge conflicts** and cannot be merged in its current state. 42% of all open PRs (21 of 50) have conflicts — this is a project-wide issue that must be resolved. @freemo — Please rebase this PR onto `master` by **Day 39 EOD (2026-03-19)**. If you cannot rebase by then, please post a comment explaining the blocker. --- *PM rebase request — Day 37*
hurui200320 force-pushed test/e2e-wf09-session from 8d8003da4f
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 21s
CI / build (pull_request) Successful in 17s
CI / e2e_tests (pull_request) Failing after 25s
CI / typecheck (pull_request) Successful in 38s
CI / security (pull_request) Successful in 36s
CI / quality (pull_request) Successful in 1m7s
CI / unit_tests (pull_request) Successful in 3m9s
CI / integration_tests (pull_request) Successful in 3m52s
CI / docker (pull_request) Successful in 11s
CI / coverage (pull_request) Successful in 5m18s
CI / benchmark-regression (pull_request) Successful in 35m17s
to 98310576d3
Some checks failed
CI / lint (pull_request) Successful in 28s
CI / typecheck (pull_request) Successful in 45s
CI / quality (pull_request) Successful in 58s
CI / security (pull_request) Successful in 1m19s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / unit_tests (pull_request) Successful in 2m59s
CI / integration_tests (pull_request) Successful in 4m7s
CI / e2e_tests (pull_request) Failing after 5m10s
CI / docker (pull_request) Successful in 56s
CI / coverage (pull_request) Successful in 6m56s
CI / benchmark-regression (pull_request) Successful in 38m20s
2026-03-18 08:46:38 +00:00
Compare
hurui200320 force-pushed test/e2e-wf09-session from 98310576d3
Some checks failed
CI / lint (pull_request) Successful in 28s
CI / typecheck (pull_request) Successful in 45s
CI / quality (pull_request) Successful in 58s
CI / security (pull_request) Successful in 1m19s
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / unit_tests (pull_request) Successful in 2m59s
CI / integration_tests (pull_request) Successful in 4m7s
CI / e2e_tests (pull_request) Failing after 5m10s
CI / docker (pull_request) Successful in 56s
CI / coverage (pull_request) Successful in 6m56s
CI / benchmark-regression (pull_request) Successful in 38m20s
to b4c940bffc
All checks were successful
CI / lint (pull_request) Successful in 25s
CI / typecheck (pull_request) Successful in 50s
CI / quality (pull_request) Successful in 58s
CI / security (pull_request) Successful in 1m4s
CI / build (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 33s
CI / integration_tests (pull_request) Successful in 4m3s
CI / unit_tests (pull_request) Successful in 4m52s
CI / docker (pull_request) Successful in 1m31s
CI / coverage (pull_request) Successful in 11m28s
CI / e2e_tests (pull_request) Successful in 14m56s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 1h0m54s
2026-03-30 08:18:59 +00:00
Compare
hurui200320 force-pushed test/e2e-wf09-session from b4c940bffc
All checks were successful
CI / lint (pull_request) Successful in 25s
CI / typecheck (pull_request) Successful in 50s
CI / quality (pull_request) Successful in 58s
CI / security (pull_request) Successful in 1m4s
CI / build (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 33s
CI / integration_tests (pull_request) Successful in 4m3s
CI / unit_tests (pull_request) Successful in 4m52s
CI / docker (pull_request) Successful in 1m31s
CI / coverage (pull_request) Successful in 11m28s
CI / e2e_tests (pull_request) Successful in 14m56s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 1h0m54s
to 9ae143577f
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 24s
CI / security (pull_request) Successful in 57s
CI / build (pull_request) Successful in 15s
CI / helm (pull_request) Successful in 22s
CI / typecheck (pull_request) Successful in 3m57s
CI / quality (pull_request) Successful in 4m4s
CI / integration_tests (pull_request) Successful in 8m4s
CI / unit_tests (pull_request) Successful in 8m28s
CI / docker (pull_request) Successful in 1m52s
CI / coverage (pull_request) Successful in 12m7s
CI / e2e_tests (pull_request) Successful in 18m18s
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-30 10:28:09 +00:00
Compare
hurui200320 force-pushed test/e2e-wf09-session from 9ae143577f
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 24s
CI / security (pull_request) Successful in 57s
CI / build (pull_request) Successful in 15s
CI / helm (pull_request) Successful in 22s
CI / typecheck (pull_request) Successful in 3m57s
CI / quality (pull_request) Successful in 4m4s
CI / integration_tests (pull_request) Successful in 8m4s
CI / unit_tests (pull_request) Successful in 8m28s
CI / docker (pull_request) Successful in 1m52s
CI / coverage (pull_request) Successful in 12m7s
CI / e2e_tests (pull_request) Successful in 18m18s
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
to c2b18f3689
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 23s
CI / lint (pull_request) Successful in 32s
CI / helm (pull_request) Successful in 42s
CI / typecheck (pull_request) Successful in 4m0s
CI / quality (pull_request) Successful in 4m4s
CI / security (pull_request) Successful in 4m11s
CI / integration_tests (pull_request) Successful in 6m8s
CI / unit_tests (pull_request) Successful in 9m41s
CI / docker (pull_request) Successful in 14s
CI / coverage (pull_request) Successful in 11m55s
CI / e2e_tests (pull_request) Successful in 20m42s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 1h4m59s
2026-03-30 11:38:06 +00:00
Compare
freemo self-assigned this 2026-04-02 06:15:25 +00:00
Author
Owner

🤖 Backlog Groomer (groomer-1): Closing as duplicate of #755.

Issue #755 (test(e2e): workflow example 9 — session-driven interactive exploration) is the canonical version with full labels (MoSCoW/Must have, Priority/Critical, State/In Review, Type/Testing) and milestone v3.6.0. This issue is an exact title duplicate.

🤖 **Backlog Groomer (groomer-1):** Closing as duplicate of #755. Issue #755 (`test(e2e): workflow example 9 — session-driven interactive exploration`) is the canonical version with full labels (`MoSCoW/Must have`, `Priority/Critical`, `State/In Review`, `Type/Testing`) and milestone `v3.6.0`. This issue is an exact title duplicate.
freemo closed this pull request 2026-04-02 17:35:34 +00:00
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 23s
Required
Details
CI / lint (pull_request) Successful in 32s
Required
Details
CI / helm (pull_request) Successful in 42s
CI / typecheck (pull_request) Successful in 4m0s
Required
Details
CI / quality (pull_request) Successful in 4m4s
Required
Details
CI / security (pull_request) Successful in 4m11s
Required
Details
CI / integration_tests (pull_request) Successful in 6m8s
Required
Details
CI / unit_tests (pull_request) Successful in 9m41s
Required
Details
CI / docker (pull_request) Successful in 14s
Required
Details
CI / coverage (pull_request) Successful in 11m55s
Required
Details
CI / e2e_tests (pull_request) Successful in 20m42s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 1h4m59s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core!790
No description provided.