# CORE-002 — application route uniqueness verification Date: 2026-08-02 ## Result `IMPLEMENTED — NOT VERIFIED`. Backend route ambiguity and tenant behavior are verified locally. Browser and production checks remain. ## Contract | Method/path | Single owner | Response purpose | |---|---|---| | `GET /api/jobapplications/{id}/timeline` | `ApplicationIntelligenceController` | grouped/filterable application timeline | | `GET /api/jobapplications/{id}/interview-prep` | `InterviewPrepController` | editable durable interview-prep board | | `GET /api/jobapplications/{id}/interview-prep/brief` | `JobApplicationsController` | cached generated brief with attachment context and explicit refresh | The unused legacy flat timeline action/DTO were deleted. The generated brief moved because both interview representations are live and intentionally incompatible; neither was silently discarded or overloaded by query parameters. ## Evidence - Reflection regression checks every public controller action and fails on duplicate normalized HTTP method/route pairs. - Focused backend timeline/interview/route suite: 31/31 passed. - Full backend: 511/511 passed. - Focused frontend route/timeline/interview suites: 21/21 passed. - Full frontend: 45 suites, 153/153 passed; production build passed. - Isolated SQLite HTTP matrix using synthetic users: | Path | Owner | Other user | Anonymous | |---|---:|---:|---:| | `/timeline` | 200 | 404 | 401 | | `/interview-prep` | 200 | 404 | 401 | | `/interview-prep/brief` | 200 | 404 | 401 | The exact isolated API process was stopped and port 5304 was confirmed closed. Logs are under `docs/audits/evidence/core-001-runtime/core-002.*.log`. ## Limitations - In-app browser localhost remains blocked by administrator policy, so direct/deep-link, Back/Forward and rendered-panel behavior is not claimed. - No production deployment or MariaDB HTTP smoke was performed. - The route move is an API contract change for undocumented direct consumers of the old generated-brief URL; repository callers and documentation are updated.