[frontend] change task URLs from /tasks/:id to /task/:slug/:number#38
[frontend] change task URLs from /tasks/:id to /task/:slug/:number#38capcom6 wants to merge 2 commits into
Conversation
|
Warning Review limit reached
Next review available in: 59 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (12)
📝 WalkthroughWalkthroughTask retrieval now supports project slug and sequential number identifiers. Frontend routes, navigation, task detail loading, editing, mutations, attachment handling, and recent-project parsing were updated to use the canonical task URL. ChangesCanonical task route migration
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant User
participant Frontend
participant TaskAPI
participant TaskService
User->>Frontend: Open /task/{slug}/{number}
Frontend->>TaskAPI: GET /tasks/{slug}/{number}
TaskAPI->>TaskService: GetByProjectAndNumber(slug, number)
TaskService-->>TaskAPI: Task details
TaskAPI-->>Frontend: TaskDetailsResponse
Frontend-->>User: Render task detail
Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🤖 Pull request artifacts
|
|
@coderabbitai full review |
✅ Action performedFull review finished. |
|
@coderabbitai full review |
✅ Action performedFull review finished. Your plan includes PR reviews subject to rate limits. More reviews will be available in 35 minutes. |
|
@coderabbitai full review |
✅ Action performedFull review finished. Your plan includes PR reviews subject to rate limits. More reviews will be available in 58 minutes. |
38ca146 to
2ce88f3
Compare
2ce88f3 to
63d96f4
Compare
|
@coderabbitai full review |
✅ Action performedFull review finished. Your plan includes PR reviews subject to rate limits. More reviews will be available in 57 minutes. |
|
@coderabbitai full review |
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
frontend/src/lib/pages/task-new.svelte (1)
61-61: 🎯 Functional Correctness | 🔵 Trivial | 💤 Low valueConsider URL-encoding the project slug in the navigate call.
parseProjectSlugFromPathinrecent-projects.svelte.tsusesdecodeURIComponenton the slug, implying slugs may contain encoded characters. UsingencodeURIComponenthere ensures round-trip consistency.♻️ Proposed refactor
- navigate(`/task/${task.project_slug}/${task.number}`); + navigate(`/task/${encodeURIComponent(task.project_slug)}/${task.number}`);🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@frontend/src/lib/pages/task-new.svelte` at line 61, URL-encode the project slug before constructing the task route in the navigation call. Update the navigate call in the task creation flow to wrap task.project_slug with encodeURIComponent, preserving compatibility with parseProjectSlugFromPath’s decodeURIComponent handling.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@internal/server/tasks/handler.go`:
- Around line 189-198: Remove the unreachable empty-slug validation from
getByProjectAndNumber, and after parsing the task number, reject values less
than 1 with a fiber.StatusBadRequest error matching the existing invalid-number
handling.
In `@requests.http`:
- Around line 251-255: Update the “Get task by project slug and number” example
request to use the registered two-segment route `/tasks/{slug}/{number}`; remove
the extra `by-project` segment so it targets `/tasks/my-new-project/1`,
consistent with the handler route and Swagger documentation.
---
Nitpick comments:
In `@frontend/src/lib/pages/task-new.svelte`:
- Line 61: URL-encode the project slug before constructing the task route in the
navigation call. Update the navigate call in the task creation flow to wrap
task.project_slug with encodeURIComponent, preserving compatibility with
parseProjectSlugFromPath’s decodeURIComponent handling.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 945a3c63-575b-49b1-9518-0a093d605d2f
📒 Files selected for processing (12)
frontend/src/App.sveltefrontend/src/lib/api/tasks.tsfrontend/src/lib/pages/dashboard-personal.sveltefrontend/src/lib/pages/dashboard-tasks.sveltefrontend/src/lib/pages/project-tasks.sveltefrontend/src/lib/pages/task-detail.sveltefrontend/src/lib/pages/task-edit.sveltefrontend/src/lib/pages/task-new.sveltefrontend/src/lib/stores/recent-projects.svelte.tsinternal/server/docs/docs.gointernal/server/tasks/handler.gorequests.http
- Add backend endpoint GET /api/v1/tasks/by-project/:slug/:number - Update frontend routes: /task/:slug/:number and /task/:slug/:number/edit - Update all navigation calls to use project_slug + number - Replace onMount with for reactive data fetching on param change - Fix infinite loop in App.svelte by removing sync call from effect body - Use plain variable instead of for assigning mutex - Update parseProjectSlugFromPath to recognize new URL pattern - Add example request to requests.http
3bfe17d to
2bbd06e
Compare
Summary by CodeRabbit
/task/{slug}/{number}(including edit).