Commit Graph
238 Commits
Author SHA1 Message Date
Chris Troutner 9caff9c4c3 Remove memo action constructor duplication and persist mutation state
Move per-action config into a static config object on MemoPost and
MemoSetName and have the MemoAction base constructor read it, eliminating
the DRY-flagged duplicate constructor pattern. Commit the differential and
acceptance mutation manifests written by the approved tools during the
architect verification pass for the set-name feature.

By architect.
2026-08-25 20:01:43 -07:00
Chris Troutner d79b9f04bd Refactor memo actions and page controllers to share base classes
Extract MemoAction and PageController base classes to remove structural
duplication between the memo post/set-name actions and the new post/set-name
page controllers. Add property tests for the set-name byte counter and
validation invariants. Refresh mutation manifests for the refactored files.

By refactorer.
2026-08-25 19:55:20 -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 359cc20fd6 Merge commit 'bb9d00a869' into swarmforge-coder 2026-08-25 19:41:46 -07:00
Chris Troutner bb9d00a869 Add Set Name Gherkin spec
By specifier.
2026-08-25 19:41:25 -07:00
Chris Troutner 094dbf6d3d Using Kimi K2.7-code for coder 2026-08-25 18:59:01 -07:00
Chris Troutner 69a73142d0 Merge pull request #4 from Permissionless-Software-Foundation/feat1
Post a memo message
2026-08-25 18:56:17 -07:00
Chris Troutner aaa5b09425 Creating prompt for next session 2026-08-25 18:15:47 -07:00
Chris Troutner 695292ccd2 Fix Memo post broadcast to use wallet public sendOpReturn signature
By specifier.
2026-08-25 18:03:09 -07:00
Chris Troutner 122524ca18 Merge New Post Page broadcast-error surfacing fix
By specifier.
2026-08-25 17:54:11 -07:00
Chris Troutner 8965988e03 Merge architect new-post-errors coverage
By coder.
2026-08-25 17:41:02 -07:00
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 e7933fe9fa Merge commit '164bdb3cba' into swarmforge-refactorer 2026-08-25 17:33:53 -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 4e0f40c22d Merge specifier new-post-errors spec
By coder.
2026-08-25 17:30:40 -07:00
Chris Troutner a12575114c Add New Post Page broadcast-error surfacing spec
By specifier.
2026-08-25 17:30:22 -07:00
Chris Troutner 23c231ea1e Merge completed Post a Memo and New Post Page work
By specifier.
2026-08-25 17:20:21 -07:00
Chris Troutner 3169425171 Fix Promise param name in posting-state test
Rename new Promise param to satisfy standard promise/param-names rule.

By refactorer.
2026-08-25 17:13:21 -07:00
Chris Troutner 84f5fe7931 Fix standard lint in posting-state test
Rename a Promise constructor param to satisfy standard's promise/param-names.

By coder.
2026-08-25 17:13:16 -07:00
Chris Troutner 9e7b66c608 Merge architect new-post-page coverage
By coder.
2026-08-25 17:09:42 -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 d57975c466 Add property tests for memo post and new post invariants
- Add a small seeded property-testing harness (node:test based)
- Property-test validation classification, character-counter
  conservation, setInput round-trip, and menu-link idempotence
- Expose as explicit test:property command, separate from unit tests

By refactorer.
2026-08-25 17:06:00 -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 4fa92d16f6 Merge specifier new-post-page spec
By coder.
2026-08-25 16:51:26 -07:00
Chris Troutner 93850340e1 Add New Post Page Gherkin spec
By specifier.
2026-08-25 16:50:39 -07:00
Chris Troutner 54b356cd8b Merge architect post-memo runner adapter
By coder.
2026-08-25 16:24:20 -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 3b15315ca6 Merge architect reduce-dry-duplication
By coder.
2026-08-25 16:14:57 -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 c9556be67a Merge specifier post-memo spec
By coder.
2026-08-25 16:05:49 -07:00
Chris Troutner d071b21e9b Add Post a Memo Gherkin spec and feature backlog
By specifier.
2026-08-25 16:01:43 -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
Chris Troutner d886ed2c8d Adding swarmforge CLIs for testing 2026-08-25 15:35:45 -07:00
Chris Troutner a8230982a4 Integrating swarm-forge into project 2026-08-25 14:50:21 -07:00
Chris Troutner f6e987b135 slight tweek to swarm forge 2026-08-25 14:20:53 -07:00
Chris Troutner 0b5a1028b8 Adding swarm-forge to repo 2026-08-25 13:29:34 -07:00
Chris Troutner f5aa5b00ac Merge pull request #3 from Permissionless-Software-Foundation/devops-unstable
Making recent posts the landing page
2026-07-15 12:55:00 -07:00
devops-pi 0d7cfdf204 Updating package-lock.json 2026-07-15 12:54:01 -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
devops-pi c5bb98ac06 testing changes 2026-07-15 12:47:36 -07:00
Chris Troutner 01df736d5c Merge pull request #2 from Permissionless-Software-Foundation/unstable
Update social feed and navbar styling
2026-07-15 12:35:25 -07:00
9z25 5e7059206a Update social feed and navbar styling 2026-07-15 12:24:32 -07:00
Chris Troutner f94c87e9dd Merge branch 'master' of https://github.com/Permissionless-Software-Foundation/psf-memo-client 2026-07-15 10:05:36 -07:00
Chris Troutner 1170dcb066 Adding env var to change back end 2026-07-15 10:05:11 -07:00
Chris Troutner 2b9a871c00 Merge pull request #1 from Permissionless-Software-Foundation/unstable
UI Development
2026-07-15 09:17:32 -07:00
Chris Troutner 46c03a71b5 checking in latest changes 2026-07-14 19:05:02 -07:00