v1.2.0 — Foundation Hardening
✨ Highlights
- Standardized API Response Envelope — All endpoints return a consistent
{success, data, meta}format with typed error classes - Abstract File Storage — Repository pattern decouples services from the filesystem
- Blocked Task Status — Full support for blocked tasks across MCP, CLI, and board
Added
Standardize API Response Envelope (#2)
- 4 new error classes:
UnauthorizedError,ForbiddenError,BadRequestError,InternalError(inmiddleware/error-handler.ts) sendPaginated(res, items, {page, limit, total})helper for pagination metadata in envelope- Response envelope format:
- Success:
{success: true, data, meta: {timestamp, requestId}} - Error:
{success: false, error: {code, message, details?}, meta} - Pagination:
metaincludes{page, limit, total, totalPages}on paginated endpoints
- Success:
Abstract File Storage (#6)
- 5 new repository interfaces:
ActivityRepository,TemplateRepository,StatusHistoryRepository,ManagedListRepository,TelemetryRepository StorageProviderextended with new repositoriesfs-helpers.ts— centralized filesystem access (only file that importsfs)
Blocked Task Status (#32)
- MCP tools Zod/JSON schema definitions updated for blocked status
- MCP active tasks filter updated to include blocked
- CLI help text updated
- CLI status color: blocked = red
Changed
- All 11 route files standardized — zero ad-hoc
{error: "..."}patterns - Auth middleware errors standardized to use typed error classes
- All 10 services migrated off direct
fsimports to usefs-helpers.ts
Full Changelog: v1.1.0...v1.2.0