conceptadev / conceptadev/noir
Unhandled duplicate-key exception terminates Orbit after session resume
- Dominant language
- Dart
- Stars
- 3
- Forks
- 0
- Avg merge
- 6h 57m
- Merged PRs (30d)
- 70
Description
Orbit exits with an unhandled exception when a Codex conversation is reopened from local history and a follow-up is submitted.
### Reproduction
1. Start a Codex session in Orbit and complete a prompt.
2. Open session history and reopen that conversation.
3. Submit a follow-up prompt.
Observed with Noir pinned to `b78527895411c69a6528a942bd58882f1a23faf0`, Dart 3.11.0, macOS arm64, and iTerm2.
### Actual
The terminal app exits during a transcript rebuild:
```text
Bad state: Duplicate key ValueKey(entry-acp-v1-local-1) found in Column. Sibling keys must be unique.
#0 MultiChildRenderObjectElement._validateUniqueChildKeys (package:noir/src/framework/element.dart:1123)
#1 MultiChildRenderObjectElement.update (package:noir/src/framework/element.dart:1001)
```
### Expected
The follow-up renders without terminating the terminal app.
Please investigate the duplicate-key failure and error handling. The duplicate may originate in Orbit's transcript IDs after resume; this report does not establish that Noir generates the duplicate key.
Contributor guide
Research direction
Reproduce the session-history resume flow and follow-up submission, then inspect the duplicate-key validation locations in package:noir/src/framework/element.dart at lines 1123 and 1001. Trace whether the repeated transcript ID comes from Orbit or is mishandled during rendering; done means the follow-up renders without terminating the terminal app.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100