mirror of
https://github.com/Permissionless-Software-Foundation/psf-memo.git
synced 2026-09-22 17:22:01 -07:00
Review profile address copy: refresh mutation manifests
The refactorer delivered the address-copy feature with a stale mutate4javascript manifest on profile-page.js (address-copy functions in source but not in the manifest). Ran the language mutation tool one file at a time: profile-page.js 36/36 killed, profile-address.js 1/1 killed, both 0 survived and 0 uncovered. Ran soft Gherkin acceptance mutation on profile-address-copy.feature (4 mutations, all intrinsic case changes of example addresses used consistently on both sides of their scenarios, so the tool wrote an empty scenarios manifest). DRY scoped to the changed production and test/support/acceptance files reports no duplicate candidates; the broad handlers.js run shows only pre-existing follow/mute step-handler boilerplate. No production behavior change. Tool-written mutation and acceptance manifests only, plus an architect process note on stale delivered manifests. By architect.
This commit is contained in:
@@ -180,6 +180,16 @@ the captured output before the tool's `System/exit`; the JSON report
|
||||
the current component, so the DB mutation runs use the DB suite without a
|
||||
second tool install.
|
||||
|
||||
- **A delivered source file can carry a stale `mutate4javascript` manifest.**
|
||||
On 2026-09-22 the `profile-address-copy` handoff delivered
|
||||
`src/services/profile-page.js` with the address-copy functions in the source
|
||||
but a manifest listing only the pre-existing functions (`tested_at` predating
|
||||
the feature). The differential run still selected and ran all 36 covered
|
||||
sites because the module hash changed, and the tool then rewrote the manifest
|
||||
to include the new functions. Treat a stale manifest as expected churn that
|
||||
the architect's mutation run repairs: after mutating a file, commit the
|
||||
rewritten manifest rather than treating it as a source behavior change.
|
||||
|
||||
- **A killed `mutate4javascript` run can strip the embedded manifest.** If the
|
||||
tool is killed after it removes the old `mutate4javascript-manifest` block but
|
||||
before it rewrites it (seen on `topic-query.js` when a worker hung and the
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
# acceptance-mutation-manifest-begin
|
||||
# {"version":1,"tested_at":"2026-09-22T18:13:49.997822314Z","feature_name":"Profile Address Copy","feature_path":"/home/trout/work/psf-memo/.worktrees/architect/psf-memo-client/specs/profile-address-copy.feature","background_hash":"0d66780cb1b8e277f0ada40a8ffe336dec7a8eaf658f19d2ea344815fb9bf26c","implementation_hash":"unknown","scenarios":[]}
|
||||
# acceptance-mutation-manifest-end
|
||||
|
||||
# Scenarios: Profile Address Copy - 1, Profile Address Copy - 2, Profile Address Copy - 3, Profile Address Copy - 4
|
||||
#
|
||||
# The /profile/:addr sidebar lists the profile's BCH cash address on the left.
|
||||
|
||||
@@ -53,3 +53,7 @@ function ProfileAddress ({ address = '', copied = false, onClick }) {
|
||||
ProfileAddress.COPIED_TEXT = COPIED_TEXT
|
||||
|
||||
module.exports = ProfileAddress
|
||||
|
||||
// mutate4javascript-manifest-begin
|
||||
// {"version":1,"tested_at":"2026-09-22T18:06:41.268Z","module_hash":"ef6a3eaa367a0a216ca16b33da84e3e797102886d571de28737155b96d4c4039","functions":[{"id":"func/ProfileAddress","name":"ProfileAddress","line":15,"end_line":51,"hash":"44eb6fd2adf6513a3db61dde75b08ee1730d4495cb09a1f447f160442ad1dfb4"}]}
|
||||
// mutate4javascript-manifest-end
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user