003-application-status-tracking #10

Merged
faicel merged 3 commits from 003-application-status-tracking into dev 2026-05-12 09:02:38 +00:00
Owner

[1.1.0-rc.0] - 2026-05-12

Added

  • Phase 6 - Status Tracking: Enforced pipeline transition validation and history.
    • StatusTransitionService with finite transition matrix, terminal-stage lock (ACCEPTED / REJECTED / WITHDRAWN), and same-status rejection.
    • Transactional orchestration in StatusHistoryService.applyStatusChange: validates transition, inserts history row, and persists currentStatus atomically.
    • Initial history row seeded automatically on application creation (notes: "Application created").
    • @MaxLength(2000) validation on optional notes in CreateStatusHistoryDto.
    • GET /api/v1/applications/:applicationId/allowed-transitions — returns allowed target statuses for the current stage (empty for terminal stages).
    • Swagger documentation for status update error cases, transition matrix, and history ordering.
    • Unit tests for StatusTransitionService, transactional status apply, and initial history seeding.
    • E2E tests for illegal transitions, terminal lock, duplicate status, long notes, history order, cross-user denial, and status filter.

Changed

  • Refactored PATCH /applications/:id/status to use transactional service method instead of separate ApplicationsService.update workaround.
  • StatusHistoryModule now imports Application repository directly and registers StatusTransitionService.
  • ApplicationsModule and StatusHistoryModule use forwardRef to resolve circular dependency for initial history seeding.

[1.0.0-rc.10] - 2026-05-11

Added

  • Phase 6 (spec): Clarifications in specs/003-application-status-tracking/spec.md (2026-05-11): terminal lock; reject same-stage updates; status history list order newest first.
  • Phase 6 (spec): Feature specification and requirements checklist for application status tracking, transition validation, and history (specs/003-application-status-tracking/).
## [1.1.0-rc.0] - 2026-05-12 ### Added - **Phase 6 - Status Tracking**: Enforced pipeline transition validation and history. - `StatusTransitionService` with finite transition matrix, terminal-stage lock (ACCEPTED / REJECTED / WITHDRAWN), and same-status rejection. - Transactional orchestration in `StatusHistoryService.applyStatusChange`: validates transition, inserts history row, and persists `currentStatus` atomically. - Initial history row seeded automatically on application creation (`notes: "Application created"`). - `@MaxLength(2000)` validation on optional notes in `CreateStatusHistoryDto`. - `GET /api/v1/applications/:applicationId/allowed-transitions` — returns allowed target statuses for the current stage (empty for terminal stages). - Swagger documentation for status update error cases, transition matrix, and history ordering. - Unit tests for `StatusTransitionService`, transactional status apply, and initial history seeding. - E2E tests for illegal transitions, terminal lock, duplicate status, long notes, history order, cross-user denial, and status filter. ### Changed - Refactored `PATCH /applications/:id/status` to use transactional service method instead of separate `ApplicationsService.update` workaround. - `StatusHistoryModule` now imports `Application` repository directly and registers `StatusTransitionService`. - `ApplicationsModule` and `StatusHistoryModule` use `forwardRef` to resolve circular dependency for initial history seeding. ## [1.0.0-rc.10] - 2026-05-11 ### Added - **Phase 6 (spec)**: Clarifications in `specs/003-application-status-tracking/spec.md` (2026-05-11): terminal lock; reject same-stage updates; status history list order **newest first**. - **Phase 6 (spec)**: Feature specification and requirements checklist for application status tracking, transition validation, and history (`specs/003-application-status-tracking/`).
Co-authored-by: Cursor <cursoragent@cursor.com>
feat(status): implement transition validation, history seeding, and transition matrix endpoints
Some checks failed
Enforce branch flow / call-central-validation (pull_request) Successful in 2s
Enforce branch flow / lint-and-test (pull_request) Has been cancelled
4a1461e60e
- StatusTransitionService with finite transition matrix, terminal lock, same-status rejection
- Transactional applyStatusChange (validate + insert history + persist currentStatus)
- Initial history row seeded on application creation (FR-008)
- GET /applications/:id/allowed-transitions — per-application allowed targets
- PATCH /applications/:id/status — Swagger description exposes full transition matrix
- @MaxLength(2000) on optional notes, unit tests, E2E tests
- Version bump to 1.0.0-rc.11

Co-authored-by: Cursor <cursoragent@cursor.com>
Merge branch 'dev' into 003-application-status-tracking
All checks were successful
Enforce branch flow / call-central-validation (pull_request) Successful in 2s
Enforce branch flow / lint-and-test (pull_request) Successful in 1m2s
6f8a38781a
faicel deleted branch 003-application-status-tracking 2026-05-12 09:02:38 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
faicel/job_tracker_backend!10
No description provided.