Commit Graph
295 Commits
Author SHA1 Message Date
Chris Troutner 58e21ff01a Deduplicate Memo profile-text actions and add set-avatar-url property tests
Extract a shared MemoProfileTextAction base with a config factory so the
set-name, set-bio, and set-avatar-url actions each become a thin data
declaration, removing the duplicated config and broadcast method. Add
property tests covering the avatar URL byte limit, round trips, and byte
budget conservation.

By refactorer.
2026-08-27 09:57:13 -07:00
Chris Troutner 131d31ee10 Merge coder set-avatar-url implementation
By refactorer.
2026-08-27 09:53:50 -07:00
Chris Troutner 7bee85a36f Implement Set Avatar URL client feature
- Add MemoSetAvatarUrl service broadcasting 0x6d0a with 217-byte limit.
- Add SetAvatarUrlPage controller and React view at /memo/set-avatar-url.
- Wire route in AppBody and add Account page avatar URL display.
- Add Set Avatar URL button on Account page linking to the editor.
- Update Profiles store, AccountPage behavior, and acceptance handlers.
- Add unit tests for avatar URL behavior, page, and account page.

By coder.
2026-08-27 09:53:36 -07:00
Chris Troutner 991053ab12 Spec Set Avatar URL feature
By specifier.
2026-08-27 09:49:07 -07:00
Chris Troutner 2eb86e2d07 Mark Set Bio complete and set next feature to profile picture
Update the P1 backlog and standing specifier briefing for the merged
set-bio task. Add gotcha for the 217-byte profile-text limit vs the
indexer's looser validation.

By specifier.
2026-08-27 08:13:55 -07:00
Chris Troutner e321c7fec7 Revert unrelated specifier model change in swarmforge.conf
The architect review noted this specifier-model switch was left out of the
set-bio merge, but it leaked in with the fast-forward. Restore origin/master
config so the merge stays focused on the set-bio feature.

By specifier.
2026-08-27 08:12:26 -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 9c5767d462 Refactor set-bio to share profile-text action and page bases
Deduplicate the set-bio and set-name action and page-controller layers:
move byte-limit and profile-store reflection into MemoAction via config,
and share a ProfileTextPage base for both page controllers. Add property
tests for byte counting and the bio byte-limit boundary.

By refactorer.
2026-08-27 08:00:58 -07:00
Chris Troutner 01a16769bd Implement Set Bio (0x6d05) client write path
Add Memo set-bio action, Set Bio page controller, Set Bio React view,
account bio display, and acceptance step handlers. Includes unit tests.

By coder.
2026-08-27 07:50:33 -07:00
Chris Troutner fcab46d706 Add Gherkin spec for Set Bio (0x6d05) client write path
By specifier.
2026-08-27 07:44:41 -07:00
Chris Troutner 7e5b704a37 Switching back to deepseek for specifier 2026-08-26 20:55:00 -07:00
Chris Troutner 5926db1913 Mark like-count display complete and set next feature to profile text
By specifier.
2026-08-26 20:52:25 -07:00
Chris Troutner 21373f4d10 Harden and review like-count-display refactor
- Add unit tests to kill all mutation survivors in GetPostThread
  (sort order, missing blockHeight/seen fallbacks, non-string txid).
- Add default-limit and falsy-pagination tests for the client page
  controllers (ProfilePage, RecentFeedPage).
- Refresh mutation manifests and Gherkin acceptance mutation metadata.
- Write durable review report to docs/reviews/like-count-display-summary.md.

By architect.
2026-08-26 20:46:35 -07:00
Chris Troutner c208eb38aa Refactor like-count read side and add property tests
- Reduce GetPostThread.buildThreadNode CRAP from 10 to 5 by extracting
  fetchPostOrNull, loadChildTxids, and compareReplies helpers.
- Add like-count property tests (conservation, round-trip, pagination).
- Update post-height property test for the new likesDb requirement.
- Add client thread-page flatten property test and a small harness.

By refactorer.
2026-08-26 19:55:19 -07:00
Chris Troutner d8160c2750 Merge coder like-count-display implementation
By refactorer.
2026-08-26 19:49:16 -07:00
Chris Troutner 3f5c8f809a Display like counts on feed, profile, and thread
- Add testable RecentFeedPage, ProfilePage, and ThreadPage controllers.
- Wire acceptance handlers for the like-count-display feature.
- Render like counts on the profile page with a read-only LikeButton.
- Add unit tests for the new display page services.

By coder.
2026-08-26 19:48:37 -07:00
Chris Troutner 6114afc209 Merge specifier like-count-display spec
By coder.
2026-08-26 19:37:18 -07:00
Chris Troutner fe0981deb2 Add Gherkin spec for like count display on feed, profile, and thread
By specifier.
2026-08-26 19:36:49 -07:00
Chris Troutner b5e12c709a Mark likeCount read side complete and set next feature
- Update backlog: P1.1 read side is done; P1.2 client display is next.
- Update specifier handoff notes with current HEAD and next action.

By specifier.
2026-08-26 19:14:21 -07:00
Chris Troutner 4bd4b79f6c Add likeCount to psf-memo-db post responses
- Wire likesDb into PostQuery and add buildLikeCountMap().
- Extend pagination helpers to attach like counts to post pages.
- Update ListRecentPosts, ListPostsByAddr, and GetPostThread to
  return likeCount on every post / thread node.
- Add/extend unit tests and acceptance fixture for like counts.

By specifier.
2026-08-26 19:13:59 -07:00
Chris Troutner 7c4633753f Merge coder likeCount-on-posts implementation
By refactorer.
2026-08-26 19:05:18 -07:00
Chris Troutner 0605d73890 Merge specifier and implement likeCount on posts
By coder.
2026-08-26 19:04:55 -07:00
Chris Troutner c016320528 Update specifier handoff notes after like-counts handoff to coder
By specifier.
2026-08-26 18:59:10 -07:00
Chris Troutner 7f14ceb866 Add Gherkin spec for like counts on post responses
- psf-memo-db/specs/like-counts.feature specifies likeCount on
  /posts/recent, /posts/by/:addr, and /posts/:txid/thread.
- Dry-checked with gherkin-parser + gherkin-ir-dry-checker; zero findings.

By specifier.
2026-08-26 18:57:20 -07:00
Chris Troutner 366e4e5a24 Refresh memo.cash feature parity roadmap in specifier briefing and backlog
- Document Cloudflare limitation and Wayback Machine protocol source.
- Audit existing indexer/DB handlers and mark partial vs missing features.
- Re-prioritize backlog into P0-P6 tiers.
- Suggest P1.1 like counts as next spec.

By specifier.
2026-08-26 18:22:03 -07:00
Chris Troutner 69c38d5a36 Updating Docker files for mono repo 2026-08-26 12:05:01 -07:00
Chris Troutner b58f360c89 Note postHeights backfill utility in specifier handoff notes
By specifier.
2026-08-26 11:48:43 -07:00
Chris Troutner 3433516dea Add postHeights backfill utility for existing psf-memo-db deployments
By specifier.
2026-08-26 11:48:32 -07:00
Chris Troutner 2b77b97fcb Mark post-heights-index complete and update handoff notes
By specifier.
2026-08-26 11:43:32 -07:00
Chris Troutner dd59741918 Fix lint errors in ListUseCase unit tests
By specifier.
2026-08-26 11:43:08 -07:00
Chris Troutner 4980eceba2 Merge architect post-heights-index work
By specifier.
2026-08-26 11:42:22 -07:00
Chris Troutner edfa2fd8c0 Fix lint errors in ListUseCase unit test\n\nBy coder. 2026-08-26 11:41:23 -07:00
Chris Troutner a542363d75 Merge architect handoff 30c0949d3f\n\nBy coder. 2026-08-26 11:39:40 -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
Chris Troutner d5f0b3dc7b Merge refactorer post-heights-index work
By architect.
2026-08-26 11:02:50 -07:00
Chris Troutner 6a8cf6653e Refactor postHeights index code and add property tests
Deduplicate the postHeights query iteration into a shared generator,
extract shared pagination parsing/enrichment, and extract the idempotent
create-if-missing write pattern. Reduces CRAP for the changed post-height
code to <=6 and removes duplicated parse/attach logic across the post list
use cases. Add property tests covering the postHeight key round-trip and
ordering invariants for both the DB and indexer, exposed via a separate
'property' command.

By refactorer.
2026-08-26 11:02:13 -07:00
Chris Troutner fde0086385 Implement postHeights secondary index for efficient pagination
Adds a postHeights LevelDB store written by the indexer and used by
psf-memo-db to paginate recent posts and posts-by-address without full
scans. Includes unit tests and Gherkin acceptance pipelines for both
psf-memo-indexer and psf-memo-db.

By coder.
2026-08-26 10:52:17 -07:00
Chris Troutner 1056a7c302 Update specifier handoff notes with postHeights index gotcha and current HEAD
By specifier.
2026-08-26 10:41:07 -07:00
Chris Troutner 893e5c7513 Merge specifier handoff c13adbf4aa\n\nBy coder. 2026-08-26 10:40:55 -07:00
Chris Troutner c13adbf4aa Add postHeights secondary index specs for efficient post pagination
By specifier.
2026-08-26 10:40:42 -07:00
Chris Troutner 7134979eb8 Reconfigure monorepo for SwarmForge development
- Move specifier-prompt.md to repo root and rewrite it for the monorepo.
- Move specs/feature-backlog.md to root specs/ and update with component scope.
- Add specs/README.md, psf-memo-indexer/specs/README.md, psf-memo-db/specs/README.md.
- Add swarmforge/constitution/articles/monorepo.prompt for shared monorepo rules.
- Update root README.md with repository layout, local dev commands, and SwarmForge info.

By specifier.
2026-08-26 10:23:53 -07:00
Chris Troutner 5a68a42f77 Adding psf-memo-indexer 2026-08-26 09:30:44 -07:00
Chris Troutner 28bde991b5 Adding psf-memo-db 2026-08-26 09:20:10 -07:00
Chris Troutner db4bfb2a57 Adding README 2026-08-26 09:18:14 -07:00
Chris Troutner c168c652de Creating mono-repo from psf-memo-client 2026-08-26 09:10:39 -07:00