Skip to content

Add card linking feature (dev.skyboard.link)#51

Draft
disnet wants to merge 1 commit into
mainfrom
card/3mewadveylf2e
Draft

Add card linking feature (dev.skyboard.link)#51
disnet wants to merge 1 commit into
mainfrom
card/3mewadveylf2e

Conversation

@disnet

@disnet disnet commented Feb 16, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add new dev.skyboard.link AT Protocol record type for directional task-to-task relationships
  • Support three link types: blocks, relates to, duplicates
  • Full-stack implementation across frontend (Svelte), appview (Bun/SQLite), and AT Protocol lexicons

Changes

Data layer:

  • New dev.skyboard.link lexicon definition
  • Link/LinkRecord types and LINK_COLLECTION constant in types.ts
  • Dexie table (version 11) with indexes on boardUri, sourceTaskUri, targetTaskUri, syncStatus
  • CRUD helpers in links.ts (createLink, deleteLink)

Sync & Auth:

  • Link sync to PDS in syncPendingToPDS, deleteBoardFromPDS, deleteLinkFromPDS, resetErrorsToPending
  • OAuth scope updated with repo:dev.skyboard.link

Appview:

  • SQLite schema with links table and boardUri index
  • LinkRow interface + upsert/get/delete functions in client.ts
  • LinkRecordSchema Zod validation
  • Firehose processor handles link create/delete events
  • Links included in BoardResponse from get-board API

Frontend UI:

  • Board page: allLinks liveQuery, linksByTask/linkCountsByTask derived values, link sync error reauth banner
  • TaskCard: link count badge with chain-link icon
  • TaskEditModal: full Links section with add link form (type selector + task picker), directional labels (blocks/blocked by, relates to, duplicates/duplicated by), and delete button

Test plan

  • Verify type check passes (npm run check)
  • Verify build succeeds (npm run build)
  • Create links between tasks and verify they appear on both source and target cards
  • Test all three link types (blocks, relates to, duplicates)
  • Verify directional labels display correctly (blocks vs blocked by)
  • Verify link deletion works for link author and board owner
  • Verify links sync to PDS and appear via WebSocket updates
  • Verify reauth banner appears on link sync errors

🤖 Generated with Claude Code

Implements directional links between tasks on the same board with three
link types: blocks, relates_to, and duplicates. Full-stack implementation:

- New lexicon, types, Dexie table, and CRUD helpers for links
- PDS sync for link records with error handling
- Appview: schema, firehose processor, and board API response
- UI: link badges on task cards, links section in task edit modal
  with add/delete support and directional labels
- OAuth scope updated, reauth banner for link sync errors

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@disnet disnet marked this pull request as draft February 16, 2026 06:15
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