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
## 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)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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 botmoves to the TUI exclusively.
operatorGoalReflex; replacedhandleOperatorChatwith adialog-only
handleChatthat answers greetings/status (en + ru) and recordscommand-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.
MC_VERSIONis nowauto— mineflayer auto-detects fromthe server handshake (the PRD-mandated default). Hard pinning still works
if
.envoverrides it.reflect the pivot. Legacy operator-chat command surface marked superseded.
Test plan
node --checkpasses on all touched runtime filesruntime/config.jsloads cleanly and reports the resolved versionoperatorGoal/handleOperatorChat/maybeReplyToPlayer/operator-goaloutside the new dialog handler<bot> come,<bot> pause,<bot> stopfrom MC chat and replies once with the dialog-only notice
p/shotkeys still pause/stop the botMC_VERSION=autosucceeds againstthe configured server
🤖 Generated with Claude Code