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.
This commit is contained in:
Chris Troutner
2026-09-15 19:37:50 -07:00
parent 16af94ef53
commit add20f3b52
2 changed files with 28 additions and 9 deletions
+18 -8
View File
@@ -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`.
+10 -1
View File
@@ -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