From 0dba837238f7eb3d5b3590356ccd0e6f4d3fad6e Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Fri, 4 Sep 2026 09:38:04 -0700 Subject: [PATCH] Update briefing and backlog after youtube-embed merge By specifier. --- specifier-prompt.md | 16 +++++++++++++--- specs/feature-backlog.md | 8 ++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/specifier-prompt.md b/specifier-prompt.md index f07282c..56b42b2 100644 --- a/specifier-prompt.md +++ b/specifier-prompt.md @@ -322,6 +322,15 @@ that a single user-facing feature may require specs in more than one component. centralizes the `height % epoch === 0` decision and is called from both the IBD and ZMQ paths in `psf-memo-block-indexer.js`. Spec: `psf-memo-indexer/specs/zmq-mode-db-backups.feature`. +17. **Rendering features need a pure, acceptance-testable seam.** Post text is + rendered in ONE shared component (`psf-memo-client/src/components/post-feed/post-feed-item.js`, + used by both feed and thread views). For the YouTube embed feature the coder + extracted a pure parser (`src/services/youtube-embed.js`) that turns post text + into `{ text, videoId }`, and a `post-content.js` component written in plain + `React.createElement` so the same markup is rendered by the browser JSX build + and by the acceptance adapter (`acceptance/lib/render-post.js`) under Node. + Spec rendering features against that observable seam (embedded player shown, + raw URL suppressed, surrounding text preserved) rather than against the DOM. --- @@ -359,7 +368,8 @@ 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: `d99eda3` (merged architect's notifications refactor + -startup bloat check; verified db 315 passing + lint clean, client 239 passing + -lint clean + build succeeds). +Current `master` HEAD: `b63019c` (merged architect's youtube-embed review; +verified client build OK + 260 unit passing + lint clean + all 21 acceptance +suites pass incl. youtube-embed 1-3; db 331 passing + lint clean for the +carried-in CRAP/DRY refactor). Next action: **ask the user for the next front-end improvement to spec**. diff --git a/specs/feature-backlog.md b/specs/feature-backlog.md index 6f66786..565b8d0 100644 --- a/specs/feature-backlog.md +++ b/specs/feature-backlog.md @@ -29,6 +29,14 @@ focus is **front-end improvements** to `psf-memo-client` (the React SPA). - A single user-facing feature may still touch more than one component; call out all affected components in the task description and in the handoff. +## Recently completed + +- **YouTube embed (2026-09-04):** posts whose text contains a YouTube link + (`youtube.com/watch?v=…` or `youtu.be/…`) render an embedded player instead + of the raw URL; surrounding text is preserved; non-embeddable URLs stay plain + text. Client-only rendering feature. Spec: + `psf-memo-client/specs/youtube-embed.feature`. Merged to `master` at `b63019c`. + --- ## Research notes