feat(tasks): linked tasks sync title and subtasks with their note in both directions
MindSift CI & Docker Release / Build, Test in Container & Push (push) Failing after 2m32s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Failing after 2m32s
Subtasks of a task linked to a note checkbox are tied 1:1 to checkboxes of that note (subtasks[].blockId), wherever they are moved. ReconcileDocTaskLinks now carries tick, title and subtasks from the note to the task and adopts new checkboxes directly under the task; SyncTaskToDoc carries tick, title and subtasks to the note and adds checkboxes for new subtasks. Deleting is not mirrored. Deepening a task ties its subtasks right away; saves without links keep the server's links. The sync response reports taskLinks/subtaskLinks; the editor shows an "Unteraufgabe" badge. v0.36.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f91926c208
commit
5a8922011d
20 files changed
+511
-53
No files matched your search
@@ -12,9 +12,10 @@ import (
|
||||
func (s *Store) loadDocBlocks(docID string, fallbackJSON string) []domain.DocumentBlock {
|
||||
if d, _, err := loadCollabDoc(s.db, docID); err == nil && len(d.Blocks) > 0 {
|
||||
blocks := flatDocumentBlocks(docID, d)
|
||||
if links := s.docTaskLinks(docID); len(links) > 0 {
|
||||
if links, subLinks := s.DocTaskLinks(docID); len(links) > 0 {
|
||||
for i := range blocks {
|
||||
blocks[i].TaskID = links[blocks[i].ID]
|
||||
blocks[i].SubtaskOf = subLinks[blocks[i].ID]
|
||||
}
|
||||
}
|
||||
return blocks
|
||||
|
||||
Reference in new issue
Block a user