feat: surface imported source indicators #459

Manually merged
barrettruth merged 1 commit from issue-449-imported-source-indicators into main 2026-05-14 04:07:05 +00:00
Owner

Problem

  • Closes #449.
  • Imported Google Tasks and Google Calendar rows need compact source/read-only indicators across dense task surfaces and fuller source context in task detail.

Solution

  • Decorate dashboard task loads with generic source information from external links and sync sources.
  • Add shared compact source indicators for queue, kanban, search-filtered rows, and calendar events, including private/free/read-only attributes.
  • Add task detail source rows and an open in Google Calendar action when Calendar metadata has an htmlLink.
  • Route visible read-only edit attempts through warning/yellow status feedback while keeping the server read-only guard intact.
  • Render transparent/free calendar imports more quietly without hiding them.

Verification

  • direnv exec . pnpm vitest run tests/core/task.test.ts tests/lib/task-source-indicator.test.tsx tests/core/google/calendar-mapper.test.ts tests/lib/fullcalendar-adapter.test.ts tests/server/task-mutations.test.ts tests/core/external-links.test.ts
  • direnv exec . pnpm vitest run tests/server/dashboard-data.test.ts
  • direnv exec . just ci
  • Headless browser smoke with seeded temporary DB: queue desktop, queue mobile, calendar week desktop.
Problem - Closes #449. - Imported Google Tasks and Google Calendar rows need compact source/read-only indicators across dense task surfaces and fuller source context in task detail. Solution - Decorate dashboard task loads with generic source information from external links and sync sources. - Add shared compact source indicators for queue, kanban, search-filtered rows, and calendar events, including private/free/read-only attributes. - Add task detail source rows and an open in Google Calendar action when Calendar metadata has an htmlLink. - Route visible read-only edit attempts through warning/yellow status feedback while keeping the server read-only guard intact. - Render transparent/free calendar imports more quietly without hiding them. Verification - direnv exec . pnpm vitest run tests/core/task.test.ts tests/lib/task-source-indicator.test.tsx tests/core/google/calendar-mapper.test.ts tests/lib/fullcalendar-adapter.test.ts tests/server/task-mutations.test.ts tests/core/external-links.test.ts - direnv exec . pnpm vitest run tests/server/dashboard-data.test.ts - direnv exec . just ci - Headless browser smoke with seeded temporary DB: queue desktop, queue mobile, calendar week desktop.
feat: surface imported source indicators
Some checks failed
quality / Test (pull_request) Successful in 19s
quality / Lint (pull_request) Successful in 22s
quality / Build (pull_request) Has been cancelled
757126e41e
barrettruth manually merged commit 83fb7dfefb into main 2026-05-14 04:07:05 +00:00
Sign in to join this conversation.
No reviewers
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
barrettruth/delta!459
No description provided.