NotASithLord / NotASithLord/peerd
Async actor result can be lost after parent re-entry fails
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 410
- Forks
- 45
- Avg merge
- 11d 5h
- Merged PRs (30d)
- 1
Description
A finished spawned actor is marked as reintegrated before the parent synthetic turn starts. If parent re-entry rejects, the queue swallows the error. Every later drain skips the result, so it is lost for the rest of that service-worker lifetime.
A simple flag rollback is not sufficient. Re-entry can reject after the synthetic message reaches the transcript. A retry can then append the same actor reply twice.
Required behavior:
- Keep one stable delivery identity for the actor-result batch.
- Claim one delivery attempt at a time.
- Mark delivery complete only after durable transcript acceptance.
- Retry with the same identity after an ambiguous failure.
- Deduplicate the transcript append by that identity.
- Recheck the parent Stop generation before each retry.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating spawned-actor reintegration, the parent synthetic turn, queue draining, transcript acceptance, and Stop-generation checks. Trace how the actor-result batch is marked complete and retried; done means one stable identity is claimed per attempt, durable acceptance completes delivery, ambiguous failures retry without duplicate transcript entries, and Stop generation is rechecked.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100