Register PersistentSessionService in the DI Container so that
'agents session list' (and all other session subcommands) no longer
throw AttributeError due to a missing 'db' provider.
Changes:
- Add _build_session_service() factory and session_service provider to
Container, with targeted table creation for session/session_messages
only (avoids bypassing Alembic for the full schema).
- Add auto_commit parameter to SessionRepository and
SessionMessageRepository; when True each method commits and closes
its own database session, preventing resource leaks in CLI context.
- Rewrite _get_session_service() to resolve via container.session_service()
with module-level caching.
- Add (DatabaseError, AttributeError) error handling with logging to all
seven session subcommands (list, create, show, delete, export, import,
tell).
- Remove @tdd_expected_fail tags from all session test files so they run
as proper regression tests.
ISSUES CLOSED: #554, #570, #680
Add 10 Behave BDD scenarios (@tdd_bug @tdd_bug_554 @tdd_expected_fail)
for the session list DI wiring bug where _get_session_service() calls
container.db() but the Container has no db provider (AttributeError).
Scenarios cover empty list, format validation (JSON/YAML/plain/rich),
init-then-list lifecycle, and post-create list paths.
Implement @tdd_expected_fail infrastructure: Behave after_scenario hook
inverts FAIL→PASS (expected) and PASS→FAIL (unexpected fix), plus Robot
Framework listener (Listener API v3) with identical semantics registered
via --listener in both integration_tests and slow_integration_tests nox
sessions.
Migrate 18 existing TDD scenarios across 5 feature files from legacy
@tdd @bugNNN convention to @tdd_bug @tdd_bug_NNN per CONTRIBUTING.md
§ TDD Bug Test Tags.
Includes Robot Framework integration smoke tests and ASV service-layer
benchmarks.
Refs: #554