Skip to content

v0.9.4: response_id derived from {thread_id}:{input.len()} collides for equal-length messages #5153

Description

@Hmbown

Summary: ThreadRequest::Message derives response_id as {thread_id}:{input.len()} (crates/core/src/lib.rs:1278) — any two messages of equal byte length in the same thread collide, overwriting hook correlation records. handle_prompt correctly uses resp-<uuid> (line 1330), so this is an inconsistency, not a deliberate scheme.

Impact: hook consumers/ledgers keyed by response_id (app-server events, fleet ledger) lose or overwrite one response record for every equal-length message pair ("go", "go"; "continue", "continue").

Repro: send Message{input:"hi"} twice; observe identical response_id in both event streams.

Found in a read-only v0.9.4 bug hunt (2026-08-02).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions