Skip to content

Walked world renders empty of its cast: rest-surface tokens exclude NPCs + spawned monsters (first A-G weakest-link finding) #1639

Description

@100yenadmin

Found by the FIRST live walked adventure eval (adventure_walk on the rebuilt sandbox player, adventure_demo_v1 fixture, 2026-07-22).

Instrument read (confirmed by eyeball): the walked arc is navigation-GREEN — 6/6 stages arrived, every door hop works, 0 stuck, 1 dead click, 68.6s — but BOTH actor stages are RED with actor_missing: Keeper Maera is not visible in tavern_snug and the Goblin Boss is not visible in throne_hall. Frames confirm: rooms render beautifully (snug c3 plate, throne), the party member is present and properly posed (the #1616 T-pose fix works), but the cast is absent.

Localization: GET /combat-surface on the sandbox emits ONLY the party token (Aidan | kind: player). The fixture's NPCs (create_character(kind=npc): Maera, Oswin) and spawned monsters (3 goblins in crypt, Goblin Boss in throne_hall) exist engine-side but are never emitted on the rest/walk surface — monsters surface only in combat. The client renders tokens generically, so this is an ENGINE surface-projection gap, not a renderer gap.

Why it matters: the Diablo-1 loop's key beats (meet the giver, face the boss) are invisible in the GUI. The A2 flywheel's first weakest-link verdict routes HERE: cast presence in the walked world.

Suggested lever (additive): include non-party actors located in the current location in the rest surface's stage.tokens (kind=npc characters + live spawned monsters), with sensible cell placement (their seeded stage_cell/location). The walked eval's approach_actor + VQA stages then have something to approach — and re-running qa/adventure_walk.py is the acceptance gate.

Evidence: /Volumes/LEXAR/Codex/session-notes/2026-07-22/adventure-eval/artifacts/walk1/ (adventure_walk_report.json + 6 stage frames; RED verdict, stage table inside). Engine token dump: party-only.

Part of the A-series (§4d); found within the first hour of the eval loop existing — the loop works.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions