You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Critical:
- Declare @archon/workflows as an explicit workspace dep on @archon/adapters
(same class of fix as the providers one). Resolves today via hoisting but
breaks under stricter installs.
- Split workflow-bridge.test.ts into its own bun test invocation so its
irreversible mock.module() calls on @archon/core and
@archon/workflows/event-emitter cannot leak into the slack/telegram
batch.
- Fix "trailing-edge" debounce comments — the implementation is
leading-edge. Document the Slack chat.update rate limit as the 500ms
rationale.
Important:
- Wire slackBridge.detach() into the server graceful shutdown path so the
event subscription doesn't leak and a pending chat.update can't fire
against a closed Bolt socket.
- Drop dead `comment` plumbing through handleApprovalDecision /
applyResolutionEdit / buildApprovalResolutionBlocks — Block Kit buttons
have no UI to capture it.
- Widen the action-handler try/catch to also cover applyResolutionEdit so
block-builder or chat.update failures don't bubble as unhandled
rejections.
- Cancel-click with missing run state now logs and posts an ephemeral
acknowledgement (using the button message's channel/ts) so the user
isn't left wondering whether the click registered.
- Use Bolt's BlockButtonAction / ButtonAction types directly on the
app.action() registrations instead of the ad-hoc ActionBody /
ActionElement aliases.
Test coverage:
- Slash command silent-rejection of unauthorized users.
- triggeringMessages 1000-entry FIFO eviction at the cap boundary.
- Slash command seed-post failure → ephemeral error + handler not called.
- Single-chunk message path skips the _part i/n_ footer.
- rejectWorkflow → { cancelled: true, maxAttemptsReached: true } branch.
Docs:
- architecture.md IPlatformAdapter listing includes sendResultFooter.
- approval-nodes.md mentions the Slack in-thread Approve button.
- CLAUDE.md test-isolation batch count for @archon/adapters updated to 6
(was 3 — pre-existing drift, now also accounts for workflow-bridge).
Polish:
- removeReactionSafe gets the same intentional-fallback comment as
addReactionSafe (no_reaction is a normal terminal-state interleave).
- IPlatformAdapter.sendResultFooter signature uses TokenUsage directly.
- Drop "for v1" tag on the unhandled-event comment.
- Remove what-comments from blocks.ts / blocks.test.ts / adapter.ts.
Copy file name to clipboardExpand all lines: CLAUDE.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -130,7 +130,7 @@ bun test --watch # Watch mode (single package)
130
130
bun test packages/core/src/handlers/command-handler.test.ts # Single file
131
131
```
132
132
133
-
**Test isolation (mock.module pollution):** Bun's `mock.module()` permanently replaces modules in the process-wide cache — `mock.restore()` does NOT undo it ([oven-sh/bun#7823](https://github.com/oven-sh/bun/issues/7823)). To prevent cross-file pollution, packages that have conflicting `mock.module()` calls split their tests into separate `bun test` invocations: `@archon/core` (7 batches), `@archon/workflows` (5), `@archon/adapters` (3), `@archon/isolation` (3). See each package's `package.json` for the exact splits.
133
+
**Test isolation (mock.module pollution):** Bun's `mock.module()` permanently replaces modules in the process-wide cache — `mock.restore()` does NOT undo it ([oven-sh/bun#7823](https://github.com/oven-sh/bun/issues/7823)). To prevent cross-file pollution, packages that have conflicting `mock.module()` calls split their tests into separate `bun test` invocations: `@archon/core` (7 batches), `@archon/workflows` (5), `@archon/adapters` (6), `@archon/isolation` (3). See each package's `package.json` for the exact splits.
134
134
135
135
**Do NOT run `bun test` from the repo root** — it discovers all test files across all packages and runs them in one process, causing ~135 mock pollution failures. Always use `bun run test` (which uses `bun --filter '*' test` for per-package isolation).
"test": "bun test src/chat/ src/community/chat/ src/community/forge/gitlab/auth.test.ts src/forge/github/auth.test.ts src/utils/ && bun test src/forge/github/adapter.test.ts && bun test src/forge/github/context.test.ts && bun test src/community/forge/gitea/adapter.test.ts && bun test src/community/forge/gitlab/adapter.test.ts",
14
+
"test": "bun test src/chat/slack/adapter.test.ts src/chat/slack/auth.test.ts src/chat/slack/blocks.test.ts src/chat/telegram/ src/community/chat/ src/community/forge/gitlab/auth.test.ts src/forge/github/auth.test.ts src/utils/ && bun test src/chat/slack/workflow-bridge.test.ts && bun test src/forge/github/adapter.test.ts && bun test src/forge/github/context.test.ts && bun test src/community/forge/gitea/adapter.test.ts && bun test src/community/forge/gitlab/adapter.test.ts",
0 commit comments