Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 54s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
57 lines
1.7 KiB
Plaintext
57 lines
1.7 KiB
Plaintext
; Follow-up — verb-aware (smart) dedupe. (feed-test name got expected)
|
|
|
|
; reactions (like/follow) collapse cross-actor; posts stay distinct per actor
|
|
(define
|
|
M
|
|
(feed/stream
|
|
(list
|
|
(feed/activity "alice" "like" "X" 1 (list))
|
|
(feed/activity "bob" "like" "X" 2 (list))
|
|
(feed/activity "alice" "post" "P" 3 (list))
|
|
(feed/activity "bob" "post" "P" 4 (list))
|
|
(feed/activity "alice" "follow" "C" 5 (list))
|
|
(feed/activity "bob" "follow" "C" 6 (list))))) ; collapses
|
|
|
|
(feed-test
|
|
"smart dedupe total"
|
|
(feed/count (feed/dedupe-smart M))
|
|
4)
|
|
(feed-test
|
|
"smart keeps both posts"
|
|
(feed/count (feed/by-verb (feed/dedupe-smart M) "post"))
|
|
2)
|
|
(feed-test
|
|
"smart collapses likes to one"
|
|
(feed/count (feed/by-verb (feed/dedupe-smart M) "like"))
|
|
1)
|
|
(feed-test
|
|
"smart collapses follows to one"
|
|
(feed/count (feed/by-verb (feed/dedupe-smart M) "follow"))
|
|
1)
|
|
(feed-test
|
|
"collapsed like keeps first actor"
|
|
(map feed/actor (feed/items (feed/by-verb (feed/dedupe-smart M) "like")))
|
|
(list "alice"))
|
|
|
|
; contrast: plain activity dedupe keeps cross-actor likes distinct
|
|
(feed-test
|
|
"activity dedupe keeps both likes"
|
|
(feed/count (feed/by-verb (feed/dedupe-activities M) "like"))
|
|
2)
|
|
|
|
; contrast: blanket collapse folds the two posts (same verb+object) too
|
|
(feed-test
|
|
"collapse dedupe folds posts"
|
|
(feed/count (feed/by-verb (feed/dedupe-collapse M) "post"))
|
|
1)
|
|
|
|
; smart-key dispatch
|
|
(feed-test
|
|
"smart-key reaction -> (verb object)"
|
|
(feed/smart-key (feed/activity "alice" "like" "X" 0 (list)))
|
|
(list "like" "X"))
|
|
(feed-test
|
|
"smart-key post -> (actor verb object)"
|
|
(feed/smart-key (feed/activity "alice" "post" "P" 0 (list)))
|
|
(list "alice" "post" "P"))
|