From d3903fa2b47ed8547a55cd621b2be40d27db5726 Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 2 Sep 2026 20:37:53 -0700 Subject: [PATCH] Record notifications merge in briefing and backlog By specifier. --- specifier-prompt.md | 4 ++-- specs/feature-backlog.md | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/specifier-prompt.md b/specifier-prompt.md index 30e3f77..5d47931 100644 --- a/specifier-prompt.md +++ b/specifier-prompt.md @@ -368,5 +368,5 @@ 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: `297abf6` (task `notifications` — P6.3 Notifications — spec approved by the user and handed off to the coder; awaiting the coder → refactorer → architect pipeline, then merge the architect branch into `master` and verify the affected components (client build/test/lint, DB test/lint).). -Next action: **await the pipeline for task `notifications`**, then merge the architect branch into `master` and verify. Send money (P5.1) was skipped by user decision (no clear use case). Remaining candidates after notifications lands: P5.2–5.5 (MIP-0009 token exchange), P6.1 Repost, P6.2 Ranked feed, P6.5 Tags/hashtags. +Current `master` HEAD: `45a2fc2` (task `notifications` — P6.3 Notifications — merged from the architect branch into `master` and verified: client build/test/lint (239 tests pass), DB test/lint. Backlog and briefing updated.). +Next action: **ask the user for the next feature**. Remaining candidates: P5.2–5.5 (MIP-0009 token exchange), P6.1 Repost, P6.2 Ranked feed, P6.5 Tags/hashtags. Send money (P5.1) was skipped by user decision (no clear use case). diff --git a/specs/feature-backlog.md b/specs/feature-backlog.md index d510f19..f8dd68b 100644 --- a/specs/feature-backlog.md +++ b/specs/feature-backlog.md @@ -204,7 +204,7 @@ Polls require a new data model and rendering. The indexer has no handler yet. |---|---------|------------|-------| | 6.1 | Repost a memo | C, I, D | `0x6d0b` is marked *planned* in the protocol | | 6.2 | Ranked feed | C, D | memo.cash "ranked" post ordering | -| 6.3 | Notifications | C, D | replies / likes / follows to my posts — 🔜 in pipeline (task `notifications`) | +| 6.3 | Notifications | C, D | replies / likes / follows to my posts — ✅ shipped (task `notifications`) | | 6.4 | Search | C, D | posts / profiles / topics — ✅ shipped (task `search`) | | 6.5 | Tags / hashtags | C, D | link + filter by tag | | 6.6 | Following feed | C, D | feed filtered to followed users — ✅ shipped (task `following-feed`) | @@ -213,6 +213,8 @@ Polls require a new data model and rendering. The indexer has no handler yet. ## Suggested next spec +**Notifications (P6.3)** — ✅ shipped (task `notifications`), merged from the pipeline and verified (client build/test/lint, DB test/lint). A read-only notifications page: the client shows a Notifications nav entry and page that lists replies, likes, and follows directed at the viewer's posts/profile, newest first; `psf-memo-db` exposes `GET /posts/notifications/:addr` via a `ListNotifications` use case and `NotificationsQuery` adapter that aggregates replies/likes/follows from the existing indexes. Spec: `psf-memo-client/specs/notifications.feature`. + **Following feed (P6.6)** — ✅ shipped (task `following-feed`), merged from the pipeline and verified (client build/test/lint, DB test/lint). A second-pass hardening merge from the architect (2026-09-02) extracted `parseRequiredString` into `pagination.js` (shared by the addr/room-scoped list use cases) and added client + DB composition-root hardening tests; merged to `master` at `4422372` and re-verified. Following Feed is a read-only aggregation: the viewer sees top-level posts (replies excluded) authored only by profiles they follow, newest first, never their own posts. - `psf-memo-db`: `GET /posts/following/:addr?limit=&offset=` returning `{ posts, pagination }`, joining the follows index (`FollowQuery.listFollowing`) with the posts index (`PostQuery.scanFollowingFeedTxidsAndCount`). Empty following or no posts → empty result set. - `psf-memo-client`: a "Following" nav page at `/posts/following` that reads the viewer's wallet address, calls `MemoDb.getFollowingFeed`, and renders posts like the recent feed; shows "You are not following anyone." when following nobody and "No posts from profiles you follow." when followed profiles have no posts.