Skip to content

Timeline pending epoch reveal blocks automated run continuation #92

Description

@CompleteDotTech

Summary

After an epoch unlock, the API can detect the Timeline screen and expose advance / back, but menu_select with option: advance stops at manual_action_required: true instead of completing the reveal. This leaves agents unable to continue from the main menu without a manual UI click.

Current observed state

From the active game session:

{
  "state_type": "menu",
  "menu_screen": "timeline",
  "options": [
    { "name": "advance", "enabled": true },
    { "name": "back", "enabled": true }
  ]
}

Calling:

{ "action": "menu_select", "option": "advance" }

returns:

{
  "status": "ok",
  "message": "Epoch unlocks are obtained but not revealed; not forcing timeline reveal from automation",
  "pending_epoch_ids": ["IRONCLAD5_EPOCH"],
  "manual_action_required": true,
  "done": true
}

Why this matters

The previous Timeline work correctly avoided an unsafe path that could produce invalid unlock-state errors, but the resulting behavior still blocks long-running agents after unlocks. Agents can recognize that Timeline is active, but cannot progress the required reveal flow through the API.

Desired behavior

The API should provide a safe, explicit way to advance pending Timeline epoch reveals without requiring mouse input. The implementation should avoid the known invalid unlock-state path, but should still let an agent continue once the game is already on the Timeline reveal flow.

Acceptance criteria

  • menu_select timeline continues to report manual_action_required if opening Timeline from the main menu would be unsafe.
  • Once the game is already on the Timeline screen, menu_select advance should safely handle a pending obtained epoch reveal where possible.
  • The response should clearly distinguish retryable animation/busy states, completed reveals, and states that still require manual input.
  • Documentation should describe the safe Timeline reveal behavior and its remaining limits.
  • Add targeted coverage for the Timeline guard logic if practical in this codebase.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions