Public: anyone can read this; the crew can change it.
The tell-me inbox card lists the parent's new commits, so the owner can decide without leaving the inbox #2646
Check · Review · Land · Live done — Landed and live in production.
The `tell-me` inbox card now lists up to 10 of the parent's new commits, newest first, so the owner can decide without leaving the inbox. `bun x tsc --noEmit` is clean and the upstream tests pass (14, including three new ones). I ran only those, not the full check.
shipped production is serving it deploy 0b2906d
The tell-me inbox card now lists up to 10 of the parent's new commits, newest first, so the owner can decide without leaving the inbox. bun x tsc --noEmit is clean and the upstream tests pass (14, including three new ones). I ran only those, not the full check.
- List format: each line is the short sha, the date and the first line of the subject, cut at 100 characters. If there are more than 10 commits, the card adds "and N more".
- How it reads them:
newestCommitsinsrc/spawn/upstream.tsrunsgit logoverHEAD..refs/upstream/HEADwith fixed arguments and no user text. I compared againstrefs/upstream/HEADbecause that is what the existing behind-count uses, rather than a per-branch ref. - Escaping: the list goes in a fenced block, which the markdown renderer escapes as plain text. Backticks and control characters are stripped from subjects, so a subject can't close the fence. The markdown renderer has no backslash escapes, which is why I used a fence.
- One card per tip, and failures: the card logic is unchanged. A failed or empty
git logsends the card without the list. - Tests: in
test/spawn-upstream-card.test.ts, with two local bare repositories:
- 3 commits appear in order.
- 12 commits show 10 plus "and 2 more".
- A subject containing <script>, ](javascript: and a triple backtick renders inert, and a long subject is cut.
I did not add a test for the log-read failure path. I couldn't break the log read reliably in a local repository, so that fallback is untested. I also didn't add per-commit links or authors.
To try it, put a tell-me fork behind its parent by a few commits and run the upstream check. The owner's inbox card then lists the commits.
The inbox card now lists up to 10 of the parent's new commits (short sha, date, subject), newest first, with "and N more". I read the diff and tests only. I did not open the preview or the screenshots, and I did not run the tests, so I am relying on the pull being green. The git call uses fixed arguments with no user text. Subjects are stripped of control characters and backticks and cut at 100 characters. The list sits in a fence that renders as escaped text, and a hostile-subject test covers that. A failed log read sends the card without the list, so the card never breaks. It is a text-only change to the card, so there is no new page, MCP or terminal surface. The card is the same one the inbox and terminal already show.
Two things I would do next:
- Test the fallback path where the log cannot be read. For example, call newestCommits against a directory with no refs/upstream/HEAD and expect an empty string. That behaviour has no test today.
- Remove the unused
subjectparameter this change added tocommitin the first describe block of test/spawn-upstream-card.test.ts. Only the new describe block uses it.
The
tell-meinbox card now lists up to 10 of the parent's new commits, newest first, so the owner can decide without leaving the inbox.bun x tsc --noEmitis clean and the upstream tests pass (14, including three new ones). I ran only those, not the full check.newestCommitsinsrc/spawn/upstream.tsrunsgit logoverHEAD..refs/upstream/HEADwith fixed arguments and no user text. I compared againstrefs/upstream/HEADbecause that is what the existing behind-count uses, rather than a per-branch ref.git logsends the card without the list.test/spawn-upstream-card.test.ts, with two local bare repositories:- 3 commits appear in order. - 12 commits show 10 plus "and 2 more". - A subject containing
<script>,](javascript:and a triple backtick renders inert, and a long subject is cut.I did not add a test for the log-read failure path. I couldn't break the log read reliably in a local repository, so that fallback is untested. I also didn't add per-commit links or authors.
To try it, put a
tell-mefork behind its parent by a few commits and run the upstream check. The owner's inbox card then lists the commits.Closes #2644