fix(deps): bump axios to >=1.15.0 (Dependabot #29, #30)#1313
fix(deps): bump axios to >=1.15.0 (Dependabot #29, #30)#1313ibuildthings-instrumentl wants to merge 15 commits intocoleam00:devfrom
Conversation
- Added a new configuration option to copy local .env files into isolated worktrees for Scout MCP compatibility. - Removed outdated note regarding Claude Code binary path from setup documentation. - Renumbered subsequent steps in the setup guide for clarity.
Update Archon configuration and setup documentation
Add design for a Slack @archie bot flow that takes a natural-language feature request end-to-end: interactive spec with bounded revision loop, plan, implement in worktree, open PR, bounded review loop, wait for CI, trigger review-app deploy, post URL back to the thread. Composes existing Archon commands plus three small helper scripts; no adapter changes required. Made-with: Cursor
Bite-sized tasks covering 3 helper scripts, the workflow YAML, bundled- defaults registration, pre-PR validation, and a manual smoke-test checklist. Noted divergences from the design doc: code-review rounds are unrolled explicitly, reviewApp config is hardcoded for v1, and per-script unit tests are dropped in favor of workflow-level parsing plus manual smoke test. Made-with: Cursor
Wraps gh workflow run for review-app deployment; exits non-zero with a clear message on dispatch failure. Used by archon-slack-feature-to-review-app. Note: written as .js (not .ts as originally planned) to match the existing .archon/scripts/echo-args.js pattern and avoid the typed-linting scope gap for .archon/scripts/**/*.ts. Made-with: Cursor
Wraps gh pr checks --watch --fail-fast with a wall-clock timeout so the workflow can't hang indefinitely. Exit codes distinguish pass/fail/timeout. Note: written as .js (not .ts as originally planned) for the same reason as dispatch-review-app.js. Made-with: Cursor
Polls gh pr view --json comments for a URL matching a caller-supplied regex; prints the URL on stdout, errors on stderr so the workflow engine captures only the URL via \$nodeId.output. Note: written as .js (not .ts as originally planned) for the same reason as dispatch-review-app.js. Made-with: Cursor
End-to-end workflow for Slack @archie feature requests: interactive spec creation (bounded 3-iteration revision loop), plan + implement + PR using existing commands, two-round code review with conditional second pass, CI wait, review-app dispatch, URL fetch from PR comments, and final post back to the Slack thread. Composes existing commands; adds no new adapter or orchestrator code. Script invocations use .js extensions per the Tasks 1-3 divergence. Made-with: Cursor
Adds the text import + map entry so binary builds include the workflow. Bumps the bundled-workflow count assertion from 13 to 14 and adds the workflow to the expected-names list. Made-with: Cursor
Insert an interactive refine-plan loop between create-plan and plan-setup, mirroring the existing spec-approval gate and the pattern used by archon-scout-perf-roadmap. The loop posts a condensed plan summary in-thread, accepts feedback that edits $ARTIFACTS_DIR/plan.md in place, and only proceeds to plan-setup on explicit "approved" / "looks good" / "ship it" / "go". Bounded at max_iterations: 5. Rationale: previously the workflow jumped straight from plan creation into implementation, giving the user no chance to reshape scope, ordering, or task list before code gets written. This symmetrizes the gating with Phase A and matches how other plan-driven workflows behave. Made-with: Cursor
Interactive-loop gate messages now render Approve (primary) and Request
changes buttons in Slack; clicking Approve resumes the paused workflow,
while Request changes opens a modal with a feedback textarea whose
submission is synthesized into the gate thread.
- packages/core: add optional `interactiveGate` to MessageMetadata.
- packages/workflows: dag-executor gate-send passes runId + nodeId via
the new metadata field so adapters can bind actions per run.
- packages/adapters/slack: sendMessage renders an actions block on the
final chunk when the gate metadata is present; Bolt action + view
handlers synthesize message events that reuse the existing
natural-language approval path in handleMessage, so no new server
wiring is required.
- Fallback path: adapters without rich input ignore the metadata; the
text body still includes the `/workflow approve <uuid>` instructions.
Tests:
- 3 new Slack adapter tests asserting the actions block, action_ids,
and that buttons attach only to the final chunk of long messages.
- 1 extra assertion on the dag-executor interactive-loop test verifying
the gate-send carries { runId, nodeId } metadata.
Made-with: Cursor
feat: @archie Slack feature-to-review-app workflow
feat(slack): Block Kit approve + request-changes UI for workflow loop gates
When a user @mentions or DMs Archon, the bot now posts an 👀 reaction on the incoming message the moment it's received -- before thread-history fetch, lock acquisition, planner warm-up, or first LLM token. This eliminates the awkward silent gap between "user hit send" and "bot responds" for long-running workflows. - SlackAdapter.acknowledgeReceipt(event) calls reactions.add; swallows errors so a missing reactions:write scope just skips the reaction instead of blocking the conversation. - Server onMessage handler fires the ack right after auth/stripBotMention with void (fire-and-forget) so the reaction round-trip never delays orchestration. - reactions:write added to the Starlight docs, skill guide, and CLI setup prompt as an optional scope. - Three adapter tests cover the happy path, missing-scope failure, and already_reacted replay case. Made-with: Cursor
feat(slack): ack incoming messages with 👀 reaction
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (27)
📝 WalkthroughWalkthroughAdds a comprehensive Scout APM performance profiling workflow, Slack feature-request-to-review-app flow, interactive approval gates, and supporting infrastructure. Includes new Archon command/workflow definitions, helper scripts for CI/review-app coordination, Slack adapter enhancements for message reactions and gate UI, configuration updates, and documentation. Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant Slack
participant Server as Archon Server
participant Workflows as Workflow Engine
participant Git as GitHub/Git
participant CI as GitHub Actions
participant ReviewApp as Review App Service
User->>Slack: Post feature request in thread (mention `@archie`)
Slack->>Server: Route mention event
Server->>Server: acknowledgeReceipt() → post :eyes: reaction
Server->>Workflows: Trigger slack-feature-to-review-app workflow
Workflows->>Workflows: Phase A: Iterative spec draft (≤3 revisions)
loop Spec Refinement (until approval)
Workflows->>Slack: Send spec with gate (Approve/Request changes buttons)
Slack->>User: Render interactive buttons
User->>Slack: Click Approve or Request changes
Slack->>Server: action/view submission
Server->>Workflows: Dispatch synthetic approval/feedback message
Workflows->>Workflows: Update spec, re-prompt if needed
end
Workflows->>Workflows: Phase B: Generate & refine implementation plan (≤15 iterations)
loop Plan Refinement (until PLAN_APPROVED)
Workflows->>Slack: Send plan with gate
Slack->>User: Render Approve/Request buttons
User->>Slack: Approve or request changes
Slack->>Server: action submission
Server->>Workflows: Synthetic approval message
end
Workflows->>Workflows: Phase C: Setup worktree, implement tasks, validate locally
Workflows->>Git: Create draft PR
Workflows->>Slack: Post PR URL to thread
Workflows->>Workflows: Phase D: Round 1 code review (parallel agents)
Workflows->>Workflows: Synthesize review findings
alt Review findings exist
Workflows->>Workflows: Apply automated fixes
Workflows->>Workflows: Round 2 code review (re-run agents)
Workflows->>Workflows: Verify convergence
end
Workflows->>CI: Extract PR number, watch CI checks
loop CI Poll (≤60 min timeout)
CI-->>Workflows: Check status
end
Workflows->>GitHub: Dispatch review-app deployment (gh workflow run)
GitHub->>ReviewApp: Deploy PR head branch
Workflows->>Git: Poll PR comments for review-app URL (regex match)
Git-->>Workflows: Fetch and parse comments
Workflows->>Slack: Post final thread message (PR URL + review-app URL + metrics)
Slack->>User: Render completion summary
sequenceDiagram
participant DAG as Workflow (scout-perf-roadmap)
participant Scout as Scout MCP Server
participant Codebase as Local Codebase
participant Artifacts as Artifacts Directory
DAG->>Scout: discover-routes: Query slow/high-traffic endpoints
Scout-->>DAG: Return ranked routes (≤10)
DAG->>Artifacts: Write routes.json, routes-summary.md
par Profile Phase (10 parallel nodes)
DAG->>Scout: profile-00: Fetch endpoint metrics & traces
DAG->>Codebase: Inspect code & CLAUDE.md for context
DAG->>Artifacts: Write profile-00.md with root-cause analysis
and
DAG->>Scout: profile-01: Fetch endpoint metrics & traces
DAG->>Codebase: Inspect code & CLAUDE.md
DAG->>Artifacts: Write profile-01.md
and
DAG->>Scout: profile-09: (repeat pattern)
DAG->>Codebase: Inspect code
DAG->>Artifacts: Write profile-09.md
end
DAG->>Artifacts: consolidate-perf-plan: Read all routes + profiles
DAG->>DAG: Merge findings, deduplicate tasks, order by dependency
DAG->>Artifacts: Write plan.md (summary, mission, task list, risks)
loop Interactive Review (≤15 iterations)
DAG->>DAG: refine-plan: Read plan.md, prompt user
DAG->>User: Send gate-enabled message (Approve/Request changes)
User-->>DAG: Approve or provide feedback
DAG->>DAG: Update plan if feedback received
end
DAG->>DAG: archon-plan-setup, archon-confirm-plan
DAG->>DAG: archon-implement-tasks: Execute task implementations
DAG->>DAG: archon-validate: Verify changes
DAG->>Git: create-draft-pr: Push changes, open PR
DAG->>DAG: Multi-agent PR review, fixes, simplification
DAG->>DAG: mark-pr-ready: Final validation, mark ready-for-review
Estimated Code Review Effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly Related PRs
Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
axiospackageaxiosis a transitive dependency pulled in by@slack/boltand@slack/web-api"axios": "^1.15.0"to theoverridesfield in rootpackage.jsonto force all transitive resolutions to the patched versionVulnerabilities Fixed
Test plan
bun installcompletes successfully🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation
reactions:writepermission.