feat(runtime): survival-bot pivot — MC chat is dialog-only (Phase 0) #12

Merged
halofourteen merged 1 commits from feat/survival-pivot-phase-0 into main 2026-05-25 22:01:26 +03:00
halofourteen commented 2026-05-25 21:56:13 +03:00 (Migrated from github.com)

Summary

Phase 0 of the survival-bot PRD (plans/autonomous-survival-bot-prd.md, local-only).
The bot stops being an operator-driven remote control and starts becoming an
autonomous survival resident. MC chat is dialog-only — for everyone,
including names listed in OPERATOR_USERNAMES. Local control of the bot
moves to the TUI exclusively.

  • Runtime: removed operatorGoalReflex; replaced handleOperatorChat with a
    dialog-only handleChat that answers greetings/status (en + ru) and records
    command-like verbs (come, follow, build, pause, stop, give, …)
    in the diary without dispatching them. The bot also replies once per
    cooldown that MC chat is dialog-only.
  • Config: default MC_VERSION is now auto — mineflayer auto-detects from
    the server handshake (the PRD-mandated default). Hard pinning still works
    if .env overrides it.
  • Docs: AGENTS.md, README.md, docs/runtime.md, docs/roadmap.md updated to
    reflect the pivot. Legacy operator-chat command surface marked superseded.

Test plan

  • node --check passes on all touched runtime files
  • runtime/config.js loads cleanly and reports the resolved version
  • No lingering references to operatorGoal / handleOperatorChat /
    maybeReplyToPlayer / operator-goal outside the new dialog handler
  • Live-server smoke: bot ignores <bot> come, <bot> pause, <bot> stop
    from MC chat and replies once with the dialog-only notice
  • Live-server smoke: TUI p/s hotkeys still pause/stop the bot
  • Live-server smoke: connecting with MC_VERSION=auto succeeds against
    the configured server

🤖 Generated with Claude Code

## Summary Phase 0 of the survival-bot PRD (`plans/autonomous-survival-bot-prd.md`, local-only). The bot stops being an operator-driven remote control and starts becoming an autonomous survival resident. **MC chat is dialog-only** — for everyone, including names listed in `OPERATOR_USERNAMES`. Local control of the bot moves to the TUI exclusively. - Runtime: removed `operatorGoalReflex`; replaced `handleOperatorChat` with a dialog-only `handleChat` that answers greetings/status (en + ru) and records command-like verbs (`come`, `follow`, `build`, `pause`, `stop`, `give`, …) in the diary without dispatching them. The bot also replies once per cooldown that MC chat is dialog-only. - Config: default `MC_VERSION` is now `auto` — mineflayer auto-detects from the server handshake (the PRD-mandated default). Hard pinning still works if `.env` overrides it. - Docs: AGENTS.md, README.md, docs/runtime.md, docs/roadmap.md updated to reflect the pivot. Legacy operator-chat command surface marked superseded. ## Test plan - [x] `node --check` passes on all touched runtime files - [x] `runtime/config.js` loads cleanly and reports the resolved version - [x] No lingering references to `operatorGoal` / `handleOperatorChat` / `maybeReplyToPlayer` / `operator-goal` outside the new dialog handler - [ ] Live-server smoke: bot ignores `<bot> come`, `<bot> pause`, `<bot> stop` from MC chat and replies once with the dialog-only notice - [ ] Live-server smoke: TUI `p`/`s` hotkeys still pause/stop the bot - [ ] Live-server smoke: connecting with `MC_VERSION=auto` succeeds against the configured server 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.