Skip to content

Train train/2026-11-09.2 - #152

Merged
QuicksilverSlick merged 13 commits into
mainfrom
train/2026-11-09.2
Nov 10, 2026
Merged

QuicksilverSlick merged 13 commits into
mainfrom
train/2026-11-09.2

Conversation

@QuicksilverSlick

Copy link
Copy Markdown
Owner

Steward train. The steward reads this body back; do not edit it.

Repo: QuicksilverSlick/buzz
Branch: train/2026-11-09.2
Base: 849bd8b
Round: 0
Release: desktop-release: a green main CI publishes the desktop update 1-2 h after the merge.

PR Head Tier Built-by
#150 a7d091c green claude-code/claude-opus-5-5
#151 39ed266 green claude-code/claude-opus-5-5
#148 709f920 green claude-code/claude-opus-5-5

Notes:

Built-by: steward

QuicksilverSlick and others added 13 commits November 9, 2026 13:52
A phone that lost its socket across a delete keeps showing the card, the
relay refuses a tap on it and the phone's code ignores the refusal, so
the tap vanishes with nothing said. An untouched re-drop or a card no
longer asked now stays, as a kept one does: its first line says a tap
doesn't count, its seeds come off and a tap on it gets one reply.

Publish (b) no longer calls the relay, so nothing there can fail a tick.
The edit, its lookup and any failure are the old posts' tick's, on the
same budgets, and on the board under "Old cards".

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
After a key had been pasted once, the community roster stayed cached.
A plain search or malformed key that matched nobody then showed "That
key isn't a member of this community yet" instead of "No matching
people or agents." The resolved check never required a parsed key, and
the roster lookup for a null key is always false, so no key at all
counted as an outsider.

Require a parsed key before treating the lookup as resolved. Wording
only: nothing could be added by mistake.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every card retired in a thread added a kept_at entry, including untouched
ones main deleted and left no entry for. An older card still open in that
thread then stopped taking replies that name only the root, for good,
with nothing said.

A retired post in a thread now reads what is on it once it is edited, and
adds the entry only if there is something besides its seeds and its own
closing edit, as main did. It costs one lookup more, on the old posts'
one a tick, and only for a post in a thread.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Retired posts now stay on the relay with their bench:card marker. With
state lost and the same Drop asked again, publish (c) adopted one as the
live card: a seedless post saying a tap doesn't count, whose tap would
then be read as the answer.

An orphan edited closed now goes to kept like any orphan with something
on it, and a new card goes up. One lookup per orphan, after lost state
only.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Close-out receipts are the largest group of dead pills: 92 on 4 Nov. A
close-out now makes its card an old post: first line, Closed note, seeds
off, and for 24 h one reply to a tap. It stays item.card, so the kit's
findCard is unaffected, and its edit no longer fails a tick.

Receipts already in state catch up one at a time behind live work,
unwatched, in about 4 minutes.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nothing failed with `held` taken out of publish (b)'s guard: a re-worded
drop waits in the inbox before it gets there, so only a card whose format
moved reaches it. Without the guard that card is retired for good with a
tap on it unread.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The real relay refuses a reply whose root doesn't match the thread, but
the fake one doesn't check, so every Bench test still passed with the
root taken out of showing(). A tap on a receipt in a thread would have
failed its one reply for the whole window, with CI green.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Publish (a2b) moved the card's hash on and owed the edit even in a channel
that isn't ready. The old posts' tick skips those, so past 24 h the entry
went with no try and no alarm, and the hash had already moved, so the
receipt kept its live text for good.

The hash now stays behind until the channel is ready, so the close-out
is picked up then, however long that takes.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A later close-out on a receipt still in `replaced` changed only what it
shows and kept the first one's clock. An edit failing once near the end
of those 24 h was let go before its retry, and the hash had moved on, so
the phone kept the older report with nothing said after that.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A format bump changes every receipt's hash, so publish (a2b) made each one
a watched old post in one tick. That filled WATCH_MAX with posts closed
days ago, put a false alarm on the board and pushed real old posts out of
the read.

Only a real close-out is watched now. When just the format or stamp moved
the receipt is edited again unwatched, as the backfill does.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@QuicksilverSlick
QuicksilverSlick merged commit f28faa2 into main Nov 10, 2026
63 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant