Skip to content

Fix EditTask/NotesTask rejecting canonical classId~taskId refs - #30

Merged
sandervonk merged 1 commit into
mainfrom
cursor/p3-flat-task-ref-guard-81b2
Sep 3, 2026
Merged

Fix EditTask/NotesTask rejecting canonical classId~taskId refs#30
sandervonk merged 1 commit into
mainfrom
cursor/p3-flat-task-ref-guard-81b2

Conversation

@sandervonk

Copy link
Copy Markdown
Member

Summary

Follow-up to #28. Edit-one smoke failed because EditTask.vue (and NotesTask.vue) still required three slash segments after converting ~/. The router now canonicalizes task refs to two-segment classId~taskId, so every edit/notes load hit Invalid task specified.

Guards now use isValidTaskRouteRef (parseTaskId): accept classId~taskId / classId/taskId / legacy 3-segment, reject empty, class-only, email/classId, and extra segments. Early return after close so we do not keep fetching.

Files

File Change
src/common/paths.ts isValidTaskRouteRef
src/views/Portal/EditTask.vue get_task guard
src/views/Portal/NotesTask.vue get_task guard
scripts/test-paths.mjs accept/reject cases
.github/workflows/ci.yml run test:paths

Out of scope

Server, nested delete, repeating-scope behavior.

Test plan

  • npm run test:paths (includes isValidTaskRouteRef)
  • CI green (lint, existing tests, test:paths, build)
  • Smoke: open EditTask on a series instance whose route is classId~taskId — no Invalid task specified
Open in Web Open in Cursor 

Router now canonicalizes flat task refs to two segments; the get_task
guards still required three slash parts. Accept parseTaskId-valid refs
(including classId~taskId) and reject empty/class-only/malformed.

Co-authored-by: Sander Vonk <sandervonk@users.noreply.github.com>
@sandervonk
sandervonk marked this pull request as ready for review September 3, 2026 16:36
@sandervonk
sandervonk merged commit 8c04f1e into main Sep 3, 2026
1 check passed
@sandervonk
sandervonk deleted the cursor/p3-flat-task-ref-guard-81b2 branch September 3, 2026 16:36
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.

2 participants