Bootstrap Core v1 infrastructure and AI Operator docs - #1
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 965791bc27
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| echo '### DOCKER PS'; docker ps --format 'table {{.Names}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}' || true | ||
| echo '### DOCKER COMPOSE FILES'; find /opt /srv ~ -maxdepth 4 \( -name 'docker-compose.yml' -o -name 'compose.yml' \) 2>/dev/null || true | ||
| echo '### PM2 LIST'; pm2 list || true | ||
| echo '### PM2 SAVE'; pm2 save --force 2>/dev/null || true |
There was a problem hiding this comment.
Avoid writing PM2 state during read-only audit
This runbook is explicitly scoped as a read-only audit, but pm2 save --force writes the currently running PM2 process list to disk; PM2’s own docs describe pm2 save as saving the process list in hard disk memory into $HOME/.pm2/dump.pm2 for later resurrect/startup. If an operator runs this on a server where PM2’s saved list intentionally differs from the current runtime, the audit can overwrite that boot/resurrection state and change what restarts after reboot. Use a read-only command such as pm2 list, pm2 jlist, or pm2 prettylist instead.
Useful? React with 👍 / 👎.
| else if entity.isGroup || entity.isSupergroup -> GROUPS | ||
| else if entity.isInternalEpicStar -> EPIC_STAR |
There was a problem hiding this comment.
Classify internal chats before generic groups
With this ordering, any internal EPIC_STAR control chat that is implemented as a Telegram group/supergroup is classified as GROUPS before isInternalEpicStar is ever checked, so the EPIC_STAR folder and control-plane handling described just below will be skipped for those chats. Move the EPIC_STAR predicate ahead of the generic channel/group checks, or make those checks exclude internal EPIC_STAR entities.
Useful? React with 👍 / 👎.
Summary
Adds the first canonical documentation and configuration bootstrap for EPIC GRAM AI Operator:
docs/core/AI_Media_Operator_Core.md— Core v1.0 system prompt and operating layers.docs/infra/INFRASTRUCTURE_MAP.md— initial server/domain/repo inventory and verification checklist.docs/runbooks/LOCAL_UBUNTU_AUDIT.md— read-only audit procedure for the local Ubuntu virtual server.configs/project.example.yaml— project instance template for one Core / many project configs.docs/telegram/EPIC_GRAM_AI_OPERATOR_DEBUG.md— Telegram client AI Operator debug/demo plan.docs/claude/CLAUDE_NEXT_PROMPT.md— next implementation prompt for Claude/Codex/Antigravity.Safety boundary
This PR intentionally contains documentation/config scaffolding only. It does not add live Telegram automation, account actions, hidden sessions, auth bypass, credential capture, scraping, spam, or mass account creation.
Next implementation target
P0 after merge:
/ai/suggestmock contract.Local Ubuntu first
Before deployment, run
docs/runbooks/LOCAL_UBUNTU_AUDIT.mdand updatedocs/infra/INFRASTRUCTURE_MAP.mdwith verified facts only.