Skip to content

Releases

v0.7.0: Set it up with your AI agent

Choose a tag to compare

@github-actions github-actions released this 08 Nov 07:17

You can now give this repo's link to an AI agent and it sets everything up. You only log in, click Allow, and paste three values from Meta into a private page on your own computer.

Warning

Upgrading from 0.6.0

Nothing to do for a running copy. npm run update brings in the new setup tooling. Your secrets and data don't change.

Added

  • SETUP-WITH-AI.md, a playbook any agent (Claude Code, Codex, Cursor, Gemini CLI) follows, from the repo link to a first DM. It explains each step to a non-technical person and says exactly where to stop for them.
  • npm run setup:agent, the agent-run version of setup:
    • It runs wrangler login itself if needed.
    • It never prints a secret, and never reads one from the terminal.
    • It prints ACTION REQUIRED, WAITING and a final SETUP_RESULT JSON line for the agent, listing what's left to do.
  • A private setup page, served on 127.0.0.1 at a random path and opened in your browser.
    • You paste your Meta values there, and they go straight to wrangler secret put.
    • It shows progress, then your dashboard link with Copy and Open buttons.
  • Setup now subscribes a Unified login app to Instagram comment webhooks through Meta's API, so there's no webhook screen to fill in and no verify token to paste. It also fills in the app's privacy policy and terms URLs where Meta allows it.

Full notes: https://hemang-doshi.github.io/ig-comment-dm/docs/changelog/#v0-7-0

v0.6.0: Unified login and the dashboard

Choose a tag to compare

@github-actions github-actions released this 08 Nov 06:39

Meta apps created since late October 2026 can only use Unified login, and this release supports it. It also adds a dashboard app that says exactly why any comment didn't get its DM, and a queue that keeps working through Meta's hourly app limit instead of giving up.

Warning

Upgrading from 0.5.0

  • Run npm run update, or npm run deploy after pulling. Migration 012 adds the comment text and post to each send, so Activity can show what people wrote.
  • Deploys now build the dashboard first (npm run build:web), because wrangler.toml serves it from web/dist. A plain npx wrangler deploy on a fresh clone fails until you've built it once.
  • Logging in now lands on the dashboard. Set DASHBOARD to anything but on in wrangler.toml to keep the classic pages.
  • Copies on Instagram Login need nothing else. To move a new Meta app to Unified login, see Unified login.

Added

  • Unified login: Facebook Login for Business with a configuration id, switched on by the META_LOGIN_CONFIG_ID secret. It gives system-user tokens that don't expire, uses graph.facebook.com, and finds the connected account from /me/assigned_instagram_accounts. npm run setup asks which login your app uses.
  • The dashboard at /a/<secret>/app: Overview, Activity, Automations and Settings. It has a live phone preview in the editor, a ⌘K palette, keyboard shortcuts, light and dark themes, and a phone layout. Its JSON API at /a/<secret>/api needs a session and a CSRF token for every change.
  • Exact reasons for every DM that didn't go, taken from Meta's real answer: already answered by another tool, user can't be found, comment deleted, rate-limited and more. Each comes with what to do and the error code.
  • Automatic re-checks for unconfirmed DMs, up to 3, ten minutes apart. A re-check can't double-send, because Instagram refuses a second private reply, so a refusal of that kind confirms the first one arrived.
  • Meta's X-App-Usage and X-Business-Use-Case-Usage headers are logged on every Graph call.

Changed

  • Meta's app-wide rate limit (error code 4) no longer uses up a comment's tries. The comment waits for the 15-minute pause, then goes out. Before, a busy hour could make the bot give up on a commenter for good.
  • The queue sends the newest comments first, so someone who just commented doesn't wait behind a backlog. Comments within a day of Instagram's 7-day limit still go first of all.
  • "Already has a reply" refusals are shown as Answered earlier, not as failures, and are left out of problem counts.

Full notes: https://hemang-doshi.github.io/ig-comment-dm/docs/changelog/#v0-6-0