You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Some issue with time delay implementation in prisoner's dilemma #8
Went through the codebase and git history trying to pin down what AA could have hit. Three findings that may close the loop:
1. There is no time-delay implementation to be buggy.git log -S delay across the full history turns up nothing in the arena/game path, and the current runArenaMatch (server/routes.ts) has no delay logic at all — rounds fire back-to-back, with both provider calls per round in a tight Promise.all loop and no pacing between rounds. The only timer anywhere nearby is an unrelated 10s abort on a different endpoint. So if the report was 'the time delay behaves wrong', the answer is: the feature doesn't exist in this codebase.
2. What a user would actually experience as 'some issue' in PD matches: the move parser had order/substring bias — "I will not COOPERATE. DEFECT." scored as COOPERATE, a stag-hunt response mentioning hostage (hoSTAGe) scored as STAG, and unparseable responses were silently scored as defection with no trace. From the outside this looks like 'the game recorded a move the model didn't make', which could plausibly get relayed second-hand as vague misbehavior. Fixed with tests in #34 (parse failures are now recorded per round as parseOk, same pattern as #31).
3. If 'time delay' was a feature request — delayed-information iterated PD is a real variant worth having: opponent's move from round t revealed only at round t+k (k configurable, default 1 = current behavior). Implementation sketch: buffer the feedback messages in a queue per player inside the round loop and flush entries older than k rounds; one integer column on the match config; hidden-length prompts unchanged. Happy to implement behind a feedbackDelayRounds config if that matches what AA wanted.
Suggest: merge/review #34 for the misparse class, and either close this as no-such-feature or retitle it to the delayed-information variant and I'll take it.
Activity
fractastical commentedon Mar 11, 2026
Might be fixed by this commit: 1a2dc93
fractastical commentedon Mar 11, 2026
@scout-mastick do you know if there is a canonical description somewhere of how this is supposed to be implemented?
scout-mastick commentedon Mar 13, 2026
@fractastical Hey! Sorry for the delay. Unfortunately I'm not aware of any description for this implementation
fractastical commentedon Apr 2, 2026
@Thayaa21 do you know of any canonical description for this one?
Thayaa21 commentedon Apr 4, 2026
@fractastical I don't know about it.
fractastical commentedon Jun 17, 2026
Still don't have any clear report of the desired feature so leaving this open.
arvindcr4 commentedon Jul 30, 2026
Went through the codebase and git history trying to pin down what AA could have hit. Three findings that may close the loop:
1. There is no time-delay implementation to be buggy.
git log -S delayacross the full history turns up nothing in the arena/game path, and the currentrunArenaMatch(server/routes.ts) has no delay logic at all — rounds fire back-to-back, with both provider calls per round in a tightPromise.allloop and no pacing between rounds. The only timer anywhere nearby is an unrelated 10s abort on a different endpoint. So if the report was 'the time delay behaves wrong', the answer is: the feature doesn't exist in this codebase.2. What a user would actually experience as 'some issue' in PD matches: the move parser had order/substring bias —
"I will not COOPERATE. DEFECT."scored as COOPERATE, a stag-hunt response mentioning hostage (hoSTAGe) scored as STAG, and unparseable responses were silently scored as defection with no trace. From the outside this looks like 'the game recorded a move the model didn't make', which could plausibly get relayed second-hand as vague misbehavior. Fixed with tests in #34 (parse failures are now recorded per round asparseOk, same pattern as #31).3. If 'time delay' was a feature request — delayed-information iterated PD is a real variant worth having: opponent's move from round t revealed only at round t+k (k configurable, default 1 = current behavior). Implementation sketch: buffer the feedback messages in a queue per player inside the round loop and flush entries older than k rounds; one integer column on the match config; hidden-length prompts unchanged. Happy to implement behind a
feedbackDelayRoundsconfig if that matches what AA wanted.Suggest: merge/review #34 for the misparse class, and either close this as no-such-feature or retitle it to the delayed-information variant and I'll take it.