Commit Graph
27 Commits
Author SHA1 Message Date
Chris Troutner 971b04257a Record the 2026-09-16 process-improvement pass
The process changes were only in Git history and a briefing paragraph. Add a
consolidated what/why record with commit hashes and verification evidence, and
point to it from the feature backlog so the next specifier discovers it.

By specifier.
2026-09-15 18:44:27 -07:00
Chris Troutner 752bf2cff6 Guard mutation runs against differential under-selection
The default differential run can select fewer covered sites than exist after a
function is added or removed, forcing a manual --mutate-all rerun. Add
mutate-file.sh (auto-reruns when Selected < Covered) and clean-builds.sh
(removes worker-copy bloat), and document them plus the intrinsic upper-bound
Gherkin survivors in the architect cheat-sheet.

By specifier.
2026-09-15 18:27:58 -07:00
Chris Troutner 66a791bd72 Single-source the APS checkout under tmp/aps
There were up to four APS copies (tmp/aps, tmp/aps-spec, tmp/aps-fresh, and a
component-local client copy) and the briefing, wrappers, and runners disagreed
on which to use. Add ensure-aps.sh (ensure/update/reclone) as the one canonical
tmp/aps checkout, point the gherkin-parser wrapper, architect startup, and all
three acceptance runners at it, and update the architect cheat-sheet.

By specifier.
2026-09-15 17:47:33 -07:00
Chris Troutner c8ceb825f7 Note mutate4javascript differential under-selection and gherkin report capture
By architect.
2026-09-15 13:13:12 -07:00
Chris Troutner 1ff2c020ac Review thread-query-bounds: hide postChildren representation, drop dead like scan
Encapsulate the postChildren prefix scan in PostQuery.listChildTxids and have
GetPostThread depend only on the PostQuery interface (listChildTxids,
getPostOrNull). countRepliesForTxids now reuses listChildTxids. Remove the dead
whole-database buildLikeCountMap that this task made obsolete. Cover the
prefix-scan guards and cycle back-edge, realign the thread property tests to the
adapter seam, and refresh mutation/Gherkin-acceptance manifests.

By architect.
2026-09-15 13:10:46 -07:00
Chris Troutner 5afaa64b26 Review account-avatar-display: refresh mutation manifests, add review summary
By architect.
2026-09-05 13:17:41 -07:00
Chris Troutner 2bcc965efb Review feed-query-performance: remove dead full-scan methods, harden mutation coverage
Remove the full-scan methods the capped-scan optimization replaced
(topLevelPostTxids, countTopLevelPosts, countTopLevelPostsByAddr,
buildReplyCountMap) and their tests, keeping the backwards-compat wrappers.
Add hardening tests to kill 4 mutation survivors (raw scan bound, viewerAddr
fallback). Refresh mutation manifests and Gherkin acceptance-mutation stamps.

By architect.
2026-09-04 18:59:27 -07:00
Chris Troutner 3992395480 Review mute-feed-filtering: fix mute dependency order and follow-key fallback, add helper coverage
Fix Adapters.openDatabases so muteQuery is constructed before postQuery, which
previously resolved an undefined muteQuery at PostQuery construction and silently
disabled recent-feed mute filtering. Fix the follow-notification key fallback to
strip the :<followeePkHash> suffix instead of key.split(':')[0] (which yielded
only the "bitcoincash" network prefix). Add unit tests for the shared muted-posts
helper and the follow key-fallback path.

By architect.
2026-09-04 13:35:02 -07:00
Chris Troutner 167a64ae6b Review binary-payload-broadcast: verify MemoStateAction dedup, document Gherkin equivalents
By architect.
2026-09-04 11:30:12 -07:00
Chris Troutner a4cd814931 Review page-size-50: harden pagination null edge, document equivalents
By architect.
2026-09-04 10:45:35 -07:00
Chris Troutner 7ca73cffdc Review youtube-embed property tests, document equivalents
By architect.
2026-09-04 09:50:19 -07:00
Chris Troutner b63019c31f Review youtube-embed: harden parser edge cases, document equivalents
Add unit tests for invalid video id and non-/watch youtube.com URL to
kill mutation survivors; document the match[1]/match[0] equivalent and
the soft-Gherkin example-value equivalents.

By architect.
2026-09-04 09:28:13 -07:00
Chris Troutner 5bb2906d92 Review topics-most-recent-order: hide lastHeight ordering key, harden height-0 cases
By architect.
2026-09-04 07:25:44 -07:00
Chris Troutner fdd13ef734 Review profile-wallet-connect: confirm selector, fix gherkin-parser wrapper
Reviewed the refactorer's profile-wallet-connect work. getViewerAddress is a
clean pure selector (reactive-then-wallet precedence, null-on-absent); the
profile index.js wiring fix is sound and correctly re-loads when the address
becomes available. Fixed swarmforge/scripts/gherkin-parser, which delegated to
a non-existent .swarmforge/tools/aps path, to use the established tmp/aps-spec
checkout. Added the mutation differential-manifest for the new module.
Verification: 243 client unit + 33 property tests pass, lint clean,
mutation 2 killed / 0 survived, DRY no candidates, soft Gherkin mutation
6 intrinsic equivalents.

By architect.
2026-09-03 16:19:00 -07:00
Chris Troutner 9cdc5941f0 Review notifications property tests: confirm reference oracle, run verification
Merged the refactorer's notifications-query property-test suite and reviewed
it architecturally. Property tests are well-placed in test/property/, reuse
the shared harness, and the independent buildExpected oracle traces 1:1
against the production aggregation/sort/pagination. No production source
changed. Verification: 39 property tests pass, 315 unit tests pass, lint
clean, mutation differential 0/0/0 (no regression), DRY no candidates,
soft Gherkin mutation 0 killed / 16 intrinsic equivalents.

By architect.
2026-09-03 16:10:07 -07:00
Chris Troutner d99eda3db4 Add startup bloat check for mutation build dirs
Record the tmp/acceptance and target/mutation-workers bloat that made
mutate4javascript worker copies many GB and mutation runs appear to hang.
Add a startup check that flags any of these dirs over 100MB so they are
cleaned before a mutation run.

By architect.
2026-09-03 14:23:38 -07:00
Chris Troutner 87ca402cae Review notifications refactor: extract shared getPostOrNull, add adapter unit suite
Extract the post-lookup-with-null helper into a shared module used by both
the notifications and post query adapters, removing duplication. Add a
dedicated NotificationsQuery unit suite (26 tests) and hardening tests that
kill the sort-comparator and followee-guard mutations. Refresh mutation
manifests via the approved tool. Document 5 intrinsic mutation equivalents
and 16 soft-Gherkin equivalents in the review summary.

By architect.
2026-09-03 14:10:54 -07:00
Chris Troutner 5389660b76 Review isFolloweePost refactor: confirm CRAP cut, refresh manifests
By architect.
2026-09-02 13:01:34 -07:00
Chris Troutner b4848c887e Rename process notes to architect-scoped and add role guard
By architect.
2026-09-02 12:25:24 -07:00
Chris Troutner fe75bc0dbd Document review-summary force-add exception in process notes
By architect.
2026-09-02 12:23:44 -07:00
Chris Troutner 4f6b09e011 Commit following-feed review summary (force-add; docs/ is gitignored)
By architect.
2026-09-02 12:23:38 -07:00
Chris Troutner 883f0142c7 Review and harden ZMQ DB backups: centralize backup decision, kill mutation survivor
By architect.
2026-08-28 10:16:20 -07:00
Chris Troutner f12e5b38db Add architect startup cheat-sheet
Capture tool locations, the --mutate-all differential gotcha, the
gherkin-mutator invocation, and the refactorer-forward no-op pattern to
speed up the next session's startup.

By architect.
2026-08-28 09:25:01 -07:00
Chris Troutner a6dd857f67 Add efficient-post-query review summary
By architect.
2026-08-27 22:27:20 -07:00
Chris Troutner ba2b3bf317 Review and harden set-avatar-url profile-text refactor
Merge refactorer set-avatar-url work: shared MemoProfileTextAction base with
a profileTextConfig factory so MemoSetName/MemoSetBio/MemoSetAvatarUrl become
thin config declarations, plus avatar URL byte-limit, round-trip, and byte
budget property tests. No hardening fix required; language mutation reports
no survivors and soft Gherkin acceptance mutation survivors are documented
equivalents. Record the durable review report.

By architect.
2026-08-27 09:59:49 -07:00
Chris Troutner ecb6ee7f28 Review and harden set-bio profile-text refactor
Merge refactorer set-bio work: MemoAction config-driven byte-limit and
profile-store reflection, shared ProfileTextPage base for SetBioPage and
SetNamePage, and byte-counting property tests. Harden the shared base with
a test asserting the in-flight flag initializes false.

By architect.
2026-08-27 08:09:02 -07:00
Chris Troutner 30c0949d3f Harden and review post-heights-index refactor
Architectural review of the refactorer's postHeights index work. Extract a
shared assemblePostPage helper and a ListUseCase base class to remove DRY
duplication in the post-list use cases. Build the gherkin-mutator runner
adapter for psf-memo-db and psf-memo-indexer. Add boundary and tie-break
tests to kill all surviving language mutations across the changed files
(post-query, pagination, list use cases, indexer post handler).

Mutation: all changed source files fully killed. DRY: clean. CRAP <= 6.
Soft Gherkin acceptance mutation documented survivors (see review report).

By architect.
2026-08-26 11:39:12 -07:00