Skip to content

Some issue with time delay implementation in prisoner's dilemma #8

Open

Description

@fractastical

Reported by AA. Not sure of details.

Activity

  1. fractastical commented on Mar 11, 2026

    @fractastical
    CollaboratorAuthor

    Might be fixed by this commit: 1a2dc93

  2. fractastical commented on Mar 11, 2026

    @fractastical
    CollaboratorAuthor

    @scout-mastick do you know if there is a canonical description somewhere of how this is supposed to be implemented?

  3. scout-mastick commented on Mar 13, 2026

    @scout-mastick

    @fractastical Hey! Sorry for the delay. Unfortunately I'm not aware of any description for this implementation

  4. fractastical commented on Apr 2, 2026

    @fractastical
    CollaboratorAuthor

    @Thayaa21 do you know of any canonical description for this one?

  5. Thayaa21 commented on Apr 4, 2026

    @Thayaa21
    Contributor

    @fractastical I don't know about it.

  6. fractastical commented on Jun 17, 2026

    @fractastical
    CollaboratorAuthor

    Still don't have any clear report of the desired feature so leaving this open.

  7. arvindcr4 commented on Jul 30, 2026

    @arvindcr4

    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.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions