8 Commits
Author SHA1 Message Date
Chris Troutner dd0535d133 Implement Like / Tip a Memo
Adds the Memo like action (0x6d04) with optional author tip, a like/tip
page controller, heart icon + modal UI, and acceptance handlers for
specs/like-tip-memo.feature.

By coder.
2026-08-26 06:14:01 -07:00
Chris Troutner 6e8dcaf783 Wire reply form into thread modal and make comment icon always clickable
- Make PostReplyCount clickable whenever an onClick handler is provided,
  so posts with zero replies still open the thread modal.
- Add ReplyThreadForm inside PostThreadModal with a 184-byte counter and
  optimistic reply rendering.
- Pass wallet/profiles through RecentPosts, Profile, and PostThreadModal.
- Add acceptance handlers for the new reply-thread UI scenarios.
- Extend PostThreadModal CSS for the reply form.

By coder.
2026-08-26 04:38:11 -07:00
Chris Troutner d33fda88ba Implement Reply to a Memo behavior slice and acceptance handlers
- Add src/services/memo-reply.js for 0x6d03 reply broadcast with parent txid payload.
- Add src/services/reply-thread-page.js as the page controller for the reply form.
- Add unit tests for both modules.
- Extend acceptance/lib/handlers.js with reply thread steps.
- Skip navigation in PageController when successPath is unset.

By coder.
2026-08-25 21:09:37 -07:00
Chris Troutner bd2eac54cf Implement Set Name feature (0x6d01)
- Add MemoSetName service with 77-byte UTF-8 validation and broadcast.
- Add SetNamePage controller with byte counter and navigation to /account.
- Add AccountPage controller showing stored name and Set Name button.
- Add Profiles session store to share the new name across pages.
- Add React views /memo/set-name and /account, plus nav link.
- Update acceptance handlers for set-name scenarios and fix fake wallet
  sendOpReturn signature to match public minimal-slp-wallet API.
- Update existing post memo tests to match the corrected wallet API.

By coder.
2026-08-25 19:50:27 -07:00
Chris Troutner 164bdb3cba Surface broadcast errors on the new post page
Implements New Post Page scenario 6 (specs/memo-new.feature): when a memo
broadcast fails, the app surfaces the real wallet error and the user stays
on /posts/new instead of navigating to the feed.

- src/services/new-post.js: distinguish local validation errors from
  broadcast failures; expose the real error message via broadcastError.
- src/components/app-body/new-post/index.js: render the broadcast error.
- acceptance/lib/handlers.js: support wallet-fail, attempts-to-broadcast,
  error-containing, and remain-on-path steps.
- Unit tests for broadcast-failure surfacing.

By coder.
2026-08-25 17:33:28 -07:00
Chris Troutner 05f393c03f Implement New Post Page
Adds a New Post page for composing and broadcasting Memo posts:
- src/services/new-post.js: testable controller (input, character counter
  counting down from the memo limit, validation/length errors, navigation to
  the recent feed after a successful post).
- src/components/app-body/new-post: React view with a message textarea, post
  button, and remaining-character counter.
- Route /posts/new and a navigation menu link.
- Extend acceptance step handlers to cover both specs/post-memo.feature and
  specs/memo-new.feature wording; add unit tests for the controller.
- Drop redundant 'use strict' in compiled modules to fix the CI build warning.

By coder.
2026-08-25 17:00:27 -07:00
Chris Troutner c52ad12d23 Add acceptance runner adapter and persist mutation state
Add the persistent runner adapter for gherkin-mutator and commit the
differential/acceptance mutation manifests written by the approved tools
during the architect verification pass for the post-memo feature.

By architect.
2026-08-25 16:23:38 -07:00
Chris Troutner 514298bf96 Implement Post a Memo behavior with acceptance pipeline
Implements the post-memo behavior slice per specs/post-memo.feature:
- src/services/memo-post.js: compose, validate (empty/length), and broadcast
  a Memo post OP_RETURN (0x6d02) via the minimal-slp-wallet adapter surface.
- Stands up the Babashka APS acceptance pipeline (entrypoint generator,
  runtime, regex step handlers, convenience runner).
- Adds focused unit tests for the memo behavior.

By coder.
2026-08-25 16:13:05 -07:00