bar: $nalej wymyśla drinki, $menu trzyma rosnące lore baru #5

Merged
gitea merged 1 commits from bar-drinks into main 2026-07-31 18:09:17 +00:00
Owner

Najbardziej „ten bot" z możliwych: persona to dosłownie 200-kilowy barman wymyślający mocne drinki z intrygującymi nazwami. Nowy always-loaded cog bar_commands.

Komendy

  • $nalej [motyw] — aktywny backend AI (to co wskazuje $gadaj_teraz, GPT/Claude) wymyśla jeden koktajl w postaci Conjurera. Persona brana z GPT_SETTINGS[0] jako wiadomość systemowa, instrukcje jako user, przez handle_response z request_type="NONE"nie zaśmieca pamięci rozmów baru. Pusty motyw = niespodzianka; radio / pod muzykę tematyzuje drink na obecnie granym kawałku (PREPPED_TRACKS['now_playing']).
  • $menu — listuje wymyślone drinki i nalewa jeden losowy z archiwum.

Persystencja

Każdy drink dopisywany do menu.json (nowy seedowany state file, nadpisywalny przez CONJURER_MENU_FILE): nazwa / motyw / autor / timestamp / pełny tekst — emergentne lore baru, które samo rośnie.

Na razie tekstowo; obrazek drinka przez DALL-E to łatwy follow-up (ścieżka renderowania już jest w ai_commands, tylko OpenAI).

Zmiany

constants dostaje MENU_FILE (domyślnie obok pamiec.json) + seed; bot.py rejestruje bar_commands jako core cog.

Weryfikacja

tests/unit/test_bar_commands.py: ekstrakcja nazwy drinka (markery/markdown/fallback) + round-trip menu (w tym tolerancja uszkodzonego pliku). Job unit 32 passed. Kompilacja całości czysta.

Najbardziej „ten bot" z możliwych: persona to dosłownie 200-kilowy barman wymyślający mocne drinki z intrygującymi nazwami. Nowy always-loaded cog `bar_commands`. ## Komendy - **`$nalej [motyw]`** — aktywny backend AI (to co wskazuje `$gadaj_teraz`, GPT/Claude) wymyśla jeden koktajl w postaci Conjurera. Persona brana z `GPT_SETTINGS[0]` jako wiadomość systemowa, instrukcje jako user, przez `handle_response` z `request_type="NONE"` — **nie zaśmieca pamięci rozmów baru**. Pusty motyw = niespodzianka; `radio` / `pod muzykę` tematyzuje drink na **obecnie granym kawałku** (`PREPPED_TRACKS['now_playing']`). - **`$menu`** — listuje wymyślone drinki i nalewa jeden losowy z archiwum. ## Persystencja Każdy drink dopisywany do `menu.json` (nowy seedowany state file, nadpisywalny przez `CONJURER_MENU_FILE`): nazwa / motyw / autor / timestamp / pełny tekst — emergentne lore baru, które samo rośnie. Na razie tekstowo; obrazek drinka przez DALL-E to łatwy follow-up (ścieżka renderowania już jest w `ai_commands`, tylko OpenAI). ## Zmiany `constants` dostaje `MENU_FILE` (domyślnie obok `pamiec.json`) + seed; `bot.py` rejestruje `bar_commands` jako core cog. ## Weryfikacja `tests/unit/test_bar_commands.py`: ekstrakcja nazwy drinka (markery/markdown/fallback) + round-trip menu (w tym tolerancja uszkodzonego pliku). Job `unit` 32 passed. Kompilacja całości czysta.
gitea self-assigned this 2026-07-31 14:55:40 +00:00
gitea added 1 commit 2026-07-31 14:55:41 +00:00
bar: $nalej invents cocktails, $menu keeps the bar's growing lore
CI / compile (pull_request) Successful in 10s
CI / unit (pull_request) Successful in 16s
CI / integration (pull_request) Successful in 11s
build / build (push) Successful in 42s
CI / compile (push) Successful in 9s
CI / unit (push) Successful in 14s
CI / integration (push) Successful in 11s
e9e731e2bd
The most in-character capability the bot has: the persona is literally a 200kg
bartender who mixes strong drinks with intriguing names. New always-loaded cog
bar_commands:

* $nalej [motyw] asks the ACTIVE AI backend (whatever $gadaj_teraz selects) to
  invent one themed cocktail in Conjurer's voice - persona reused from
  GPT_SETTINGS[0] as a system message, instructions as the user turn, via
  handle_response request_type NONE so it never pollutes the bar's conversation
  memory. Empty motyw = a surprise; "radio"/"pod muzykę" themes the drink on the
  track currently playing (PREPPED_TRACKS["now_playing"]).
* every drink is appended to menu.json (new seeded state file, CONJURER_MENU_FILE
  overridable) with name/theme/author/timestamp/full text - emergent bar lore.
* $menu lists the invented drinks and pours one at random from the archive.

Text-only for now; a DALL-E drink image is an easy follow-up (the render path
already exists in ai_commands, OpenAI-only).

constants gains MENU_FILE (next to pamiec.json by default) + its seed; bot.py
registers bar_commands as a core cog. Verified: tests/unit/test_bar_commands.py
covers name extraction (markers/markdown/fallback) and the menu round-trip
incl. corrupt-file tolerance; unit job 32 passed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
gitea merged commit e9e731e2bd into main 2026-07-31 18:09:17 +00:00
gitea deleted branch bar-drinks 2026-07-31 18:09:17 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gitea/conjurer#5