- dm.py: placement-aware verify (verify_placement), checked_uuid logging, placement_mismatch events - main-chat-watchdog.py: P0 alerts on placement_mismatch - box-ctl.py: notify routes to sidechat, box policy command - jobs: ops-audit and pipe-demo use sidechats - response-harvester.py: chain deduplication Session: sidechat/ops-restore
4.8 KiB
NetVM Agent Chat Policy: Main Chat Preservation
Status: ACTIVE POLICY (Mandatory across all fleet automation, jobs, and operator tooling)
Date: 2026-10-04
Version: 2.0
Applies to: All autonomous agents (muse, pip, 646, opm), scheduled jobs (super job), orchestrator tooling (super dm, dm.py), and human operators.
1. The Core Principle: Main Chat Is Sacred
Rule: Avoid using Main Chat whenever possible.
When Main Chat gets bogged down with automated entries, scheduled job triggers, log dumps, or inter-agent chatter, work stops actually getting done. Browser DOM virtualizers lag or crash, context windows saturate with noisy outputs, and the agent's attention drifts away from primary operator directives.
Main Chat is reserved exclusively for high-level human operator oversight, urgent human-visible escalations, and direct operator conversational alignment.
2. Channel Segregation Rules
Rule A: Scheduled Jobs MUST Target Dedicated Sidechats
- Never configure a routine scheduled job (e.g., cron checks, health monitors, heartbeats, periodic scrapes) to deliver to
main. - Every job definition in
jobs/<name>.jsonmust explicitly specify:"dm_target": "<sidechat-name-or-uuid>"OR"sidechat": { "create": true, "name_template": "...", "reuse_key": "..." }
- Any job found dumping routine health outputs or telemetry into
mainmust be immediately migrated to a dedicated sidechat.
Rule B: Inter-Agent Communication Runs via Sidechats / Side Agents
- Autonomous agents communicating with one another (e.g.,
646↔pip,opm↔646) must use dedicated coordination sidechats (e.g.646-pip-coord,646-opm-coord,646 tasks). - Do not route peer coordination or sub-task requests through an agent's Main Chat.
- Subordinate or delegated tasks should be spun off to side agents or sidechats to isolate the conversation state and prevent main thread contamination.
Rule C: Large Payloads Transferred via File System, Not Chat
- Do not dump multi-kilobyte log extracts, raw HTTP responses, table dumps, or diffs into any chat window.
- Payloads must be written to disk on
blor the VM (e.g. in/home/super/Projects/NetVM/logs/or/srv/box/) and referenced via short path / pointer in the message:- ✅ Good:
[RESULT 12345] Health check completed. 6/6 endpoints OK. Detailed breakdown saved to logs/http-health-20261004.log - ❌ Forbidden: Pasting 200 lines of raw curl outputs or JSON logs into chat.
- ✅ Good:
Rule D: Operator CLI (super dm) Enforces Sidechat-First Flow
- Interactive conversational sessions (
super dm chat <agent>) prompt for or default to sidechats and issue an explicit policy warning whenever Main Chat is selected. - When dispatching one-off DMs via
super dm sendorsuper dm wo, operators must prefer--target "<sidechat>"over--target main.
3. Fleet Addressing Directory
| Target | Agent | Purpose | Policy Tier |
|---|---|---|---|
main |
All (muse, pip, 646, opm) |
Direct human-to-operator urgent interventions only | Restricted / Minimal |
heartbeat |
opm |
Automated DM pipeline heartbeat verification | Sidechat Required |
646 tasks |
646 |
Daily check-ins, execution health, operator tasks | Sidechat Required |
646-pip-coord |
pip / 646 |
Peer coordination between pip and 646 | Sidechat Required |
646-opm-coord |
opm / 646 |
Peer coordination between opm and 646 | Sidechat Required |
4. Violations & Enforcement
- Dispatcher Guard: Scheduled jobs with
schedule != "manual"and nodm_targetorsidechatconfiguration will be audited and retrofitted with dedicated sidechat targets. - Review Checklist: Any PR, skill, rule, or script introducing automated messages must verify that output lands in a sidechat or log file, never in Main Chat.
5. Changelog
v2.0 — 2026-10-04: Sidechat-only enforcement
- New rule: No DM lands in Main Chat unless explicitly authorized.
dm.py send/job-dispatch.pyrefuse--target mainwithout--allow-main-chat(exit 2,main_chat_blockedlog event, before any browser navigation). Job JSON opt-in key:"allow_main_chat": true. - Watcher:
main-chat-watchdog.py(every 5 min) classifies dm-log events into blocked/ authorized / violation. - Triage:
docs/SIDECHAT-POLICY-TRIAGE.md`— where to look first on failure. - Fix:
SIDCHAT_ALIASES["heartbeat"]de-collided — was pointing at 646's tasks thread (1e75a740-...); now points at the dedicated heartbeat sidechat (0077e918-..., reuse_keyheartbeat-opminjob-sidechats.json).
v1.0 — 2026-10-04: Initial policy
- Main Chat preservation: scheduled jobs and inter-agent communication must use dedicated sidechats.
- Fleet addressing directory established.