
jason.woltjeandClaude Opus 4.5
a2cd614e87
feat(#166): Implement Stitcher module structure
Created the mosaic-stitcher module - the workflow orchestration layer
that wraps OpenClaw.
Responsibilities:
- Receive webhooks from @mosaic bot
- Apply Guard Rails (capability permissions)
- Apply Quality Rails (mandatory gates)
- Track all job steps and events
- Dispatch work to OpenClaw with constraints
Implementation:
- StitcherModule: Module definition with PrismaModule and BullMqModule
- StitcherService: Core orchestration logic
- handleWebhook(): Process webhooks from @mosaic bot
- dispatchJob(): Create RunnerJob and dispatch to BullMQ queue
- applyGuardRails(): Check capability permissions for agent profiles
- applyQualityRails(): Determine mandatory gates for job types
- trackJobEvent(): Log events to database for audit trail
- StitcherController: HTTP endpoints
- POST /stitcher/webhook: Webhook receiver
- POST /stitcher/dispatch: Manual job dispatch
- DTOs and interfaces for type safety
TDD Process:
1. RED: Created failing tests (12 tests)
2. GREEN: Implemented minimal code to pass tests
3. REFACTOR: Fixed TypeScript strict mode issues
Quality Gates: ALL PASS
- Typecheck: PASS
- Lint: PASS
- Build: PASS
- Tests: PASS (12/12)
Token estimate: ~56,000 tokens
Co-Authored-By: Claude Opus 4.5 <[email protected]>
2026-02-01 21:08:32 -06:00
..
2026-02-01 01:48:09 -06:00
2026-01-30 18:26:41 -06:00
2026-01-31 18:11:32 -06:00
2026-01-31 16:50:32 -06:00
2026-02-01 21:01:25 -06:00
2026-01-31 10:37:14 -06:00
2026-01-31 13:44:23 -06:00
2026-01-31 13:51:46 -06:00
2026-01-31 10:37:14 -06:00
2026-01-30 18:26:41 -06:00
2026-01-31 01:01:21 -06:00
2026-01-31 01:01:21 -06:00
2026-01-28 15:07:04 -06:00
2026-01-30 20:39:03 -06:00
2026-01-31 01:01:21 -06:00
2026-01-30 20:39:03 -06:00
2026-01-30 18:26:41 -06:00
2026-01-31 15:01:18 -06:00
2026-01-31 13:07:58 -06:00
2026-01-30 18:26:41 -06:00
2026-01-31 12:44:50 -06:00
2026-01-30 20:39:03 -06:00
2026-01-31 01:01:21 -06:00
2026-01-31 13:33:04 -06:00
2026-01-31 14:47:59 -06:00
2026-01-31 14:01:42 -06:00
2026-02-01 21:08:32 -06:00
2026-01-31 01:01:21 -06:00
2026-01-31 12:55:11 -06:00
2026-01-31 15:01:18 -06:00
2026-01-30 18:26:41 -06:00
2026-01-30 20:39:03 -06:00
2026-01-30 20:39:03 -06:00
2026-01-30 20:39:03 -06:00
2026-02-01 01:48:09 -06:00
2026-01-28 16:24:25 -06:00
2026-01-30 18:26:41 -06:00
2026-02-01 21:08:32 -06:00
2026-01-28 13:31:33 -06:00
2026-01-29 12:29:21 -06:00