Refs-only cards with on-demand content - phase 2 of the #189 track #323
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "phase-2-refs-only"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A card now stores references only: post_id, channel_id, channel_name, permalink, thread_root_id. Message, author, channel names and attachments come live from Mattermost through a new bulk pass-through (POST /api/mm/cards/content: posts + authors + channel/team names in one round trip per linked server, tombstones for posts Mattermost no longer returns). Nothing of the message rests in the database; what does rest stays encrypted (phase 1).
Backend: sync drops the edit-refresh path and the author lookup; revision 98aee9976b23 strips existing rows one-way (rollout note in the changelog); import of old bundles keeps only ref fields; the dev MM mock answers the three content reads so preview and e2e work.
Frontend: one chunked bulk content query per list with an in-memory-only cache (deliberately never localStorage), required content-prop down the row tree so vue-tsc catches a missing hookup, tombstone rows that keep status/planning/notes, a per-list retry notice on fetch failure, search and mention-prefetch reading from the content cache, and e2e specs stubbing the content endpoint keyed on source_id.
Measured against digilab before building: the on-demand model adds ~30-105 ms to a first list paint (ping p50 15 ms, two to three round trips).
Gates: 1990 backend tests at 100% coverage, 1206 vitest, vue-tsc + build, full e2e green (118 passed).