Profile reference:
brood/_AGENTS/ARCHIVE/SERVLING_COMPATIBILITY_PROFILE.md
Landed: BackendSessionId newtype in profile_extensions::BackendSessionId.
Re-exported at crate root.
Not yet landed: adding backend_session_id: Option<BackendSessionId> as
a field on ProviderSessionHandle. This would touch every existing backend
that constructs a handle. Deferred to V1.5 to avoid rippling changes through
claude/codex/copilot/cursor wrappers during Phase 2 of the workroach_agent
campaign.
What this unblocks: workroach_agent_servling can carry a
BackendSessionId in its own handle type when it lands in Phase 6 β it
doesn't need to patch every existing backend.
Current ProviderSessionListing has provider_session_ref, working_dir,
title, updated_at. Profile Β§C asks for backend_session_id,
provider_hint, model_hint, resumable. Deferred.
Profile Β§B asks for SessionOpenRequest { New(...) | Resume { backend_session_id } }.
Current start_session / resume_session stay. Deferred.
Landed: SessionError enum in profile_extensions::SessionError with
Profile Β§H's six categories (UnsupportedCapability, InvalidSessionId,
InvalidStateTransition, ProviderTransport, PersistenceFailure,
UserCancelled) + Other catch-all. Re-exported at crate root.
Existing SessionTransportError (string-shaped) remains for backward
compatibility. New code that wants typed categorisation returns SessionError.
The additive Phase 1 + 4 surface is sufficient for
workroach_agent_servling to land in campaign Phase 6 (per
brood/_AGENTS/WORKROACH_AGENT_IMPL_PLAN.md Β§5). Phases 2 + 3 can come
later without blocking Phase 6 integration.
The original plan (WORKROACH_AGENT_IMPL_PLAN.md Β§4 Phase 2 Track 2D)
envisioned Phases 1-4 as non-breaking additive shims landing in servling
during workroach_agent Phase 2. The "additive shim" interpretation chosen
here β add new types alongside existing ones, don't patch existing
structs β preserves that principle while minimizing ripple. Full migration
of ProviderSessionHandle + ProviderSessionListing + unified open is
V1.5 work, best done against real consumer needs (workroach_agent_servling
in production use) rather than speculatively.