townlet / bleed-logs.log
Budlee's picture
Drop Flux 2; 4 starting chars; pin Ada=engineer Bram=diplomat
9524dcd verified
Raw
History Blame Contribute Delete
99 kB
===== Application Startup at 2026-06-13 09:48:53 =====
WARNING: The directory '/home/user/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
[notice] A new release of pip is available: 26.0.1 -> 26.1.2
[notice] To update, run: pip install --upgrade pip
=== Application restarted at 2026-06-13 09:55:05.744353444 UTC ===
=== Application restarted at 2026-06-13 09:55:05.744836475 UTC ===
=== Application restarted at 2026-06-13 09:55:05.801219823 UTC ===
=== Application restarted at 2026-06-13 09:55:05.801888562 UTC ===
=== Application restarted at 2026-06-13 09:55:05.806332288 UTC ===
WARNING: The directory '/home/user/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
WARNING: The directory '/home/user/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
WARNING: The directory '/home/user/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
[notice] A new release of pip is available: 26.0.1 -> 26.1.2
[notice] To update, run: pip install --upgrade pip
[notice] A new release of pip is available: 26.0.1 -> 26.1.2
[notice] To update, run: pip install --upgrade pip
[notice] A new release of pip is available: 26.0.1 -> 26.1.2
[notice] To update, run: pip install --upgrade pip
GRADIO_HOT_RELOAD: Launching demo not found in __main__. Using 'demo'
Exception ignored in: <function BaseEventLoop.__del__ at 0x7f38811d8d60>
Traceback (most recent call last):
File "/usr/local/lib/python3.12/asyncio/base_events.py", line 732, in __del__
self.close()
File "/usr/local/lib/python3.12/asyncio/unix_events.py", line 68, in close
super().close()
File "/usr/local/lib/python3.12/asyncio/selector_events.py", line 104, in close
self._close_self_pipe()
File "/usr/local/lib/python3.12/asyncio/selector_events.py", line 111, in _close_self_pipe
self._remove_reader(self._ssock.fileno())
File "/usr/local/lib/python3.12/asyncio/selector_events.py", line 298, in _remove_reader
key = self._selector.get_key(fd)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/selectors.py", line 190, in get_key
return mapping[fileobj]
~~~~~~~^^^^^^^^^
File "/usr/local/lib/python3.12/selectors.py", line 71, in __getitem__
fd = self._selector._fileobj_lookup(fileobj)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/selectors.py", line 225, in _fileobj_lookup
return _fileobj_to_fd(fileobj)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/selectors.py", line 42, in _fileobj_to_fd
raise ValueError("Invalid file descriptor: {}".format(fd))
ValueError: Invalid file descriptor: -1
[townlet] REQ GET / (html size=64408)
* Running on local URL: http://0.0.0.0:7860, with SSR ⚑ (Node proxy -> Python :7861)
* To create a public link, set `share=True` in `launch()`.
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ list_models
[townlet] RES list_models keys=['roster', 'default'] sizes={'roster': 5, 'default': 11}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 'β€”', 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 'β€”', 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 'β€”', 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 'β€”', 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 'β€”', 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ GET / (html size=64408)
[townlet] REQ tick_decisions
[townlet] T[id=7f38831605f0] tick=25 pending=['Ada', 'Bram', 'Cyra', 'Doro', 'Eli'] chars=[Ada@(8, 9)=idle, Bram@(7, 2)=idle, Cyra@(10, 6)=idle, Doro@(15, 2)=idle, Eli@(5, 6)=idle]
[townlet] drain start: T[id=7f38831605f0] tick=25 pending=['Ada', 'Bram', 'Cyra', 'Doro', 'Eli']
[townlet] REQ world_snapshot
/usr/local/lib/python3.12/site-packages/huggingface_hub/utils/_validators.py:206: UserWarning: The `local_dir_use_symlinks` argument is deprecated and ignored in `hf_hub_download`. Downloading to a local directory does not use symlinks anymore.
warnings.warn(
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ tick_decisions
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ tick_decisions
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ tick_decisions
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
llama_context: n_ctx_seq (16384) < n_ctx_train (1048576) -- the full capacity of the model will not be utilized
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ tick_decisions
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ reset_world
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Ada -> move_to({'target': 'well'})
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Bram -> move_to({'target': 'shell'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Cyra -> (no action queued)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Doro -> move_to({'target': 'cave'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/gradio/queueing.py", line 867, in process_events
response = await route_utils.call_process_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/route_utils.py", line 386, in call_process_api
output = await app.get_blocks().process_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/blocks.py", line 2277, in process_api
result = await self.call_function(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/blocks.py", line 1654, in call_function
prediction = await anyio.to_thread.run_sync( # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/to_thread.py", line 63, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2518, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 1002, in run
result = context.run(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/utils.py", line 1061, in wrapper
response = f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/spaces/zero/wrappers.py", line 190, in gradio_handler
schedule_response = client.schedule(task_id=task_id, request=request, duration=duration_, gpu_size=gpu_size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/spaces/zero/client.py", line 218, in schedule
raise RuntimeError("Connection closed by visitor while queueing")
RuntimeError: Connection closed by visitor while queueing
[townlet] REQ world_snapshot
[townlet] Eli -> move_to({'target': 'cave'})
[townlet] REQ GET / (html size=64408)
[townlet] drain end: ran=5 pending=[]
[townlet] RES tick_decisions keys=['decisions_run'] sizes={'decisions_run': 'β€”'}
[townlet] advance Ada@(8, 9) -> well@(17, 1): path=[(9, 9), (10, 9), (11, 9), (12, 9), (13, 9), (14, 9), (15, 9), (16, 9), (17, 9), (17, 8), (17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (9, 9), done=False
[townlet] advance Bram@(7, 2) -> shell@(16, 10): path=[(8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (8, 2), done=False
[townlet] advance Doro@(15, 2) -> cave@(2, 1): path=[(14, 2), (13, 2), (12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (14, 2), done=False
[townlet] advance Eli@(5, 6) -> cave@(2, 1): path=[(4, 6), (3, 6), (2, 6), (2, 5), (2, 4), (2, 3), (2, 2)] -> step to (4, 6), done=False
[townlet] advance Ada@(9, 9) -> well@(17, 1): path=[(10, 9), (11, 9), (12, 9), (13, 9), (14, 9), (15, 9), (16, 9), (17, 9), (17, 8), (17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (10, 9), done=False
[townlet] advance Bram@(8, 2) -> shell@(16, 10): path=[(9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (9, 2), done=False
[townlet] advance Doro@(14, 2) -> cave@(2, 1): path=[(13, 2), (12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (13, 2), done=False
[townlet] advance Eli@(4, 6) -> cave@(2, 1): path=[(3, 6), (2, 6), (2, 5), (2, 4), (2, 3), (2, 2)] -> step to (3, 6), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 'β€”', 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(10, 9) -> well@(17, 1): path=[(11, 9), (12, 9), (13, 9), (14, 9), (15, 9), (16, 9), (17, 9), (17, 8), (17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (11, 9), done=False
[townlet] advance Bram@(9, 2) -> shell@(16, 10): path=[(10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (10, 2), done=False
[townlet] advance Doro@(13, 2) -> cave@(2, 1): path=[(12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (12, 2), done=False
[townlet] advance Eli@(3, 6) -> cave@(2, 1): path=[(2, 6), (2, 5), (2, 4), (2, 3), (2, 2)] -> step to (2, 6), done=False
[townlet] advance Ada@(11, 9) -> well@(17, 1): path=[(12, 9), (13, 9), (14, 9), (15, 9), (16, 9), (17, 9), (17, 8), (17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (12, 9), done=False
[townlet] advance Bram@(10, 2) -> shell@(16, 10): path=[(11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (11, 2), done=False
[townlet] advance Doro@(12, 2) -> cave@(2, 1): path=[(11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (11, 2), done=False
[townlet] advance Eli@(2, 6) -> cave@(2, 1): path=[(2, 5), (2, 4), (2, 3), (2, 2)] -> step to (2, 5), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 'β€”', 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(12, 9) -> well@(17, 1): path=[(13, 9), (14, 9), (15, 9), (16, 9), (17, 9), (17, 8), (17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (13, 9), done=False
[townlet] advance Bram@(11, 2) -> shell@(16, 10): path=[(12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (12, 2), done=False
[townlet] advance Doro@(11, 2) -> cave@(2, 1): path=[(10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (10, 2), done=False
[townlet] advance Eli@(2, 5) -> cave@(2, 1): path=[(2, 4), (2, 3), (2, 2)] -> step to (2, 4), done=False
[townlet] advance Ada@(13, 9) -> well@(17, 1): path=[(14, 9), (15, 9), (16, 9), (17, 9), (17, 8), (17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (14, 9), done=False
[townlet] advance Bram@(12, 2) -> shell@(16, 10): path=[(13, 2), (14, 2), (15, 2), (16, 2), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (13, 2), done=False
[townlet] advance Doro@(10, 2) -> cave@(2, 1): path=[(9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (9, 2), done=False
[townlet] advance Eli@(2, 4) -> cave@(2, 1): path=[(2, 3), (2, 2)] -> step to (2, 3), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 'β€”', 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(14, 9) -> well@(17, 1): path=[(15, 9), (16, 9), (17, 9), (17, 8), (17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (15, 9), done=False
[townlet] advance Bram@(13, 2) -> shell@(16, 10): path=[(14, 2), (15, 2), (16, 2), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (14, 2), done=False
[townlet] advance Doro@(9, 2) -> cave@(2, 1): path=[(8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (8, 2), done=False
[townlet] advance Eli@(2, 3) -> cave@(2, 1): path=[(2, 2)] -> step to (2, 2), done=True
[townlet] advance Ada@(15, 9) -> well@(17, 1): path=[(16, 9), (17, 9), (17, 8), (17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (16, 9), done=False
[townlet] advance Bram@(14, 2) -> shell@(16, 10): path=[(15, 2), (16, 2), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (15, 2), done=False
[townlet] advance Doro@(8, 2) -> cave@(2, 1): path=[(7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (7, 2), done=False
[townlet] advance Ada@(16, 9) -> well@(17, 1): path=[(17, 9), (17, 8), (17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (17, 9), done=False
[townlet] advance Bram@(15, 2) -> shell@(16, 10): path=[(16, 2), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (16, 2), done=False
[townlet] advance Doro@(7, 2) -> cave@(2, 1): path=[(6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (6, 2), done=False
[townlet] advance Ada@(17, 9) -> well@(17, 1): path=[(17, 8), (17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (17, 8), done=False
[townlet] advance Bram@(16, 2) -> shell@(16, 10): path=[(16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (16, 3), done=False
[townlet] advance Doro@(6, 2) -> cave@(2, 1): path=[(5, 2), (4, 2), (3, 2), (2, 2)] -> step to (5, 2), done=False
[townlet] advance Ada@(17, 8) -> well@(17, 1): path=[(17, 7), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (17, 7), done=False
[townlet] advance Bram@(16, 3) -> shell@(16, 10): path=[(16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (16, 4), done=False
[townlet] advance Doro@(5, 2) -> cave@(2, 1): path=[(4, 2), (3, 2), (2, 2)] -> step to (4, 2), done=False
[townlet] drain start: T[id=7f38831605f0] tick=36 pending=['Cyra', 'Eli']
[townlet] REQ GET / (html size=64408)
[townlet] REQ tick_decisions
/usr/local/lib/python3.12/site-packages/huggingface_hub/utils/_validators.py:206: UserWarning: The `local_dir_use_symlinks` argument is deprecated and ignored in `hf_hub_download`. Downloading to a local directory does not use symlinks anymore.
warnings.warn(
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/gradio/queueing.py", line 867, in process_events
response = await route_utils.call_process_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/route_utils.py", line 386, in call_process_api
output = await app.get_blocks().process_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/blocks.py", line 2277, in process_api
result = await self.call_function(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/blocks.py", line 1654, in call_function
prediction = await anyio.to_thread.run_sync( # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/to_thread.py", line 63, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2518, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 1002, in run
result = context.run(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/utils.py", line 1061, in wrapper
response = f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/spaces/zero/wrappers.py", line 190, in gradio_handler
schedule_response = client.schedule(task_id=task_id, request=request, duration=duration_, gpu_size=gpu_size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/spaces/zero/client.py", line 218, in schedule
raise RuntimeError("Connection closed by visitor while queueing")
RuntimeError: Connection closed by visitor while queueing
llama_context: n_ctx_seq (16384) < n_ctx_train (1048576) -- the full capacity of the model will not be utilized
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Cyra -> move_to({'target': 'well'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Eli -> move_to({'target': 'cave'})
[townlet] drain end: ran=2 pending=[]
[townlet] RES tick_decisions keys=['decisions_run'] sizes={'decisions_run': 'β€”'}
[townlet] advance Ada@(17, 7) -> well@(17, 1): path=[(17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (17, 6), done=False
[townlet] advance Bram@(16, 4) -> shell@(16, 10): path=[(16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (16, 5), done=False
[townlet] advance Cyra@(10, 6) -> well@(17, 1): path=[(11, 6), (12, 6), (13, 6), (14, 6), (15, 6), (16, 6), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (11, 6), done=False
[townlet] advance Doro@(4, 2) -> cave@(2, 1): path=[(3, 2), (2, 2)] -> step to (3, 2), done=False
[townlet] advance Eli@(2, 2) -> cave@(2, 1): path=[] -> done
[townlet] advance Ada@(17, 6) -> well@(17, 1): path=[(17, 5), (17, 4), (17, 3), (17, 2)] -> step to (17, 5), done=False
[townlet] advance Bram@(16, 5) -> shell@(16, 10): path=[(16, 6), (16, 7), (16, 8), (16, 9)] -> step to (16, 6), done=False
[townlet] advance Cyra@(11, 6) -> well@(17, 1): path=[(12, 6), (13, 6), (14, 6), (15, 6), (16, 6), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (12, 6), done=False
[townlet] advance Doro@(3, 2) -> cave@(2, 1): path=[(2, 2)] -> step to (2, 2), done=True
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 'β€”', 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(17, 5) -> well@(17, 1): path=[(17, 4), (17, 3), (17, 2)] -> step to (17, 4), done=False
[townlet] advance Bram@(16, 6) -> shell@(16, 10): path=[(16, 7), (16, 8), (16, 9)] -> step to (16, 7), done=False
[townlet] advance Cyra@(12, 6) -> well@(17, 1): path=[(13, 6), (14, 6), (15, 6), (16, 6), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (13, 6), done=False
[townlet] advance Ada@(17, 4) -> well@(17, 1): path=[(17, 3), (17, 2)] -> step to (17, 3), done=False
[townlet] advance Bram@(16, 7) -> shell@(16, 10): path=[(16, 8), (16, 9)] -> step to (16, 8), done=False
[townlet] advance Cyra@(13, 6) -> well@(17, 1): path=[(14, 6), (15, 6), (16, 6), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (14, 6), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 'β€”', 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(17, 3) -> well@(17, 1): path=[(17, 2)] -> step to (17, 2), done=True
[townlet] advance Bram@(16, 8) -> shell@(16, 10): path=[(16, 9)] -> step to (16, 9), done=True
[townlet] advance Cyra@(14, 6) -> well@(17, 1): path=[(15, 6), (16, 6), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (15, 6), done=False
[townlet] advance Cyra@(15, 6) -> well@(17, 1): path=[(16, 6), (17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (16, 6), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(16, 6) -> well@(17, 1): path=[(17, 6), (17, 5), (17, 4), (17, 3), (17, 2)] -> step to (17, 6), done=False[townlet] REQ world_snapshot
[townlet] advance Cyra@(17, 6) -> well@(17, 1): path=[(17, 5), (17, 4), (17, 3), (17, 2)] -> step to (17, 5), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(17, 5) -> well@(17, 1): path=[(17, 4), (17, 3), (17, 2)] -> step to (17, 4), done=False
[townlet] advance Cyra@(17, 4) -> well@(17, 1): path=[(17, 3), (17, 2)] -> step to (17, 3), done=False
[townlet] advance Cyra@(17, 3) -> well@(17, 1): path=[(17, 2)] -> step to (17, 2), done=True
[townlet] drain start: T[id=7f38831605f0] tick=49 pending=['Eli', 'Doro', 'Ada', 'Bram', 'Cyra']
[townlet] REQ world_snapshot
/usr/local/lib/python3.12/site-packages/huggingface_hub/utils/_validators.py:206: UserWarning: The `local_dir_use_symlinks` argument is deprecated and ignored in `hf_hub_download`. Downloading to a local directory does not use symlinks anymore.
warnings.warn(
[townlet] REQ GET / (html size=64408)
llama_context: n_ctx_seq (16384) < n_ctx_train (1048576) -- the full capacity of the model will not be utilized
[townlet] REQ tick_decisions
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Eli -> move_to({'target': 'cave'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Doro -> move_to({'target': 'well'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Ada -> move_to({'target': 'locker_row'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Bram -> (no action queued)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Cyra -> draw_water({})
[townlet] drain end: ran=5 pending=[]
[townlet] RES tick_decisions keys=['decisions_run'] sizes={'decisions_run': 'β€”'}
[townlet] advance Ada@(17, 2) -> locker_row@(10, 1): path=[(16, 2), (15, 2), (14, 2), (13, 2), (12, 2), (11, 2), (10, 2), (10, 1)] -> step to (16, 2), done=False
[townlet] advance Doro@(2, 2) -> well@(17, 1): path=[(3, 2), (4, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (3, 2), done=False
[townlet] advance Eli@(2, 2) -> cave@(2, 1): path=[] -> done
[townlet] T[id=7f38831605f0] tick=50 pending=['Bram', 'Eli'] chars=[Ada@(16, 2)=move_to, Bram@(16, 9)=idle, Cyra@(17, 2)=draw_water, Doro@(3, 2)=move_to, Eli@(2, 2)=idle]
[townlet] advance Ada@(16, 2) -> locker_row@(10, 1): path=[(15, 2), (14, 2), (13, 2), (12, 2), (11, 2), (10, 2), (10, 1)] -> step to (15, 2), done=False
[townlet] advance Doro@(3, 2) -> well@(17, 1): path=[(4, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (4, 2), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(15, 2) -> locker_row@(10, 1): path=[(14, 2), (13, 2), (12, 2), (11, 2), (10, 2), (10, 1)] -> step to (14, 2), done=False
[townlet] advance Doro@(4, 2) -> well@(17, 1): path=[(5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (5, 2), done=False
[townlet] advance Ada@(14, 2) -> locker_row@(10, 1): path=[(13, 2), (12, 2), (11, 2), (10, 2), (10, 1)] -> step to (13, 2), done=False
[townlet] advance Doro@(5, 2) -> well@(17, 1): path=[(6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (6, 2), done=False
[townlet] REQ world_snapshot
[townlet] advance Ada@(13, 2) -> locker_row@(10, 1): path=[(12, 2), (11, 2), (10, 2), (10, 1)] -> step to (12, 2), done=False
[townlet] advance Doro@(6, 2) -> well@(17, 1): path=[(7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (7, 2), done=False
[townlet] advance Ada@(12, 2) -> locker_row@(10, 1): path=[(11, 2), (10, 2), (10, 1)] -> step to (11, 2), done=False
[townlet] advance Doro@(7, 2) -> well@(17, 1): path=[(8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (8, 2), done=False
[townlet] advance Ada@(11, 2) -> locker_row@(10, 1): path=[(10, 2), (10, 1)] -> step to (10, 2), done=False
[townlet] advance Doro@(8, 2) -> well@(17, 1): path=[(9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (9, 2), done=False
[townlet] drain start: T[id=7f38831605f0] tick=56 pending=['Bram', 'Eli', 'Cyra']
[townlet] REQ world_snapshot
/usr/local/lib/python3.12/site-packages/huggingface_hub/utils/_validators.py:206: UserWarning: The `local_dir_use_symlinks` argument is deprecated and ignored in `hf_hub_download`. Downloading to a local directory does not use symlinks anymore.
warnings.warn(
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
[townlet] REQ GET / (html size=64408)
llama_context: n_ctx_seq (16384) < n_ctx_train (1048576) -- the full capacity of the model will not be utilized
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ list_models
[townlet] RES list_models keys=['roster', 'default'] sizes={'roster': 5, 'default': 11}
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Bram -> wait({})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Eli -> move_to({'target': 'cave'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ tick_decisions
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Cyra -> move_to({'target': 'cave'})
[townlet] drain end: ran=3 pending=[]
[townlet] RES tick_decisions keys=['decisions_run'] sizes={'decisions_run': 'β€”'}
[townlet] advance Ada@(10, 2) -> locker_row@(10, 1): path=[(10, 1)] -> step to (10, 1), done=True
[townlet] advance Cyra@(17, 2) -> cave@(2, 1): path=[(16, 2), (15, 2), (14, 2), (13, 2), (12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (16, 2), done=False
[townlet] advance Doro@(9, 2) -> well@(17, 1): path=[(10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (10, 2), done=False
[townlet] advance Eli@(2, 2) -> cave@(2, 1): path=[] -> done
[townlet] advance Cyra@(16, 2) -> cave@(2, 1): path=[(15, 2), (14, 2), (13, 2), (12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (15, 2), done=False
[townlet] advance Doro@(10, 2) -> well@(17, 1): path=[(11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (11, 2), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}[townlet] advance Cyra@(15, 2) -> cave@(2, 1): path=[(14, 2), (13, 2), (12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (14, 2), done=False
[townlet] advance Doro@(11, 2) -> well@(17, 1): path=[(12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (12, 2), done=False
[townlet] advance Cyra@(14, 2) -> cave@(2, 1): path=[(13, 2), (12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (13, 2), done=False
[townlet] advance Doro@(12, 2) -> well@(17, 1): path=[(13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (13, 2), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(13, 2) -> cave@(2, 1): path=[(12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (12, 2), done=False
[townlet] advance Doro@(13, 2) -> well@(17, 1): path=[(14, 2), (15, 2), (16, 2), (17, 2)] -> step to (14, 2), done=False
[townlet] advance Cyra@(12, 2) -> cave@(2, 1): path=[(11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (11, 2), done=False
[townlet] advance Doro@(14, 2) -> well@(17, 1): path=[(15, 2), (16, 2), (17, 2)] -> step to (15, 2), done=False
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(11, 2) -> cave@(2, 1): path=[(10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (10, 2), done=False
[townlet] advance Doro@(15, 2) -> well@(17, 1): path=[(16, 2), (17, 2)] -> step to (16, 2), done=False
[townlet] advance Cyra@(10, 2) -> cave@(2, 1): path=[(9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (9, 2), done=False
[townlet] advance Doro@(16, 2) -> well@(17, 1): path=[(17, 2)] -> step to (17, 2), done=True
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(9, 2) -> cave@(2, 1): path=[(8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (8, 2), done=False
[townlet] advance Cyra@(8, 2) -> cave@(2, 1): path=[(7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (7, 2), done=False
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] advance Cyra@(7, 2) -> cave@(2, 1): path=[(6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (6, 2), done=False
[townlet] advance Cyra@(6, 2) -> cave@(2, 1): path=[(5, 2), (4, 2), (3, 2), (2, 2)] -> step to (5, 2), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(5, 2) -> cave@(2, 1): path=[(4, 2), (3, 2), (2, 2)] -> step to (4, 2), done=False
[townlet] advance Cyra@(4, 2) -> cave@(2, 1): path=[(3, 2), (2, 2)] -> step to (3, 2), done=False
[townlet] REQ world_snapshot[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] advance Cyra@(3, 2) -> cave@(2, 1): path=[(2, 2)] -> step to (2, 2), done=True
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] T[id=7f38831605f0] tick=75 pending=['Bram', 'Ada', 'Eli', 'Doro', 'Cyra'] chars=[Ada@(10, 1)=idle, Bram@(16, 9)=idle, Cyra@(2, 2)=idle, Doro@(17, 2)=idle, Eli@(2, 2)=idle]
[townlet] drain start: T[id=7f38831605f0] tick=77 pending=['Bram', 'Ada', 'Eli', 'Doro', 'Cyra']
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ tick_decisions
/usr/local/lib/python3.12/site-packages/huggingface_hub/utils/_validators.py:206: UserWarning: The `local_dir_use_symlinks` argument is deprecated and ignored in `hf_hub_download`. Downloading to a local directory does not use symlinks anymore.
warnings.warn(
[townlet] REQ GET / (html size=64408)
llama_context: n_ctx_seq (16384) < n_ctx_train (1048576) -- the full capacity of the model will not be utilized
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Bram -> (no action queued)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] T[id=7f38831605f0] tick=75 pending=['Bram', 'Ada', 'Eli', 'Doro', 'Cyra'] chars=[Ada@(10, 1)=idle, Bram@(16, 9)=idle, Cyra@(2, 2)=idle, Doro@(17, 2)=idle, Eli@(2, 2)=idle]
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 5, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] T[id=7f38831605f0] tick=100 pending=['Bram', 'Ada', 'Eli', 'Doro', 'Cyra'] chars=[Ada@(10, 1)=idle, Bram@(16, 9)=idle, Cyra@(2, 2)=idle, Doro@(17, 2)=idle, Eli@(2, 2)=idle]
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] drain start: T[id=7f38831605f0] tick=123 pending=['Bram', 'Ada', 'Eli', 'Doro', 'Cyra', 'Faye']
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ list_models
[townlet] RES list_models keys=['roster', 'default'] sizes={'roster': 5, 'default': 11}
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] Bram -> (no action queued)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Ada -> (no action queued)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Eli -> move_to({'target': 'cave'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Doro -> (no action queued)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Cyra -> (no action queued)
[townlet] drain end: ran=5 pending=['Faye']
[townlet] RES tick_decisions keys=['decisions_run'] sizes={'decisions_run': 'β€”'}
[townlet] advance Eli@(2, 2) -> cave@(2, 1): path=[] -> done
[townlet] T[id=7f38831605f0] tick=125 pending=['Faye', 'Bram', 'Cyra', 'Doro', 'Eli', 'Ada'] chars=[Ada@(10, 1)=idle, Bram@(16, 9)=idle, Cyra@(2, 2)=idle, Doro@(17, 2)=idle, Eli@(2, 2)=idle, Faye@(9, 3)=idle]
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] T[id=7f38831605f0] tick=150 pending=['Faye', 'Bram', 'Cyra', 'Doro', 'Eli', 'Ada'] chars=[Ada@(10, 1)=idle, Bram@(16, 9)=idle, Cyra@(2, 2)=idle, Doro@(17, 2)=idle, Eli@(2, 2)=idle, Faye@(9, 3)=idle]
[townlet] drain start: T[id=7f38831605f0] tick=150 pending=['Faye', 'Bram', 'Cyra', 'Doro', 'Eli', 'Ada']
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Faye -> move_to({'target': 'cave'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Bram -> (no action queued)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Cyra -> move_to({'target': 'locker_row'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Doro -> (no action queued)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Eli -> mine_coal({})
[townlet] drain end: ran=5 pending=['Ada']
[townlet] RES tick_decisions keys=['decisions_run'] sizes={'decisions_run': 'β€”'}
[townlet] advance Cyra@(2, 2) -> locker_row@(10, 1): path=[(3, 2), (4, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (10, 1)] -> step to (3, 2), done=False
[townlet] advance Faye@(9, 3) -> cave@(2, 1): path=[(8, 3), (7, 3), (6, 3), (5, 3), (4, 3), (3, 3), (2, 3), (2, 2)] -> step to (8, 3), done=False
[townlet] advance Cyra@(3, 2) -> locker_row@(10, 1): path=[(4, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (10, 1)] -> step to (4, 2), done=False
[townlet] advance Faye@(8, 3) -> cave@(2, 1): path=[(7, 3), (6, 3), (5, 3), (4, 3), (3, 3), (2, 3), (2, 2)] -> step to (7, 3), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(4, 2) -> locker_row@(10, 1): path=[(5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (10, 1)] -> step to (5, 2), done=False
[townlet] advance Faye@(7, 3) -> cave@(2, 1): path=[(6, 3), (5, 3), (4, 3), (3, 3), (2, 3), (2, 2)] -> step to (6, 3), done=False
[townlet] advance Cyra@(5, 2) -> locker_row@(10, 1): path=[(6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (10, 1)] -> step to (6, 2), done=False
[townlet] advance Faye@(6, 3) -> cave@(2, 1): path=[(5, 3), (4, 3), (3, 3), (2, 3), (2, 2)] -> step to (5, 3), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(6, 2) -> locker_row@(10, 1): path=[(7, 2), (8, 2), (9, 2), (10, 2), (10, 1)] -> step to (7, 2), done=False
[townlet] advance Faye@(5, 3) -> cave@(2, 1): path=[(4, 3), (3, 3), (2, 3), (2, 2)] -> step to (4, 3), done=False
[townlet] advance Cyra@(7, 2) -> locker_row@(10, 1): path=[(8, 2), (9, 2), (10, 2), (10, 1)] -> step to (8, 2), done=False
[townlet] advance Faye@(4, 3) -> cave@(2, 1): path=[(3, 3), (2, 3), (2, 2)] -> step to (3, 3), done=False
[townlet] advance Cyra@(8, 2) -> locker_row@(10, 1): path=[(9, 2), (10, 2), (10, 1)] -> step to (9, 2), done=False
[townlet] advance Faye@(3, 3) -> cave@(2, 1): path=[(2, 3), (2, 2)] -> step to (2, 3), done=False
[townlet] advance Cyra@(9, 2) -> locker_row@(10, 1): path=[(10, 2), (10, 1)] -> step to (10, 2), done=False
[townlet] advance Faye@(2, 3) -> cave@(2, 1): path=[(2, 2)] -> step to (2, 2), done=True
[townlet] advance Cyra@(10, 2) -> locker_row@(10, 1): path=[(10, 1)] -> step to (10, 1), done=True
[townlet] drain start: T[id=7f38831605f0] tick=159 pending=['Ada', 'Bram', 'Doro', 'Eli', 'Faye', 'Cyra']
/usr/local/lib/python3.12/site-packages/huggingface_hub/utils/_validators.py:206: UserWarning: The `local_dir_use_symlinks` argument is deprecated and ignored in `hf_hub_download`. Downloading to a local directory does not use symlinks anymore.
warnings.warn(
[townlet] REQ GET / (html size=64408)
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
[townlet] REQ GET / (html size=64408)
llama_context: n_ctx_seq (16384) < n_ctx_train (1048576) -- the full capacity of the model will not be utilized
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ list_models
[townlet] RES list_models keys=['roster', 'default'] sizes={'roster': 5, 'default': 11}
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Ada -> move_to({'target': 'cave'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Bram -> move_to({'target': 'cave'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Doro -> move_to({'target': 'well'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] advance Cyra@(6, 2) -> locker_row@(10, 1): path=[(7, 2), (8, 2), (9, 2), (10, 2), (10, 1)] -> step to (7, 2), done=False
[townlet] advance Faye@(5, 3) -> cave@(2, 1): path=[(4, 3), (3, 3), (2, 3), (2, 2)] -> step to (4, 3), done=False
[townlet] advance Cyra@(7, 2) -> locker_row@(10, 1): path=[(8, 2), (9, 2), (10, 2), (10, 1)] -> step to (8, 2), done=False
[townlet] advance Faye@(4, 3) -> cave@(2, 1): path=[(3, 3), (2, 3), (2, 2)] -> step to (3, 3), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(8, 2) -> locker_row@(10, 1): path=[(9, 2), (10, 2), (10, 1)] -> step to (9, 2), done=False
[townlet] advance Faye@(3, 3) -> cave@(2, 1): path=[(2, 3), (2, 2)] -> step to (2, 3), done=False
[townlet] advance Cyra@(9, 2) -> locker_row@(10, 1): path=[(10, 2), (10, 1)] -> step to (10, 2), done=False
[townlet] advance Faye@(2, 3) -> cave@(2, 1): path=[(2, 2)] -> step to (2, 2), done=True
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(10, 2) -> locker_row@(10, 1): path=[(10, 1)] -> step to (10, 1), done=True
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] drain start: T[id=7f38831605f0] tick=171 pending=['Ada', 'Bram', 'Doro', 'Eli', 'Faye', 'Cyra']
/usr/local/lib/python3.12/site-packages/huggingface_hub/utils/_validators.py:206: UserWarning: The `local_dir_use_symlinks` argument is deprecated and ignored in `hf_hub_download`. Downloading to a local directory does not use symlinks anymore.
warnings.warn(
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
[townlet] REQ GET / (html size=64408)
llama_context: n_ctx_seq (16384) < n_ctx_train (1048576) -- the full capacity of the model will not be utilized
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Ada -> move_to({'target': 'town_hall'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ list_models
[townlet] RES list_models keys=['roster', 'default'] sizes={'roster': 5, 'default': 11}
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] Bram -> (no action queued)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Doro -> move_to({'target': 'cave'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Eli -> mine_coal({})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Faye -> mine_coal({})
[townlet] drain end: ran=5 pending=['Cyra']
[townlet] RES tick_decisions keys=['decisions_run'] sizes={'decisions_run': 'β€”'}
[townlet] advance Ada@(10, 1) -> town_hall@(3, 10): path=[(9, 1), (8, 1), (7, 1), (6, 1), (5, 1), (4, 1), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (9, 1), done=False
[townlet] advance Doro@(17, 2) -> cave@(2, 1): path=[(16, 2), (15, 2), (14, 2), (13, 2), (12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (16, 2), done=False
[townlet] advance Ada@(9, 1) -> town_hall@(3, 10): path=[(8, 1), (7, 1), (6, 1), (5, 1), (4, 1), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (8, 1), done=False
[townlet] advance Doro@(16, 2) -> cave@(2, 1): path=[(15, 2), (14, 2), (13, 2), (12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (15, 2), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(8, 1) -> town_hall@(3, 10): path=[(7, 1), (6, 1), (5, 1), (4, 1), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (7, 1), done=False
[townlet] advance Doro@(15, 2) -> cave@(2, 1): path=[(14, 2), (13, 2), (12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (14, 2), done=False
[townlet] advance Ada@(7, 1) -> town_hall@(3, 10): path=[(6, 1), (5, 1), (4, 1), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (6, 1), done=False
[townlet] advance Doro@(14, 2) -> cave@(2, 1): path=[(13, 2), (12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (13, 2), done=False
[townlet] T[id=7f38831605f0] tick=175 pending=['Cyra', 'Bram', 'Eli', 'Faye'] chars=[Ada@(6, 1)=move_to, Bram@(16, 9)=idle, Cyra@(10, 1)=idle, Doro@(13, 2)=move_to, Eli@(2, 2)=idle, Faye@(2, 2)=idle]
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 6, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(6, 1) -> town_hall@(3, 10): path=[(5, 1), (4, 1), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (5, 1), done=False
[townlet] advance Doro@(13, 2) -> cave@(2, 1): path=[(12, 2), (11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (12, 2), done=False
[townlet] advance Ada@(5, 1) -> town_hall@(3, 10): path=[(4, 1), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (4, 1), done=False
[townlet] advance Doro@(12, 2) -> cave@(2, 1): path=[(11, 2), (10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (11, 2), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 7, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(4, 1) -> town_hall@(3, 10): path=[(3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (3, 1), done=False
[townlet] advance Doro@(11, 2) -> cave@(2, 1): path=[(10, 2), (9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (10, 2), done=False
[townlet] advance Ada@(3, 1) -> town_hall@(3, 10): path=[(3, 2), (3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (3, 2), done=False
[townlet] advance Doro@(10, 2) -> cave@(2, 1): path=[(9, 2), (8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (9, 2), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 7, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(3, 2) -> town_hall@(3, 10): path=[(3, 3), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (3, 3), done=False
[townlet] advance Doro@(9, 2) -> cave@(2, 1): path=[(8, 2), (7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (8, 2), done=False
[townlet] advance Ada@(3, 3) -> town_hall@(3, 10): path=[(3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (3, 4), done=False
[townlet] advance Doro@(8, 2) -> cave@(2, 1): path=[(7, 2), (6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (7, 2), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 7, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(3, 4) -> town_hall@(3, 10): path=[(3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] -> step to (3, 5), done=False
[townlet] advance Doro@(7, 2) -> cave@(2, 1): path=[(6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (6, 2), done=False
[townlet] advance Ada@(3, 5) -> town_hall@(3, 10): path=[(3, 6), (3, 7), (3, 8), (3, 9)] -> step to (3, 6), done=False
[townlet] advance Doro@(6, 2) -> cave@(2, 1): path=[(5, 2), (4, 2), (3, 2), (2, 2)] -> step to (5, 2), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 7, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Ada@(3, 6) -> town_hall@(3, 10): path=[(3, 7), (3, 8), (3, 9)] -> step to (3, 7), done=False
[townlet] advance Doro@(5, 2) -> cave@(2, 1): path=[(4, 2), (3, 2), (2, 2)] -> step to (4, 2), done=False
[townlet] advance Ada@(3, 7) -> town_hall@(3, 10): path=[(3, 8), (3, 9)] -> step to (3, 8), done=False
[townlet] advance Doro@(4, 2) -> cave@(2, 1): path=[(3, 2), (2, 2)] -> step to (3, 2), done=False
[townlet] advance Ada@(3, 8) -> town_hall@(3, 10): path=[(3, 9)] -> step to (3, 9), done=True
[townlet] advance Doro@(3, 2) -> cave@(2, 1): path=[(2, 2)] -> step to (2, 2), done=True
[townlet] RES reset_world keys=['ok'] sizes={'ok': 'β€”'}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ tick_decisions
[townlet] T[id=7f38831605f0] tick=200 pending=['Cyra', 'Bram', 'Eli', 'Faye', 'Gus', 'Doro', 'Ada', 'Hild', 'Ira', 'Juno'] chars=[Ada@(3, 9)=idle, Bram@(16, 9)=idle, Cyra@(10, 1)=idle, Doro@(2, 2)=idle, Eli@(2, 2)=idle, Faye@(2, 2)=idle, Gus@(6, 5)=idle, Hild@(11, 3)=idle, Ira@(6, 9)=idle, Juno@(7, 2)=idle]
[townlet] drain start: T[id=7f38831605f0] tick=204 pending=['Cyra', 'Bram', 'Eli', 'Faye', 'Gus', 'Doro', 'Ada', 'Hild', 'Ira', 'Juno']
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ tick_decisions
/usr/local/lib/python3.12/site-packages/spaces/zero/client.py:276: RuntimeWarning: GPU device not used
warnings.warn(UNUSED_MESSAGE, RuntimeWarning)
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/gradio/queueing.py", line 867, in process_events
response = await route_utils.call_process_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/route_utils.py", line 386, in call_process_api
output = await app.get_blocks().process_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/blocks.py", line 2277, in process_api
result = await self.call_function(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/blocks.py", line 1654, in call_function
prediction = await anyio.to_thread.run_sync( # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/to_thread.py", line 63, in run_sync
return await get_async_backend().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2518, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 1002, in run
result = context.run(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/gradio/utils.py", line 1061, in wrapper
response = f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/spaces/zero/wrappers.py", line 190, in gradio_handler
schedule_response = client.schedule(task_id=task_id, request=request, duration=duration_, gpu_size=gpu_size)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/spaces/zero/client.py", line 240, in schedule
raise RuntimeError("Connection closed by visitor on queue success")
RuntimeError: Connection closed by visitor on queue success
[townlet] REQ world_snapshot
[townlet] REQ tick_decisions
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ tick_decisions
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ tick_decisions
[townlet] REQ list_models
[townlet] RES list_models keys=['roster', 'default'] sizes={'roster': 5, 'default': 11}
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] Cyra -> move_to({'target': 'cave'})
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] Bram -> (no action queued)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] Eli -> move_to({'target': 'cave'})
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Faye -> move_to({'target': 'well'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Gus -> move_to({'target': 'shell'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] drain end: ran=5 pending=['Doro', 'Ada', 'Hild', 'Ira', 'Juno']
[townlet] RES tick_decisions keys=['decisions_run'] sizes={'decisions_run': 'β€”'}
[townlet] advance Cyra@(10, 1) -> cave@(2, 1): path=[(9, 1), (8, 1), (7, 1), (6, 1), (5, 1), (4, 1), (3, 1)] -> step to (9, 1), done=False
[townlet] advance Eli@(2, 2) -> cave@(2, 1): path=[] -> done
[townlet] advance Faye@(2, 2) -> well@(17, 1): path=[(3, 2), (4, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (3, 2), done=False
[townlet] advance Gus@(6, 5) -> shell@(16, 10): path=[(7, 5), (8, 5), (9, 5), (10, 5), (11, 5), (12, 5), (13, 5), (14, 5), (15, 5), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (7, 5), done=False
[townlet] advance Cyra@(9, 1) -> cave@(2, 1): path=[(8, 1), (7, 1), (6, 1), (5, 1), (4, 1), (3, 1)] -> step to (8, 1), done=False
[townlet] advance Faye@(3, 2) -> well@(17, 1): path=[(4, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (4, 2), done=False
[townlet] advance Gus@(7, 5) -> shell@(16, 10): path=[(8, 5), (9, 5), (10, 5), (11, 5), (12, 5), (13, 5), (14, 5), (15, 5), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (8, 5), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(8, 1) -> cave@(2, 1): path=[(7, 1), (6, 1), (5, 1), (4, 1), (3, 1)] -> step to (7, 1), done=False
[townlet] advance Faye@(4, 2) -> well@(17, 1): path=[(5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (5, 2), done=False
[townlet] advance Gus@(8, 5) -> shell@(16, 10): path=[(9, 5), (10, 5), (11, 5), (12, 5), (13, 5), (14, 5), (15, 5), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (9, 5), done=False
[townlet] advance Cyra@(7, 1) -> cave@(2, 1): path=[(6, 1), (5, 1), (4, 1), (3, 1)] -> step to (6, 1), done=False
[townlet] advance Faye@(5, 2) -> well@(17, 1): path=[(6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (6, 2), done=False
[townlet] advance Gus@(9, 5) -> shell@(16, 10): path=[(10, 5), (11, 5), (12, 5), (13, 5), (14, 5), (15, 5), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (10, 5), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(6, 1) -> cave@(2, 1): path=[(5, 1), (4, 1), (3, 1)] -> step to (5, 1), done=False
[townlet] advance Faye@(6, 2) -> well@(17, 1): path=[(7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (7, 2), done=False
[townlet] advance Gus@(10, 5) -> shell@(16, 10): path=[(11, 5), (12, 5), (13, 5), (14, 5), (15, 5), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (11, 5), done=False
[townlet] advance Cyra@(5, 1) -> cave@(2, 1): path=[(4, 1), (3, 1)] -> step to (4, 1), done=False
[townlet] advance Faye@(7, 2) -> well@(17, 1): path=[(8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (8, 2), done=False
[townlet] advance Gus@(11, 5) -> shell@(16, 10): path=[(12, 5), (13, 5), (14, 5), (15, 5), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (12, 5), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Cyra@(4, 1) -> cave@(2, 1): path=[(3, 1)] -> step to (3, 1), done=True
[townlet] advance Faye@(8, 2) -> well@(17, 1): path=[(9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (9, 2), done=False
[townlet] advance Gus@(12, 5) -> shell@(16, 10): path=[(13, 5), (14, 5), (15, 5), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (13, 5), done=False
[townlet] advance Faye@(9, 2) -> well@(17, 1): path=[(10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (10, 2), done=False
[townlet] advance Gus@(13, 5) -> shell@(16, 10): path=[(14, 5), (15, 5), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (14, 5), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Faye@(10, 2) -> well@(17, 1): path=[(11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (11, 2), done=False
[townlet] advance Gus@(14, 5) -> shell@(16, 10): path=[(15, 5), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (15, 5), done=False
[townlet] advance Faye@(11, 2) -> well@(17, 1): path=[(12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (12, 2), done=False
[townlet] advance Gus@(15, 5) -> shell@(16, 10): path=[(16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (16, 5), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Faye@(12, 2) -> well@(17, 1): path=[(13, 2), (14, 2), (15, 2), (16, 2), (17, 2)] -> step to (13, 2), done=False
[townlet] advance Gus@(16, 5) -> shell@(16, 10): path=[(16, 6), (16, 7), (16, 8), (16, 9)] -> step to (16, 6), done=False
[townlet] advance Faye@(13, 2) -> well@(17, 1): path=[(14, 2), (15, 2), (16, 2), (17, 2)] -> step to (14, 2), done=False
[townlet] advance Gus@(16, 6) -> shell@(16, 10): path=[(16, 7), (16, 8), (16, 9)] -> step to (16, 7), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 0, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Faye@(14, 2) -> well@(17, 1): path=[(15, 2), (16, 2), (17, 2)] -> step to (15, 2), done=False
[townlet] advance Gus@(16, 7) -> shell@(16, 10): path=[(16, 8), (16, 9)] -> step to (16, 8), done=False
[townlet] advance Faye@(15, 2) -> well@(17, 1): path=[(16, 2), (17, 2)] -> step to (16, 2), done=False
[townlet] advance Gus@(16, 8) -> shell@(16, 10): path=[(16, 9)] -> step to (16, 9), done=True
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 1, 'board_sentiment': 7, 'grid': 2, 'places': 6}[townlet] REQ world_snapshot
[townlet] advance Faye@(16, 2) -> well@(17, 1): path=[(17, 2)] -> step to (17, 2), done=True
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 1, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] REQ world_snapshot
[townlet] T[id=7f38831605f0] tick=225 pending=['Doro', 'Ada', 'Hild', 'Ira', 'Juno', 'Bram', 'Eli', 'Cyra', 'Gus', 'Faye'] chars=[Ada@(3, 9)=idle, Bram@(16, 9)=idle, Cyra@(3, 1)=idle, Doro@(2, 2)=idle, Eli@(2, 2)=idle, Faye@(17, 2)=idle, Gus@(16, 9)=idle, Hild@(11, 3)=idle, Ira@(6, 9)=idle, Juno@(7, 2)=idle]
[townlet] drain start: T[id=7f38831605f0] tick=225 pending=['Doro', 'Ada', 'Hild', 'Ira', 'Juno', 'Bram', 'Eli', 'Cyra', 'Gus', 'Faye']
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ world_snapshot
[townlet] REQ tick_decisions
/usr/local/lib/python3.12/site-packages/huggingface_hub/utils/_validators.py:206: UserWarning: The `local_dir_use_symlinks` argument is deprecated and ignored in `hf_hub_download`. Downloading to a local directory does not use symlinks anymore.
warnings.warn(
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
[townlet] REQ GET / (html size=64408)
llama_context: n_ctx_seq (16384) < n_ctx_train (1048576) -- the full capacity of the model will not be utilized
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Doro -> (no action queued)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Ada -> move_to({'target': 'town_hall'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Hild -> move_to({'target': 'shell'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Ira -> move_to({'target': 'town_hall'})
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] Juno -> move_to({'target': 'cave'})
[townlet] REQ GET / (html size=64408)
[townlet] drain end: ran=5 pending=['Bram', 'Eli', 'Cyra', 'Gus', 'Faye']
[townlet] RES tick_decisions keys=['decisions_run'] sizes={'decisions_run': 'β€”'}
[townlet] advance Ada@(3, 9) -> town_hall@(3, 10): path=[] -> done
[townlet] advance Hild@(11, 3) -> shell@(16, 10): path=[(12, 3), (13, 3), (14, 3), (15, 3), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (12, 3), done=False
[townlet] advance Ira@(6, 9) -> town_hall@(3, 10): path=[(5, 9), (4, 9), (3, 9)] -> step to (5, 9), done=False
[townlet] advance Juno@(7, 2) -> cave@(2, 1): path=[(6, 2), (5, 2), (4, 2), (3, 2), (2, 2)] -> step to (6, 2), done=False
[townlet] advance Hild@(12, 3) -> shell@(16, 10): path=[(13, 3), (14, 3), (15, 3), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (13, 3), done=False
[townlet] advance Ira@(5, 9) -> town_hall@(3, 10): path=[(4, 9), (3, 9)] -> step to (4, 9), done=False
[townlet] advance Juno@(6, 2) -> cave@(2, 1): path=[(5, 2), (4, 2), (3, 2), (2, 2)] -> step to (5, 2), done=False
[townlet] RES world_snapshot keys=['tick', 'paused', 'characters', 'board', 'shell', 'shell_lock_holder', 'shell_queue', 'board_sentiment', 'grid', 'places'] sizes={'tick': 'β€”', 'paused': 'β€”', 'characters': 10, 'board': 0, 'shell': 0, 'shell_lock_holder': 4, 'shell_queue': 1, 'board_sentiment': 7, 'grid': 2, 'places': 6}
[townlet] advance Hild@(13, 3) -> shell@(16, 10): path=[(14, 3), (15, 3), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (14, 3), done=False
[townlet] advance Ira@(4, 9) -> town_hall@(3, 10): path=[(3, 9)] -> step to (3, 9), done=True
[townlet] advance Juno@(5, 2) -> cave@(2, 1): path=[(4, 2), (3, 2), (2, 2)] -> step to (4, 2), done=False
[townlet] advance Hild@(14, 3) -> shell@(16, 10): path=[(15, 3), (16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (15, 3), done=False
[townlet] advance Juno@(4, 2) -> cave@(2, 1): path=[(3, 2), (2, 2)] -> step to (3, 2), done=False
[townlet] advance Hild@(15, 3) -> shell@(16, 10): path=[(16, 3), (16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (16, 3), done=False
[townlet] advance Juno@(3, 2) -> cave@(2, 1): path=[(2, 2)] -> step to (2, 2), done=True
[townlet] advance Hild@(16, 3) -> shell@(16, 10): path=[(16, 4), (16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (16, 4), done=False
[townlet] advance Hild@(16, 4) -> shell@(16, 10): path=[(16, 5), (16, 6), (16, 7), (16, 8), (16, 9)] -> step to (16, 5), done=False
[townlet] drain start: T[id=7f38831605f0] tick=232 pending=['Bram', 'Eli', 'Cyra', 'Gus', 'Faye', 'Ada', 'Doro', 'Ira', 'Juno']
[townlet] REQ world_snapshot
/usr/local/lib/python3.12/site-packages/huggingface_hub/utils/_validators.py:206: UserWarning: The `local_dir_use_symlinks` argument is deprecated and ignored in `hf_hub_download`. Downloading to a local directory does not use symlinks anymore.
warnings.warn(
[townlet] REQ world_snapshot
[townlet] REQ GET / (html size=64408)
llama_context: n_ctx_seq (16384) < n_ctx_train (1048576) -- the full capacity of the model will not be utilized
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
[townlet] REQ GET / (html size=64408)
{"timestamp":"2026-06-13T10:02:36.649353Z","level":"WARN","message":"Signal received, starting graceful shutdown","target":"init_process","line_number":422}