From add20f3b52bb7cf5e8315d08b7abec21023561df Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Tue, 15 Sep 2026 19:37:50 -0700 Subject: [PATCH] Record post-link-formatting completion Mark the feature done in the backlog, add gotchas about stale architect verification records and surviving link-example prose mutations, and refresh the standing briefing HEAD/next-action lines. By specifier. --- specifier-prompt.md | 26 ++++++++++++++++++-------- specs/feature-backlog.md | 11 ++++++++++- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/specifier-prompt.md b/specifier-prompt.md index 3d4fd52..f90124a 100644 --- a/specifier-prompt.md +++ b/specifier-prompt.md @@ -408,6 +408,20 @@ that a single user-facing feature may require specs in more than one component. merging, check its `git_sha` matches the merged commit; on a matching `pass`, do not re-run the full suite — run only the merged feature's acceptance test. +26. **An architect verification record can name the pre-review commit.** For + post-link-formatting the record's `git_sha` was the refactorer commit + `e17c515`, not the review commit `b63792f`. The review commit changed + `post-links.js`, `post-content.js`, and tests, so the record was stale; + re-ran `verify.sh client` on the merged `b63792f` and committed the + refreshed record (`16af94e`). Always compare the record's `git_sha` to the + actual architect review commit, not just the branch tip. +27. **Trailing prose in link examples can survive Gherkin mutation.** Soft + Gherkin mutation of `post-link-formatting.feature` left 3 survivors: + single-character case mutations of setup-only trailing words (`herE`, + `rePly`, `livE`) that no assertion reads. Keep the trailing words because + they pin the parser's whitespace boundary, but expect those case mutations + to survive; they are weak example-to-assertion links, not implementation + gaps. --- @@ -459,14 +473,10 @@ 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: `0942b2e` (thread-query-bounds merged at `c8ceb82`, then -a process-improvement pass on this branch: the architect now always notifies -the specifier; acceptance LevelDB temp dirs are cleaned up; the handoff daemon -is self-healing; APS is single-sourced at `tmp/aps`; acceptance generation is -incremental; `verify.sh` emits a machine-readable verification record; -`mutate-file.sh` guards differential under-selection; and `clean-builds.sh` -keeps mutation worker copies small. Run `swarmforge/scripts/state.sh` to refresh -these HEAD lines.) +Current `master` HEAD: `16af94e` (post-link-formatting merged at `b63792f`; a +refreshed client verification record was committed at `16af94e` after the +architect's record named the pre-review refactorer commit. Run +`swarmforge/scripts/state.sh` to refresh these HEAD lines.) Next action: **TBD** — current direction is front-end improvements to `psf-memo-client` (UI/UX polish, accessibility, performance, responsiveness, state handling, error surfacing). See `specs/feature-backlog.md`. diff --git a/specs/feature-backlog.md b/specs/feature-backlog.md index 22a0279..9eff01a 100644 --- a/specs/feature-backlog.md +++ b/specs/feature-backlog.md @@ -2,7 +2,7 @@ **Status**: DRAFT — refreshed 2026-09-03. **Owner**: specifier. -**Last updated**: 2026-09-03 +**Last updated**: 2026-09-16 --- @@ -31,6 +31,15 @@ focus is **front-end improvements** to `psf-memo-client` (the React SPA). ## Recently completed +- **Post link formatting (2026-09-16):** post text now auto-links `http://` and + `https://` URLs and bare domains such as `memo.fullstackcash.net`. Explicit + URLs keep their scheme; bare domains are linked with `https://` while their + visible text stays as written. Links render as anchors with `target="_blank"`; + embeddable YouTube links keep embedding instead of becoming plain links. Pure + parser `psf-memo-client/src/services/post-links.js` (`parsePostLinks`) feeds + the shared `PostContent` renderer. Client-only rendering feature. Spec: + `psf-memo-client/specs/post-link-formatting.feature`. Merged to `master` at + `b63792f`. - **Thread query performance (2026-09-15):** `GET /posts/:txid/thread` now does work proportional to the thread instead of the whole database. Like counts are computed only for the thread's txids via `countLikesForTxids` (the global