fix: capture session ID before image picker to prevent mis-routing
| .. | .. |
|---|
| 522 | 522 | } |
|---|
| 523 | 523 | |
|---|
| 524 | 524 | Future<void> _pickPhoto() async { |
|---|
| 525 | + // Capture session ID now — before any async gaps (dialog, encoding) |
|---|
| 526 | + final targetSessionId = ref.read(activeSessionIdProvider); |
|---|
| 527 | + |
|---|
| 525 | 528 | final picker = ImagePicker(); |
|---|
| 526 | 529 | final images = await picker.pickMultiImage( |
|---|
| 527 | 530 | maxWidth: 1920, |
|---|
| .. | .. |
|---|
| 568 | 571 | 'audioBase64': voiceB64, |
|---|
| 569 | 572 | 'content': '', |
|---|
| 570 | 573 | 'messageId': voiceMsg.id, |
|---|
| 571 | | - 'sessionId': ref.read(activeSessionIdProvider), |
|---|
| 574 | + 'sessionId': targetSessionId, |
|---|
| 572 | 575 | }); |
|---|
| 573 | 576 | } |
|---|
| 574 | 577 | |
|---|
| .. | .. |
|---|
| 582 | 585 | 'imageBase64': encodedImages[i], |
|---|
| 583 | 586 | 'mimeType': 'image/jpeg', |
|---|
| 584 | 587 | 'caption': msgCaption, |
|---|
| 585 | | - 'sessionId': ref.read(activeSessionIdProvider), |
|---|
| 588 | + 'sessionId': targetSessionId, |
|---|
| 586 | 589 | }); |
|---|
| 587 | 590 | } |
|---|
| 588 | 591 | |
|---|