mirror of
https://github.com/Permissionless-Software-Foundation/psf-memo.git
synced 2026-09-21 16:52:01 -07:00
Review recent profile identity: record mutation manifests and acceptance stamps
Architectural review of the recent-profile-identity task found no structural changes needed: the DB join lives in the ProfileQuery adapter behind the ListRecentProfiles use case and controller, and the client account cell follows the established CommonJS + acceptance-render-adapter pattern for DOM-free testing. Committing the tool-written mutate4javascript manifests and the gherkin-mutator mutation stamps/manifests produced by the verification run. By architect.
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
# mutation-stamp: sha256=84388b1856157ba554eb1a1fd40c248e5627fac461cbf32ef993ec6d056990ba
|
||||
# acceptance-mutation-manifest-begin
|
||||
# {"version":1,"tested_at":"2026-09-20T20:08:48.255064334Z","feature_name":"Recent Profile Display","feature_path":"/home/trout/work/psf-memo/.worktrees/architect/psf-memo-client/specs/recent-profile-display.feature","background_hash":"da06b9f905acb9a781acdf0c6ebd291ba14806b33c2a0219b0e324be93cca860","implementation_hash":"unknown","scenarios":[{"index":0,"name":"Recent Profile Display - 1 the account column shows each profile's display name and avatar","scenario_hash":"051989028f7dc8aa3bcbc2791abd8077b79a96cef19c0e305808ae8895f271c1","mutation_count":6,"result":{"Total":6,"Killed":6,"Survived":0,"Errors":0},"tested_at":"2026-09-20T20:08:48.255064334Z"},{"index":1,"name":"Recent Profile Display - 2 the account avatar and display name link to the profile","scenario_hash":"6bfc6fd8d7a183e1e51f4aef3a116f9169d54165046f069865f96e92d317354c","mutation_count":4,"result":{"Total":4,"Killed":4,"Survived":0,"Errors":0},"tested_at":"2026-09-20T20:08:48.255064334Z"}]}
|
||||
# acceptance-mutation-manifest-end
|
||||
|
||||
# Scenarios: Recent Profile Display - 1, Recent Profile Display - 2, Recent Profile Display - 3, Recent Profile Display - 4, Recent Profile Display - 5
|
||||
#
|
||||
# The /profile/recent page renders each recent profile in a table. A new
|
||||
|
||||
@@ -72,3 +72,7 @@ function RecentProfileAccount ({ account, onProfileClick }) {
|
||||
|
||||
module.exports = RecentProfileAccount
|
||||
module.exports.RecentProfileAvatar = RecentProfileAvatar
|
||||
|
||||
// mutate4javascript-manifest-begin
|
||||
// {"version":1,"tested_at":"2026-09-20T20:03:40.156Z","module_hash":"273e3b8ffe62e9652c879d86bb4945960a317d1be06756e26f847955bdc2f2a1","functions":[{"id":"func/RecentProfileAvatar","name":"RecentProfileAvatar","line":20,"end_line":36,"hash":"29e36fe30fccd9b49d07e10e6a82788fc25ed69ce9c09331e621788265f8294d"},{"id":"func/RecentProfileAccount","name":"RecentProfileAccount","line":38,"end_line":71,"hash":"29f77d9b21812ee7c11fe94c8b6661e68e2e2cf48fb845f6714f35bdfd0d391b"}]}
|
||||
// mutate4javascript-manifest-end
|
||||
|
||||
@@ -56,3 +56,7 @@ module.exports = {
|
||||
buildRecentProfileAccount,
|
||||
buildRecentProfilesTable
|
||||
}
|
||||
|
||||
// mutate4javascript-manifest-begin
|
||||
// {"version":1,"tested_at":"2026-09-20T20:04:31.617Z","module_hash":"e57f7553060407dc4472d276c952224eebc9af601e3af89fe9823521772b867d","functions":[{"id":"func/profilePath","name":"profilePath","line":20,"end_line":22,"hash":"600b1f8066ecb8274c17a26c6ac2c753471c3ee4efc2de69558c6811a070a82c"},{"id":"func/accountDisplayName","name":"accountDisplayName","line":26,"end_line":28,"hash":"f9a24ca7336983aa345213b6c3e2e6d30add7ace5d5bcbf415d933a86f4c6271"},{"id":"func/buildRecentProfileAccount","name":"buildRecentProfileAccount","line":31,"end_line":38,"hash":"0d5ddd089881bcf323bcd3c37b2a69e4c3fad99b75845c35f8fc75cf7e2474c5"},{"id":"func/buildRecentProfilesTable","name":"buildRecentProfilesTable","line":41,"end_line":49,"hash":"8a97cc5d5925c43b411ccb2c10160648d63198ca22d861e6016fc22326786249"}]}
|
||||
// mutate4javascript-manifest-end
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# mutation-stamp: sha256=f2672d16093128ab98f47d9bd32fb777fe6a860143e3a04492a6a8446314742b
|
||||
# acceptance-mutation-manifest-begin
|
||||
# {"version":1,"tested_at":"2026-09-20T20:08:42.739895979Z","feature_name":"Recent Profile Identity","feature_path":"/home/trout/work/psf-memo/.worktrees/architect/psf-memo-db/specs/recent-profile-identity.feature","background_hash":"0289c6ddd1a0f1e7e23830863aec6d44f90f314d174423c44e8567da4e18f645","implementation_hash":"unknown","scenarios":[{"index":0,"name":"Recent Profile Identity - 1 GET /profile/recent returns each profile's display name and avatar","scenario_hash":"ed4ba1b33ac244e193e9fb24bfd845d351f00cabe5bd507dfe735d73055ecece","mutation_count":9,"result":{"Total":9,"Killed":9,"Survived":0,"Errors":0},"tested_at":"2026-09-20T20:08:42.739895979Z"}]}
|
||||
# acceptance-mutation-manifest-end
|
||||
|
||||
# Scenarios: Recent Profile Identity - 1
|
||||
#
|
||||
# GET /profile/recent returns each recent profile's current display name and
|
||||
|
||||
@@ -93,5 +93,5 @@ class Adapters {
|
||||
export default Adapters
|
||||
|
||||
// mutate4javascript-manifest-begin
|
||||
// {"version":1,"tested_at":"2026-09-18T17:38:46.670Z","module_hash":"e13818a9da05adfdc35ba7721caab3c70666b4b1b2aa374988f57ad760ee6322","functions":[{"id":"func/Adapters.constructor","name":"Adapters.constructor","line":17,"end_line":22,"hash":"d5d1fd454ddfa112378f278773b65be5cb39aab75473dd57c04c9a385de1aa58"},{"id":"func/Adapters.openDatabases","name":"Adapters.openDatabases","line":24,"end_line":82,"hash":"e5e55b93a3aa994d5f938ed3b08c59f82fda1e98029d80ec566faec1d43d6d6c"},{"id":"func/Adapters.start","name":"Adapters.start","line":84,"end_line":88,"hash":"f9e62a9199f0259f5c22913625e6e497548b3887cc24871bba475e73e52b3750"}]}
|
||||
// {"version":1,"tested_at":"2026-09-20T20:07:23.167Z","module_hash":"2f12ab15e729d2f35a9d092fd387e336a8ea21caa5c48c04e153b5d0f707947d","functions":[{"id":"func/Adapters.constructor","name":"Adapters.constructor","line":17,"end_line":22,"hash":"d5d1fd454ddfa112378f278773b65be5cb39aab75473dd57c04c9a385de1aa58"},{"id":"func/Adapters.openDatabases","name":"Adapters.openDatabases","line":24,"end_line":84,"hash":"6fe3d5ece4a1783936aa3c8f3fdd782206ae0bc417a06a048b1416a0dce8fb75"},{"id":"func/Adapters.start","name":"Adapters.start","line":86,"end_line":90,"hash":"f9e62a9199f0259f5c22913625e6e497548b3887cc24871bba475e73e52b3750"}]}
|
||||
// mutate4javascript-manifest-end
|
||||
|
||||
@@ -60,3 +60,7 @@ class ProfileQuery {
|
||||
}
|
||||
|
||||
export default ProfileQuery
|
||||
|
||||
// mutate4javascript-manifest-begin
|
||||
// {"version":1,"tested_at":"2026-09-20T20:05:24.208Z","module_hash":"dab2b10155f8ffc0c8b8005a77af81daaf6682dac4eeb1c56ad061d9961d0040","functions":[{"id":"func/ProfileQuery.constructor","name":"ProfileQuery.constructor","line":7,"end_line":17,"hash":"83ff1150629995273a68f8f985067724a6f5c839f2642ee67855d26be61d5f03"},{"id":"func/ProfileQuery.scanProfilesWithBlockHeight","name":"ProfileQuery.scanProfilesWithBlockHeight","line":19,"end_line":33,"hash":"1fa61f0f49063b13c3eb67725c74614e0b798b0ffcd0248385f838317cabfd0c"},{"id":"func/ProfileQuery.getProfileIdentity","name":"ProfileQuery.getProfileIdentity","line":39,"end_line":49,"hash":"66105f1c77dadc97f32beec8c952184617e07a0401eae1af1128de70f47df070"},{"id":"func/ProfileQuery.getRecordOrNull","name":"ProfileQuery.getRecordOrNull","line":51,"end_line":59,"hash":"5604da1e9adc18abda5e58e4f366aa0bcc8e0dd417e2f6882c27289df7fb7a14"}]}
|
||||
// mutate4javascript-manifest-end
|
||||
|
||||
@@ -41,5 +41,5 @@ class ListRecentProfiles extends ListUseCase {
|
||||
export default ListRecentProfiles
|
||||
|
||||
// mutate4javascript-manifest-begin
|
||||
// {"version":1,"tested_at":"2026-08-29T14:25:23.929Z","module_hash":"4eee5bdcc428b107755e33bd6b2b6dd6477a01aa9feece327ba144ec4825442f","functions":[{"id":"func/ListRecentProfiles.constructor","name":"ListRecentProfiles.constructor","line":10,"end_line":12,"hash":"a2c7dd0696ac463cbc142fa7ccce4a3cadf8e246a872261733d199dbd4c153d1"},{"id":"func/ListRecentProfiles.execute","name":"ListRecentProfiles.execute","line":14,"end_line":32,"hash":"f9fc78d274ac88aad570a32a45d20364974dde79538b414823241610cf2339dc"}]}
|
||||
// {"version":1,"tested_at":"2026-09-20T20:06:31.180Z","module_hash":"5c9bf3b5be5a616a72eef340cf9f1d2c211c061d80aabc4eb2393a73ee77fbfa","functions":[{"id":"func/ListRecentProfiles.constructor","name":"ListRecentProfiles.constructor","line":10,"end_line":12,"hash":"a2c7dd0696ac463cbc142fa7ccce4a3cadf8e246a872261733d199dbd4c153d1"},{"id":"func/ListRecentProfiles.execute","name":"ListRecentProfiles.execute","line":14,"end_line":38,"hash":"4f1c2184766274d911ae3cab174ef9cc946ca9459aad1e199811732ebda99d46"}]}
|
||||
// mutate4javascript-manifest-end
|
||||
|
||||
Reference in New Issue
Block a user