forked from HAL9000/cleveragents-core
7e9a45044b
The CLI `session create` command created the session via SessionService.create()
(which commits via auto_commit=True), then called _facade_dispatch("session.create")
for A2A protocol bookkeeping. The facade handler unconditionally called
svc.create() on a second PersistentSessionService instance (a new Factory
resolution from the DI container with its own engine), creating a duplicate
session in the database.
The fix makes A2aLocalFacade._handle_session_create() idempotent: when a
session_id is already present in the params, it acknowledges the existing
session without creating a new one. The CLI dispatch params were also fixed
to use the correct key name (actor_name instead of actor).
Changes:
- src/cleveragents/a2a/facade.py: Early return in _handle_session_create when
session_id is already supplied, preventing duplicate session creation.
- src/cleveragents/cli/commands/session.py: Fixed param key from "actor" to
"actor_name" for consistency with the facade handler.
- features/a2a_facade_wiring.feature: Added idempotency scenario verifying
that session.create with an existing session_id does not call svc.create().
- features/steps/a2a_facade_wiring_steps.py: Added step asserting mock
SessionService.create was not called.
- features/tdd_session_create_persist.feature: Removed @tdd_expected_fail tag
now that the bug is fixed.
- robot/e2e/e2e_session_create_persist.robot: Removed tdd_expected_fail tag,
updated documentation.
- .semgrep.yml: Excluded wrapping.py from no-exec/no-compile-exec rules
(pre-existing sandboxed exec usage for tool transforms).
ISSUES CLOSED: #1141
Co-authored-by: Brent E. Edwards <brent.edwards@cleverthis.com>
Co-committed-by: Brent E. Edwards <brent.edwards@cleverthis.com>
19 lines
900 B
Plaintext
19 lines
900 B
Plaintext
*** Settings ***
|
|
Documentation Bug #1141 — session create does not persist session
|
|
... for subsequent list. Verifies that the session CRUD
|
|
... lifecycle works: create → list → verify.
|
|
Resource common_e2e.resource
|
|
Suite Setup E2E Suite Setup
|
|
Suite Teardown E2E Suite Teardown
|
|
|
|
*** Test Cases ***
|
|
Session Create Then List Shows Session
|
|
[Documentation] Create a session and verify it appears in session list.
|
|
[Tags] E2E tdd_issue tdd_issue_1141
|
|
Run CleverAgents Command init --force --yes
|
|
${r1}= Run CleverAgents Command session list --format json
|
|
Should Contain ${r1.stdout} "total": 0
|
|
Run CleverAgents Command session create --format plain
|
|
${r2}= Run CleverAgents Command session list --format json
|
|
Should Contain ${r2.stdout} "total": 1
|