Skip to content

[Bug]: session metadata can be written to and read from different directories under CI tempdirs #2636

Description

@1688mengdie

Summary

Session creation persisted session metadata through an already-resolved sessions_dir while the load/update path fed the raw workspace root; the two chains re-enter project_sessions_dir through its is_resolved_sessions_dir branch, which depends on dunce::canonicalize and diverges on CI /tmp tempdirs, so metadata was written to a directory the reader never checks.

Fix: feed the raw workspace root to the persistence layer for local workspaces (remote workspaces keep the mirror-resolved path), making project_sessions_dir the single source of truth for both chains.

Area

src/crates/assembly/core/src/agentic/session/session_manager.rs (create chain + metadata workspace path selection). Crate: bitfun-core.

Reproduction or evidence

At 32f2427, the create chain passes session_storage_path to create_session_if_absent (session_manager.rs, create block :2778); is_resolved_sessions_dir branch present (:1113/:1149). Under CI tempdirs the canonicalize-resolved branch diverges from the raw-root branch → persist/read land in different directories → ubuntu CI flaky.

Environment

ubuntu/macos CI runners (tempdir /tmp volatility); baseline 32f2427. The ubuntu flaky face cannot be reproduced locally on a Windows host → verified via remote CI Rust Build Check(ubuntu) + CLI Tests(ubuntu) runs.


AI-assisted change. Testing: verified locally (cargo check exit 0; cargo test --features agent-runtime session_manager::tests 137 passed, 0 failed); ubuntu flaky face covered by remote CI runs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions