Commit 9e1f7d6
feat: Slack frontend v2 with socket mode, workspace isolation, and improvements (#284)
* feat(slack): wire Slack frontend to real client (fetch-based) + test support\n- Add minimal SlackClient (no external deps) with chat.postMessage/update\n- SlackFrontend can auto-create client from SLACK_BOT_TOKEN or frontends[].config.botToken\n- Test runner: inject RecordingSlack when suite defaults enable frontends: ['slack'] and assert provider=slack ops\n- Extend defaults/visor.tests.yaml to enable Slack and add PR-stage assertions\n- Add unit tests for Slack frontend
* feat(slack): add Slack signature verification + URL verification handshake\n- verifySlackSignature helper and WebhookServer integration\n- handle Slack URL verification by echoing challenge\n- unit tests for signature verification
* feat(slack/socket): add --slack CLI option for Socket Mode + engine webhookContext plumbing\n- SlackSocketRunner uses apps.connections.open + ws to receive events\n- Reuse http_input via webhookContext injection for event payloads\n- CLI: --slack starts socket runner (config.slack.* optional)\n- Webhook server remains available for Events API mode (HMAC+challenge)\n- Unit tests for signature + Slack frontend intact
* feat(slack/cache): port thread-cache, rate-limiter, cache-prewarmer + adapter\n- Add SlackAdapter + ThreadCache and RateLimiter modules (trimmed)\n- Add CachePrewarmer and wire optional prewarm in Socket Mode\n- Add types/bot for NormalizedMessage and Slack config
* chore(task-refinement): add slack config version marker (slack.version: v1)
* feat(slack): state-machine pause/resume + socket chat example
* Improve Slack markdown formatting for AI replies
* feat: workspace isolation, Slack frontend improvements, and test fixes
- Add workspace isolation for parallel run separation
- Improve Slack frontend with better message threading
- Update probe to v0.6.0-rc189
- Add new test coverage for worktree manager, sandbox, and providers
- Fix YAML test mocks: add labels to issue-assistant, add project-status-fetch mock
- Fix deploy-loop routing by setting max_loops to 0
- Fix lint warnings for liquidjs imports
Co-Authored-By: Claude Opus 4.5 <[email protected]>
* chore: sync dist folder with latest main
Co-Authored-By: Claude Opus 4.5 <[email protected]>
* chore: reset dist folder to match main exactly
Remove all dist files that were added to this branch but don't exist in main.
This ensures the PR has zero dist changes vs upstream main.
Co-Authored-By: Claude Opus 4.5 <[email protected]>
* fix: resolve relative paths against workspace directory when enabled
When workspace isolation is enabled:
- http_client: relative output_file paths now resolve against workingDirectory
- command: commands now execute with cwd set to workingDirectory
This ensures file operations respect workspace boundaries instead of
using the original process.cwd().
Co-Authored-By: Claude Opus 4.5 <[email protected]>
* test: skip sandbox continue/break tests on Node < 22
The @nyariv/sandboxjs library doesn't support continue/break inside
if statements on Node versions below 22. Skip these tests conditionally.
Co-Authored-By: Claude Opus 4.5 <[email protected]>
---------
Co-authored-by: Claude Opus 4.5 <[email protected]>1 parent 02ba424 commit 9e1f7d6
File tree
74 files changed
+5439
-662
lines changed- defaults
- docs
- rfc
- examples
- patches
- src
- frontends
- generated
- providers
- slack
- state-machine
- context
- dispatch
- states
- telemetry
- test-runner
- core
- types
- utils
- tests
- frontends
- integration
- unit
- providers
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
74 files changed
+5439
-662
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
153 | 166 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
534 | 534 | | |
535 | 535 | | |
536 | 536 | | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
537 | 543 | | |
538 | 544 | | |
539 | 545 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
| 84 | + | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
435 | 435 | | |
436 | 436 | | |
437 | 437 | | |
| 438 | + | |
438 | 439 | | |
439 | 440 | | |
440 | 441 | | |
| |||
468 | 469 | | |
469 | 470 | | |
470 | 471 | | |
| 472 | + | |
471 | 473 | | |
472 | 474 | | |
473 | 475 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
29 | 88 | | |
30 | 89 | | |
31 | 90 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
321 | 321 | | |
322 | 322 | | |
323 | 323 | | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
324 | 470 | | |
325 | 471 | | |
326 | | - | |
327 | | - | |
| 472 | + | |
| 473 | + | |
328 | 474 | | |
0 commit comments