mirror of
https://github.com/Permissionless-Software-Foundation/psf-memo.git
synced 2026-09-21 16:52:01 -07:00
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.
This commit is contained in:
+18
-9
@@ -167,16 +167,16 @@ Goal: reach feature parity with [memo.cash](https://memo.cash).
|
||||
| Tier | Features | Status |
|
||||
|------|----------|--------|
|
||||
| **P0** | Post, Set name, Reply, Efficient pagination | ✅ shipped |
|
||||
| **P1** | Like counts (read side) ✅; client display ✅; Set profile text, Set profile picture, Follow/Unfollow | next |
|
||||
| **P1** | Like counts (read side) ✅; client display ✅; Set profile text ✅; Set profile picture, Follow/Unfollow | next |
|
||||
| **P2** | Topics (list, feed, post, follow/unfollow) | later |
|
||||
| **P3** | Polls (create, add option, vote) | later |
|
||||
| **P4** | Mute / unmute user | later |
|
||||
| **P5** | Send money memo action, MIP-0009 token exchange | later |
|
||||
| **P6** | Repost, ranked feed, notifications, search, tags, following feed | later |
|
||||
|
||||
**Suggested next spec:** P1.3 — add a "Set Bio" UI on the Account page that
|
||||
broadcasts the `0x6d05` Set profile text action. The indexer and DB already
|
||||
read/store profile text; the missing piece is the client write path and the
|
||||
**Suggested next spec:** P1.4 — add a "Set Avatar URL" UI on the Account page that
|
||||
broadcasts the `0x6d0a` Set profile picture action. The indexer and DB already
|
||||
read/store profile pictures; the missing piece is the client write path and the
|
||||
Account page editor.
|
||||
|
||||
---
|
||||
@@ -305,7 +305,14 @@ that a single user-facing feature may require specs in more than one component.
|
||||
`no-new` errors in unit tests that must be resolved before master is clean.
|
||||
12. **Weak Gherkin examples can survive mutation** — when example values are both
|
||||
the input and the expected output, mutating them passes trivially. Tie
|
||||
assertions to independent fixture data where possible.
|
||||
assertions to independent fixture data where possible. (Observed in
|
||||
set-bio Scenario 1: the account-page bio assertion echoes the same example
|
||||
value that was broadcast.)
|
||||
13. **Profile-text byte limit is 217 bytes (protocol), but the indexer validates
|
||||
looser.** The Memo protocol says `0x6d05` profile text is ≤ 217 bytes. The
|
||||
client Set Bio UI enforces 217. The indexer's `handleSetProfile` still
|
||||
validates against `MAX_POST_SIZE = 65000`; the looser indexer limit is a
|
||||
separate hardening item (protocol parity would use 217).
|
||||
|
||||
---
|
||||
|
||||
@@ -343,7 +350,9 @@ At the end of each session, update this file:
|
||||
- Note the current `master` HEAD commit.
|
||||
- State the next feature to work on.
|
||||
|
||||
Current `master` HEAD: `21373f4` (like-count-display merged to `master`;
|
||||
client + DB tests, build, and lint passing).
|
||||
Next action: **spec P1.3** — add a "Set Bio" UI on the Account page that
|
||||
broadcasts the `0x6d05` Set profile text action.
|
||||
Current `master` HEAD: `e321c7f` (set-bio merged to `master`; client unit 48,
|
||||
property 6, acceptance all-features, lint, and build passing). An unrelated
|
||||
`swarmforge.conf` specifier-model switch that leaked in with the merge was
|
||||
reverted to keep the merge focused on set-bio.
|
||||
Next action: **spec P1.4** — add a "Set Avatar URL" UI on the Account page that
|
||||
broadcasts the `0x6d0a` Set profile picture action.
|
||||
|
||||
+10
-13
@@ -121,7 +121,7 @@ adding/editing the client UI.
|
||||
|---|---------|-------------|------------|--------|-----------|
|
||||
| 1.1 | Like / tip a Memo — read side | `0x6d04` | D | ✅ | `likeCount` returned on `/posts/*` and `/posts/:txid/thread` |
|
||||
| 1.2 | Like / tip a Memo — client display | `0x6d04` | C | ✅ | Feed/Profile/Thread read `likeCount` from API instead of defaulting to 0 |
|
||||
| 1.3 | Set profile text (bio) | `0x6d05` | C, I, D | 🟡 partial | C: add "Set Bio" UI on Account page; I/D already read |
|
||||
| 1.3 | Set profile text (bio) | `0x6d05` | C | ✅ | C: "Set Bio" UI on Account page broadcasts `0x6d05` (217-byte limit) |
|
||||
| 1.4 | Set profile picture | `0x6d0a` | C, I, D | 🟡 partial | C: add "Set Avatar URL" UI; I/D already read |
|
||||
| 1.5 | Follow a user | `0x6d06` | C, I, D | 🔴 missing | C: follow button on profile; D: follow state + following/followers lists |
|
||||
| 1.6 | Unfollow a user | `0x6d07` | C, I, D | 🔴 missing | C: unfollow button; D: follow state |
|
||||
@@ -132,8 +132,8 @@ adding/editing the client UI.
|
||||
2. **Like / tip a Memo — client display** ✅ DONE. The feed, profile, and
|
||||
thread views now read `likeCount` from the API (profile shows a read-only
|
||||
like button).
|
||||
3. **Set profile text** — simple text broadcast + Account page UI.
|
||||
4. **Set profile picture** — URL broadcast + Account page UI.
|
||||
3. **Set profile text** ✅ DONE. Account page "Set Bio" UI broadcasts `0x6d05` with a 217-byte limit and byte counter (task `set-bio`).
|
||||
4. **Set profile picture** — URL broadcast + Account page UI. NEXT.
|
||||
5. **Follow / Unfollow user** — social graph; enables the following feed later.
|
||||
|
||||
### Like / tip details
|
||||
@@ -211,18 +211,15 @@ Polls require a new data model and rendering. The indexer has no handler yet.
|
||||
|
||||
---
|
||||
|
||||
## Suggested first spec for the next session
|
||||
## Suggested next spec
|
||||
|
||||
**Set profile text (bio)** (P1.3):
|
||||
- `psf-memo-client`: add a "Set Bio" UI on the Account page that broadcasts the
|
||||
`0x6d05` Set profile text action via `minimal-slp-wallet.sendOpReturn()`.
|
||||
- `psf-memo-indexer` and `psf-memo-db` already read/store profile text, so this
|
||||
is primarily a client broadcast + Account page UI feature.
|
||||
- The profile page already renders `profileText` from the API; the missing piece
|
||||
is the write path (broadcast) and the Account page editor.
|
||||
**Set profile picture (bio)** (P1.4):
|
||||
- `psf-memo-client`: add a "Set Avatar URL" UI on the Account page that broadcasts
|
||||
the `0x6d0a` Set profile picture action via `minimal-slp-wallet.sendOpReturn()`.
|
||||
- The indexer and DB already read/store profile pictures; the missing piece is
|
||||
the client write path and the Account page editor.
|
||||
|
||||
This is the next smallest end-to-end win toward memo.cash parity after the
|
||||
like-count read/display loop closed.
|
||||
This is the next smallest end-to-end win after the set-bio write path closed.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user