ForgeFX · ForgeBot Slack Skill

Slack test coverage is expanded; live credentials are not available to this shell.

I added a channel message-count method and tests for credentials, core read methods, context-thread access, channel membership, and the total visible message count for C0AKU5KQ8SW. Contract tests pass. Live Slack API tests fail at the credential gate because the current terminal session cannot access a Slack token and Doppler is not authenticated.

Contract tests
5 / 5

Read-only helper behavior passes, including the new pagination-based message-count contract.

Scaffold test
1 / 1

The Vitest scaffold check passes when run with the correct Vitest runner.

Live Slack tests
0 / 9

Every live read test stops at the same root cause: no usable Slack token in this shell and Doppler reports no token.

What changed

AreaResultFiles
Message countAdded countChannelMessages(), paginating conversations.history until Slack returns no cursor..forgebot/skills/slack/scripts/legacy/slack-readonly.ts
CLI commandAdded slack-readonly count <channel-id> to print totalMessages..forgebot/skills/slack/scripts/legacy/slack-readonly.ts
Contract testAdded a fake-fetch pagination test proving the method totals messages across multiple pages and sends the default channel ID..forgebot/skills/slack/tests/legacy/slack-readonly-contract.test.ts
Live testsExpanded live tests for token presence, auth.test, users.info, conversations.info, conversations.history, conversations.replies, conversations.members, message count, and channel search..forgebot/skills/slack/tests/legacy/slack-readonly-live.test.ts

Commands run

pnpm exec tsx --test .forgebot/skills/slack/tests/legacy/slack-readonly-contract.test.ts
# PASS: 5 tests

doppler run --project forgeapps --config prd -- pnpm exec tsx --test .forgebot/skills/slack/tests/legacy/slack-readonly-live.test.ts
# FAIL: Doppler Error: you must provide a token

pnpm exec tsx --test .forgebot/skills/slack/tests/legacy/slack-readonly-live.test.ts
# FAIL: Missing Slack token

pnpm exec vitest run .forgebot/skills/slack/tests/check-skill.test.ts
# PASS: 1 test

Restart answer

  • Slack desktop: no. Restarting Slack.app will not change a bot token or app scopes.
  • forgebot-mini host: no, not for normal credential/scope refresh.
  • Hermes gateway: yes, after Doppler secrets, Slack app tokens, launchd plist wiring, or Hermes Slack config changes. The running gateway reads its environment at process start.
  • Slack app permissions: after changing scopes, reinstall/reauthorize the Slack app, then restart the Hermes gateway so it uses the new token/scope set.

Current blocker

The checked runtime has a running com.forgefx.hermes-gateway launch agent, but the loaded plist is not the Doppler-backed com.forgefx.hermes-doppler service. The shell also cannot authenticate Doppler. That explains why repo live tests cannot pull Slack credentials even though this Slack conversation can still route through the gateway.