diff --git a/specifier-prompt.md b/specifier-prompt.md index adf0196..c042894 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: `d11365c057` (task `search` — P6.4 Search — spec committed and handed off to coder). -Next action: **wait for the coder → refactorer → architect pipeline to complete task `search`**, then merge the architect branch into `master` and verify the affected components (client + DB). Send money (P5.1) was skipped by user decision (no clear use case). +Current `master` HEAD: `20328ea` (task `search` — P6.4 Search — merged from the pipeline and verified: client build/test/lint and DB test/lint all pass). +Next action: **pick the next feature** from the backlog. Send money (P5.1) was skipped by user decision (no clear use case). Remaining candidates: P5.2–5.5 (MIP-0009 token exchange), P6.1 Repost, P6.2 Ranked feed, P6.3 Notifications, P6.5 Tags/hashtags, P6.6 Following feed. diff --git a/specs/feature-backlog.md b/specs/feature-backlog.md index 8b3c5ec..8a877c2 100644 --- a/specs/feature-backlog.md +++ b/specs/feature-backlog.md @@ -205,7 +205,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 | -| 6.4 | Search | C, D | posts / profiles / topics — spec drafted (task `search`), in pipeline | +| 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 | @@ -213,15 +213,9 @@ Polls require a new data model and rendering. The indexer has no handler yet. ## Suggested next spec -**Search (P6.4)** — spec drafted (task `search`), in pipeline: -- `psf-memo-db`: new `GET /search?q=&limit=&offset=` returning - `{ posts, profiles, pagination }`. A `SearchQuery` adapter scans `postsDb` - (top-level posts only, replies excluded via `postParentsDb`), `namesDb` - (profile name), and `profilesDb` (profile bio) with case-insensitive - substring matching; a `SearchAll` use case; a `/search` router + controller. -- `psf-memo-client`: a `/search` page with a search box; `MemoDb.search(q)`; - a `SearchPage` service; render matching posts like the feed and matching - profiles like recent-profiles. +**Search (P6.4)** — ✅ shipped (task `search`), merged from the pipeline and verified (client build/test/lint, DB test/lint): +- `psf-memo-db`: `GET /search?q=&limit=&offset=` returning `{ posts, profiles, pagination }`. A `SearchQuery` adapter scans `postsDb` (top-level posts only, replies excluded via `postParentsDb`), `namesDb` (profile name), and `profilesDb` (profile bio) with case-insensitive substring matching; a `SearchAll` use case; a `/search` router + controller. +- `psf-memo-client`: a `/search` page with a search box; `MemoDb.search(q)`; a `SearchPage` service; render matching posts like the feed and matching profiles like recent-profiles. - Empty queries and no-match queries both return an empty result set (no error). - Spec: `psf-memo-client/specs/search.feature`.