Commit Graph
24 Commits
Author SHA1 Message Date
Chris Troutner 9dd9bf9274 Cover empty-message broadcast fallback and persist mutation state
Add a unit test for the broadcast-error message fallback to kill the last
new-post mutant, and commit the differential and acceptance mutation
manifests written by the approved tools during the architect verification
pass for the new-post-errors feature.

By architect.
2026-08-25 17:40:39 -07:00
Chris Troutner 66a684923c Refactor new-post failure handling and add property coverage
- Extract _handleSubmitFailure helper to lower submit() complexity
- Refresh mutation manifest via approved tool
- Add property test for broadcast-failure surfacing/no-navigation

By refactorer.
2026-08-25 17:38:44 -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 009fba71fd Add posting-state coverage and persist mutation state
Cover the new-post posting flag (initial idle, in-flight true, settled
false) to kill the four surviving mutants, and commit the differential and
acceptance mutation manifests written by the approved tools during the
architect verification pass for the new-post-page feature.

By architect.
2026-08-25 17:09:14 -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 8e2693ad08 Refactor memo-post for lower complexity
- Extract _throwIfInvalid and _reflectPost helpers from post()
- Consolidate duplicate validation tests into one parameterized test

By refactorer.
2026-08-25 16:17:23 -07:00
Chris Troutner 64a7f78032 Merge commit '514298bf96' into swarmforge-refactorer 2026-08-25 16:13: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
Chris Troutner aaa366a11f Relocate truncate helpers to shared util
Move general-purpose truncateAddr/truncateTxid out of the feed-specific
post-display module into src/util so the recent-profiles view depends on
the shared utility layer rather than a sibling feature module.

By architect.
2026-08-25 16:08:38 -07:00
Chris Troutner eed9d70f6f Reduce DRY duplication in services and components
- Consolidate memo-db GET helpers into getRecent and getLevelResource
- Share pasteFromClipboard via AppUtil
- Share truncate helpers from post-display
- Extract shared placeholder view
- Generalize wallet-summary blur toggles

By refactorer.
2026-08-25 15:47:27 -07:00
devops-pi a3ee559de2 Make /posts/recent the landing page
Changed the root route '/' from BchSend to RecentPosts so that
memo.fullstackcash.net shows the recent posts feed as the landing page.
2026-07-15 12:51:03 -07:00
9z25 5e7059206a Update social feed and navbar styling 2026-07-15 12:24:32 -07:00
Chris Troutner 1170dcb066 Adding env var to change back end 2026-07-15 10:05:11 -07:00
Chris Troutner 46c03a71b5 checking in latest changes 2026-07-14 19:05:02 -07:00
Chris Troutner 2e8c3b7ea8 Showing names and avatars in reply modal 2026-06-06 07:40:33 -07:00
Chris Troutner 0a3212e6ca Showing replies in modal 2026-06-06 07:33:13 -07:00
Chris Troutner d5d58f816e Adding pagination controls to feed page 2026-06-06 07:16:56 -07:00
Chris Troutner 1b935e0719 Adding icon to represent replies to a post 2026-06-06 07:01:09 -07:00
Chris Troutner de25decdf1 Adding link to profile in post list 2026-06-04 08:40:18 -07:00
Chris Troutner 2be6268bbc Created profile page 2026-06-03 15:13:12 -07:00
Chris Troutner dbc0c298bd Adding Posts page 2026-06-03 12:24:27 -07:00
Chris Troutner a32ae73ba4 Added profiles view 2026-06-03 11:35:29 -07:00
Chris Troutner 26eca8f576 forked from bch-wallet-web3-spa 2026-06-03 11:02:41 -07:00