Skip to content

fix(session): make InMemorySessionStore.messageID increment atomic #3592

Closed

Description

@aheritier

Summary

pkg/session/store.go:137 is a plain int64 incremented at :284 with no atomic/mutex, while the store is hit concurrently (HTTP handlers + runtime PersistenceObserver). Lost increments → duplicate message IDs → UpdateMessage (searches by ID, store.go:290-314) can edit the wrong message.

Fix

Use atomic.Int64 (or a mutex) for the counter.

Acceptance

  • Concurrent AddMessage test asserts unique IDs; -race clean.

Activity

  1. self-assigned this
    on Jul 11, 2026
  2. added
    area/sessionsFor features/issues/fixes related to session lifecycle (resume, persistence, export)
    kind/fixPR fixes a bug (maps to fix:). Use on PRs only.
    on Jul 11, 2026
  3. added theissue type on Jul 11, 2026
  4. added
    area/securityAuthentication, authorization, secrets, vulnerabilities
    area/runtimeRuntime engine, agent loop execution, tool dispatch, loop detection
    on Jul 11, 2026
  5. added a commit that references this issue on Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area/runtimeRuntime engine, agent loop execution, tool dispatch, loop detectionarea/securityAuthentication, authorization, secrets, vulnerabilitiesarea/sessionsFor features/issues/fixes related to session lifecycle (resume, persistence, export)kind/fixPR fixes a bug (maps to fix:). Use on PRs only.

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions