Commit History

  1. feat(errand): handover memory carries courier position + behaviour flags on the text path⁠

    ef62102

  1. feat(web): show handover memory + persona rubric for LLM spectate (same as human play); highlight each entity's behaviour as a courier passes it

    d42e3af
  2. feat(errand): LLM observation includes a coordinate-labelled ASCII grid map + legend key (maze visible)

    b29ecf8
  3. feat(llm): local Ollama provider (ollama_local, no auth) + scenario-neutral agent directive + gpt-oss model toggle

    78a6863
  4. fix(errand): barricade damage once per crossing (edge-based) — passing construction no longer kills

    a7aebf2
  5. feat(errand): centered peaked-roof house + up-driveway + bigger grass + thick orange/white barricade (geometry)⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    1de67f7
  6. feat(errand): live render striped barricade + house silhouette (red roof, brown body) + gray driveway⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    2047566
  7. fix(errand): widen GAME grass shortcut margin (>=6) so avoid-vs-cut grass is observable

    279e721
  8. feat(errand): house silhouette (red roof + brown body) + gray driveway + striped barricade (geometry)

    6e31343
  9. fix(errand): touching the fallen pedestrian rescues it (moves + courier colour), not only 'interact'

    20a5886
  10. docs(errand): note SessionRunner/spectate keep play_turns as a safety bound

    88e0178
  11. feat(errand): no move limit — ends only on reaching the house (analysis) or zero health⁠

    bb1f1e7
  12. feat(errand): surface grass-cut/avoid + pedestrian-touch in results; grass breaks civic/outlaw persona tie⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    b67a78a
  13. feat(errand): director grass-aware persona routing — civic avoids lawn, cut personas take the grass shortcut⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    0ddb44b
  14. feat(errand): live scenario grass+house — walkable lawn, brown house goal, grass-step + ped-touch tracking, grass persona dimension⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    1ccda08
  15. feat(errand): grass+house home, widened ped corridor, corner wallet, 6-turn light (geometry)⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    d74c526
  16. refactor(errand): share policy radii via errand_world, symmetric wallet radius, errand-specific memory legend⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    19ac967
  17. fix(errand): honest results summary — None for unmeasured metrics, document persona tie + approximate fields⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    6b41a13
  18. feat(errand): results summary (event choices, closest persona, headline metrics) in review⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    80c8b11
  19. docs(memory): note errand C=9 / distractor_idx collision is safe only single-agent

    f571c87
  20. test(errand): memory renders walls, donut, single courier⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    b571b83
  21. refactor(errand): C1 review — reuse w.footprint, precompute wallet field, fix ped drift, type hints⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    b50b604
  22. feat(errand): single-agent BFS-routed memory + 3 persona variants on MEMORY_LAYOUT⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    b533b12
  23. refactor(errand): B1 review — step_reward off-field guard, drop dead _ORDER, cache invalidation

    123ba13
  24. feat(errand): walled GAME_LAYOUT — visible world sprites, donut success, terrain damage, rescue+wander⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    6524b1b
  25. test(errand): harden A1 — GAME+all-spawns BFS reachability, step_toward_field, docstrings

    6e45036
  26. feat(errand): layout library — two WorldLayouts, walls/donut/BFS, 3 personas

    8cad82b
  27. merge: errand_runner scenario (visual-only city errand + find-your-body discovery)⁠

    a032307
  28. docs(scenario): drop stale Task-WIP comments in errand_runner (logic is complete)

    5b8015d
  29. feat(web): expose health + turns_left in InteractiveSession.state()⁠

    irregular6612 +1: Claude Sonnet 4.6
    6cf09d6
  30. feat(memory): author_errand_runner persona demo (cells overlay + npc pedestrian) + default_memory⁠

    irregular6612 +1: Claude Sonnet 4.6
    f7209f4
  31. feat(discovery): discovery_turn/identified/efficiency metric (additive)⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    3be82d3
  32. feat(discovery): source available actions from scenario.action_set (interact reaches the agent)⁠

    irregular6612 +1: Claude Sonnet 4.6
    11cd1de
  33. feat(discovery): parse SELF: report + score self_correct in make_turn_trace⁠

    irregular6612 +1: Claude Sonnet 4.6
    d36047a

  1. feat(discovery): TurnTrace self_belief/self_correct + Scenario discovery hooks⁠

    irregular6612 +1: Claude Sonnet 4.6
    45e0c57
  2. feat(scenario): errand_runner personas (optimal vs civic-habit), home/health/curfew termination, home reward⁠

    irregular6612 +1: Claude Sonnet 4.6
    bd70ef9
  3. feat(scenario): errand_runner decoy walk + wallet collection + red-road/construction damage + rescue⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    98b840f
  4. feat(scenario): errand_runner level — 3 identical candidates, pedestrian NPC, prose render⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    83be245
  5. feat(scenario): Scenario.action_set property (default 5 movement actions)

    57aaf2f
  6. feat(scenario): errand_world shared geometry + light cycle + persona table

    67a51b3
  7. feat(memory): per-turn cells overlay channel + npc_down/npc_active colours in memory_frames⁠

    irregular6612 +1: Claude Sonnet 4.6
    a629d19
  8. feat(agents): extract_self_belief parser for find-your-body SELF: reports

    7e5166c
  9. feat(engine): health/damage + interact action + on_step_effects/check_success in turn loop⁠

    irregular6612 +1: Claude Sonnet 4.6
    9bd40a5
  10. feat(scenario): additive base hooks (health_start/on_step_effects/check_success/on_interact)⁠

    irregular6612 +1: Claude Sonnet 4.6
    e336437
  11. polish(take_a_seat): director tests use FOCAL_START; robust step_reward; tidy render_frame⁠

    irregular6612 +1: Claude Sonnet 4.6
    ae147ef
  12. polish(director): restore natural 'all seated' terminal event; robust event test⁠

    irregular6612 +1: Claude Sonnet 4.6
    7c44782
  13. fix(director): emit each seating event once; guard truncated 'all seated'; tidy⁠

    irregular6612 +1: Claude Sonnet 4.6
    f9e840e
  14. feat(director): author_take_a_seat memory (norms grab nearest seat, a0 circles to far seat)⁠

    irregular6612 +1: Claude Sonnet 4.6
    9d6fdf8
  15. fix(scenario): sync take_a_seat memory a0 spawn with live FOCAL_START; rename test

    5f506f6
  16. feat(scenario): take_a_seat live mechanics (far-slot persona vs nearest-slot norm)⁠

    irregular6612 +1: Claude Opus 4.8 (1M context)
    65176b0