Skip to content

[openworlds] Map Chronicles launcher to campaign catalog and native start/resume #114

Description

@100yenadmin

Summary

Map the OpenWorlds Chronicles screen into the real ClawDnD app home. Chronicles is
the campaign browser, start/resume surface, live/stale run monitor, and first
screen for non-technical play.

Current State

  • /openworlds/campaigns.json provides a read-only campaign catalog.
  • screen-launcher.jsx renders campaign rows and a selected campaign preview.
  • Resume currently navigates with local browser behavior and still needs the native
    bridge for process-aware start/resume.

Target Architecture

  • OpenWorlds renders campaign cards from /openworlds/campaigns.json.
  • Swift bridge handles process-aware start/resume.
  • QA/story runs are visible read-only unless launched by this app.
  • Starting a game runs through existing provider/player flow.
  • No browser code writes campaign snapshots or state files directly.

Required Fields

Campaign cards should show:

  • title
  • world/system
  • day/time
  • location/region
  • party count/names where known
  • provider/run metadata where known
  • live/stale/current status
  • last update

Acceptance Criteria

  • Chronicles is the default app home.
  • User can answer what is running and what is stale from this screen.
  • User can resume/open a campaign without Safari.
  • Start/resume controls fail closed when native bridge or provider setup is missing.
  • All unavailable prototype actions are marked Display-only or Unavailable.

Validation

python3 -m unittest viewer.tests.test_openworlds_static -q
python3 -m py_compile viewer/server.py
swift build --package-path macos/ClawDnDApp
./script/build_and_run.sh --verify
git diff --check

Original-Agent Handoff

Inspect first:

  • viewer/openworlds/screen-launcher.jsx
  • viewer/openworlds/app.jsx
  • viewer/server.py
  • macos/ClawDnDApp/Sources/ClawDnDApp/Services/AppProcessService.swift
  • macos/ClawDnDApp/Sources/ClawDnDApp/Services/ProviderAdapters.swift

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesttier-1Tier 1: Claude Code plugin

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions