learning_ai_common_plat/services
saravanakumardb1 dda74c2d20 feat(cowork-service): POST /api/plugins/reload
Hot-reload the orchestrator's on-disk plugin registry without a
restart. Routes to the reload_plugins Rust IPC method, gated by the
same authz the orchestrator enforces (admin role OR platform-signed
JWT) so a forbidden caller gets a canonical ForbiddenError envelope
instead of a raw IPC error passthrough. The response body is a
ReloadStats { loaded, added, removed, updated, errors } summary,
validated against ReloadResponseSchema before being returned to the
caller.

Tests cover: admin success (200 + envelope), user-without-platform
(403 before IPC), bridge unavailable (400), orchestrator -32003 →
ForbiddenError, other IPC errors → BadRequestError, malformed
orchestrator payloads → BadRequestError.

Phase: 3.1
Verified: pnpm -r typecheck, pnpm --filter @lysnrai/cowork-service {lint,build,test}
(140 passed, 6 new reload tests)
2026-04-16 15:45:42 -07:00
..
cowork-service feat(cowork-service): POST /api/plugins/reload 2026-04-16 15:45:42 -07:00
extraction-service fix(lint): repair pre-existing baseline lint errors blocking W1 gates 2026-04-16 13:06:37 -07:00
mcp-server fix(mcp): align ChronoMind type enums with actual backend schema 2026-03-31 23:57:24 -07:00
monitoring feat(observability): add phase 2 monitoring and valkey services 2026-03-31 06:57:12 +00:00
platform-service fix(lint): repair pre-existing baseline lint errors blocking W1 gates 2026-04-16 13:06:37 -07:00