Skip to content

007 delete rides#25

Merged
aligneddev merged 11 commits intomainfrom
007-delete-rides
Mar 30, 2026
Merged

007 delete rides#25
aligneddev merged 11 commits intomainfrom
007-delete-rides

Conversation

@aligneddev
Copy link
Copy Markdown
Owner

No description provided.

aligneddev added 11 commits March 30, 2026 14:42
…peckit.plan)

- plan.md: Implementation architecture, constitution checks pass
- research.md: 7 key technical decisions (event sourcing, idempotency, UX, projections, auth, state, errors)
- data-model.md: RideDeleted event, Ride aggregate transitions, read projections, API schema
- quickstart.md: Testing workflow, validation commands, acceptance criteria, debugging guide
- contracts/ride-delete-api.yaml: OpenAPI 3.0 DELETE endpoint spec
- contracts/ride-deleted-event.schema.json: Event schema

Next: speckit.tasks to generate actionable task list
…mplete)

120 actionable tasks organized by phase and user story:
- Phase 1: Environment verification (1 task)
- Phase 2: Contracts & Infrastructure review (4 tasks, [P] parallel)
- Phase 3: F# Domain layer (11 tasks, TDD red-green cycles)
- Phase 4: C# API layer (21 tasks, authorization + idempotency)
- Phase 5: React Frontend (22 tasks, dialog + integration)
- Phase 6: E2E Integration tests (5 tasks, [P] parallel)
- Phase 7: Polish & Verification (10 tasks, verification checklist)

Format compliance:
✓ Strict checkbox format: [ ] T### [P] [US#] Description + file path
✓ 17 [P] markers for parallel-safe tasks (60% time savings potential)
✓ 41 [US#] labels mapping to user stories
✓ TDD gated: Red tests before implementation on all major features
✓ Dependencies matrix with critical path and parallel opportunities

Ready for implementation execution.
T010-T011 (Event Payload): ✓ GREEN (4 tests)
- RideDeletedEventPayload.cs implemented
- Tests verify EventType, Source constants, Create method

T012-T013 (Delete Handler): ✓ GREEN (5 tests)
- DeleteRideHandler.cs implemented with:
  * Non-existent ride detection
  * Ownership verification (authorization)
  * Idempotent deletion
  * Outbox event creation
  * Logging

All 9 domain/handler tests passing. Ready for API layer (Phase 4).
…alidation

- Add RideDeleteDialog component + styles + tests
- Integrate delete action into HistoryPage and table row controls
- Add delete API client in ridesService with tests
- Add E2E delete history suite including cross-user forbidden scenario
- Update backend delete service for idempotent re-delete and immediate read-model removal
- Verify: frontend unit tests (66), backend tests (76), delete E2E (4), frontend build pass, lint pass
- Mark completed tasks in specs/007-delete-rides/tasks.md
- Mark all phases 1-6 tasks complete in tasks.md
- T115: Verify DELETE endpoint responding (401 on unauthenticated request)
- T116: Smoke test via E2E - all 4 delete scenarios pass (30.4s)
  - Basic delete flow with UI interaction
  - Cancel dialog flow
  - Idempotent delete with isIdempotent flag
  - Cross-user authorization (403 NOT_RIDE_OWNER)
- T117: Document 8 edge cases and known behaviors
  - Empty history, rapid deletes, offline handling, precision
  - Create docs/007-delete-rides-edge-cases.md
- T118: Verify all 9 acceptance criteria pass
  - Dialog confirmation, totals refresh, filtered ranges
- T119: Code review checklist complete
  - F# domain pure functions verified
  - C# API minimal style confirmed
  - React hooks with explicit types (no 'any')
  - TypeScript service with full error handling
  - TDD discipline followed throughout
  - Contracts and documentation in place

Implementation Status: ✅ COMPLETE
- 142 automated tests passing (66 frontend + 76 backend)
- 4/4 E2E scenarios verified
- All acceptance criteria met
- Code quality gates passed (eslint, stylelint, csharpier)
- Ready for PR review and merge
typescript-eslint@8.57.x requires typescript >=4.8.4 <6.0.0 but the
project uses typescript@6.0.2. Version 8.58.0 extends the peer range
to <6.1.0, allowing clean npm install without --legacy-peer-deps.
@aligneddev aligneddev merged commit 54b317a into main Mar 30, 2026
5 checks passed
@aligneddev aligneddev deleted the 007-delete-rides branch March 30, 2026 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant