Review isFolloweePost refactor: confirm CRAP cut, refresh manifests

By architect.
This commit is contained in:
Chris Troutner
2026-09-02 13:01:34 -07:00
parent 53ead58b9c
commit 5389660b76
2 changed files with 20 additions and 1 deletions
+19
View File
@@ -9,6 +9,25 @@
- `6d1bd14` Implement Following feed (coder)
- `d606ee6` Refactor following feed: reduce CRAP/DRY, add property coverage (refactorer)
## Follow-up refactorer handoff (`merge_and_process refactorer b85878a5d5`)
- Merged `swarmforge-refactorer` — commit `b85878a` "Refactor following-feed scan: extract
isFolloweePost to cut CRAP".
- **Architectural review (confirmed good):** `isFolloweePost` is a private helper within
`PostQuery` that extracts the reply/viewer/membership predicate from
`scanFollowingFeedTxidsAndCount`. It adds no new dependencies, preserves information hiding
(the LevelDB model stays encapsulated), and keeps the dependency direction inward. Behavior is
unchanged.
- **CRAP reduction confirmed:** `scanFollowingFeedTxidsAndCount` CC 7→5 (CRAP 7.0→5.0);
`isFolloweePost` CC 3, both 100% covered.
- **Mutation:** `post-query.js` 0 killed / 0 survived / 0 uncovered (manifest refreshed by the
approved tool).
- **DRY:** no new production duplication; only pre-existing test-helper duplicates.
- **Soft Gherkin mutation:** `following-feed.feature` 12 executed, 0 killed, 12 survived — all
genuine equivalents (single-char case mutations of example values), unchanged from the prior
review.
- **Suites:** DB unit 281 passing, property 37 passing, acceptance 9 files passing, lint clean;
client acceptance 19 files passing.
## Architectural findings and fixes
- **UI/Core separation (confirmed good):** Client `FollowingFeedPage` is a thin, testable
controller wrapping the `MemoDb` HTTP client; the React `FollowingFeed` component stays a pure
+1 -1
View File
@@ -1,5 +1,5 @@
# acceptance-mutation-manifest-begin
# {"version":1,"tested_at":"2026-09-02T19:13:00.507312989Z","feature_name":"Following Feed","feature_path":"/home/trout/work/psf-memo/.worktrees/architect/psf-memo-client/specs/following-feed.feature","background_hash":"0d66780cb1b8e277f0ada40a8ffe336dec7a8eaf658f19d2ea344815fb9bf26c","implementation_hash":"unknown","scenarios":[]}
# {"version":1,"tested_at":"2026-09-02T19:55:36.282796191Z","feature_name":"Following Feed","feature_path":"/home/trout/work/psf-memo/.worktrees/architect/psf-memo-client/specs/following-feed.feature","background_hash":"0d66780cb1b8e277f0ada40a8ffe336dec7a8eaf658f19d2ea344815fb9bf26c","implementation_hash":"unknown","scenarios":[]}
# acceptance-mutation-manifest-end
# Scenarios: Following Feed - 1, Following Feed - 2, Following Feed - 3, Following Feed - 4, Following Feed - 5, Following Feed - 6, Following Feed - 7