Skip to content

v0.4.0 Wave 17: local comments (anchored threads, reply/resolve/assign, PPTX persistence) - #15

Merged
900Labs merged 9 commits into
masterfrom
wave-17/comments
Jul 29, 2026
Merged

900Labs merged 9 commits into
masterfrom
wave-17/comments

Conversation

@900Labs

@900Labs 900Labs commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Summary

Wave 17 adds local comments — threaded annotations anchored to slides, shapes, or text ranges. Support reply, resolve, assignment, and deletion. Comments persist in the PPTX custom XML manifest and survive round-trip.

What changed

Model (slides-core)

  • Comment, CommentThread, CommentAnchor (slide / shape / text-range). Additive Deck.comments (#[serde(default)]).
  • 5 reversible commands: AddComment, ReplyToComment, SetCommentResolved, AssignComment, DeleteCommentThread.

PPTX (slides-pptx)

  • Comments serialized as JSON inside a CDATA section of the 900Slides manifest XML.
  • CDATA split on ]]> to prevent corruption from comment bodies containing that sequence (found during review).
  • 7 round-trip tests including the ]]> edge case.

Desktop (apps/desktop/)

  • Comments sidebar (Comments.svelte, +697 lines): toggle with C, threads grouped by slide, reply/resolve/assign/delete.
  • Context menu: "Add comment" on shapes, "Comment on selection" on text ranges.
  • 5 Tauri commands, all transactional. Zero @html (no XSS).

Review process

Control-tower pipeline applied: review subagent (mechanical line-by-line) + contextual triage. One WARNING found and fixed before merge (CDATA ]]> injection). No CRITICAL issues.

Test results

  • 337 workspace tests pass (slides-core +12, slides-pptx +7).
  • npm run check (svelte-check): 0 errors, 0 warnings.
  • scripts/verify-local.sh: green. scripts/verify-public-release.sh: green.

@900Labs
900Labs merged commit 3c617dd into master Jul 29, 2026
8 checks passed
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