Skip to content

Train train/2026-11-10.1 - #153

Merged
QuicksilverSlick merged 8 commits into
mainfrom
train/2026-11-10.1
Nov 10, 2026
Merged

QuicksilverSlick merged 8 commits into
mainfrom
train/2026-11-10.1

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-10.1
Base: f28faa2
Round: 0
Release: desktop-release: a green main CI publishes the desktop update 1-2 h after the merge.

PR Head Tier Built-by
#149 2904daf green tapped claude-code/claude-opus-5-5

Notes:

  • none

Built-by: steward

QuicksilverSlick and others added 8 commits November 9, 2026 13:43
…oken

Every agent's pool is token=env;fallback=<folder>, both on the second
account, so a limit on it had nowhere to hop. A pool entry can now be
label=dpapi:<path>: a long-lived token in a file encrypted for this
Windows user, read at each launch and each sign-in check and handed to
the child only in its environment. A file that gives no token fails its
own entry and the pool moves on. A pool with no login left refuses to
start the agent rather than running it on whatever its own environment
holds.

A folder entry used to send CLAUDE_CODE_OAUTH_TOKEN="", which the CLI
reads as signed out. It now sends no token, and the variable is removed
where the launch env is applied: the agent spawn and the sign-in check.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The pool string names the primary's token file, and the agent's tool
shell inherited it. It is now removed from the child, beside the Nostr
key.

Two gates had no test. Making the token removal unconditional, or moving
it after the login's own env, stripped every token=env and dpapi login
and passed the whole suite. So did loosening the refusal to start with
no login left. A real child now shows each kind of login's token, and a
pool with no login left starts nothing.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A real 401 on a dpapi login marked it signed out, and the next sign-in
check cleared the mark: claude auth status answers loggedIn:true for any
token without asking the server. The work went back onto the revoked
token every 15 minutes, with a lost-sign-in text and an all-clear each
time, and every agent shares that one file.

A real 401 now remembers the file's modified time. A check's yes clears
the mark only once the file has changed; a real answer still clears it.
A mark set because the file could not be read still clears on a good
read. token=env keeps today's behaviour.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A launch that could not read a token file marked the login signed out
whatever the reason, and the owner was told "Claude said: not signed in"
when Claude was never asked. A PowerShell timeout moved work off a good
account as a lost sign-in. The card's remedy was also wrong for a dead
file: signing in does not replace it.

A silent or unstartable PowerShell now sets the login aside as a timed
limit, tried again in 30 minutes, and tells the owner once. A dead file
still takes the lost-sign-in path, in its own words: which login's file,
what is wrong and that set-account.ps1 is the fix, on the text, the STATE
record (class=token_file) and the card. A login already inside a limit
keeps it.

The sign-in check's handling of a dead file moves to one small function
with a test: a file that gave no token is never judged by the CLI.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A dead token file at boot, a slot refill or an idle move queued the
owner's text, and only a finished turn or a sign-in check that changed
something sent it. An idle agent ran on another account and the phone
stayed silent.

The maintenance beat now sends a text that is waiting. It does nothing
when none is, so a STATE record that merely fell due keeps its carrier
and #factory keeps its cadence.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A launch could read the same dead file once per pool entry plus one,
under the factory lock on the main loop, so a hung PowerShell held the
loop for 30 s or more and the comment's 15 s was low. The loop now stops
when the pool offers a login it already failed, and the comments give the
real bound: 15 s per dpapi entry.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A typo in a dpapi entry (DPAPI: in capitals, a label with a dot or a
space, a label over 32 characters) launched the agent with
CLAUDE_CONFIG_DIR set to the whole string and any token removed. Nothing
named the bad entry. It now fails that entry with a plain reason and the
pool moves on.

Claude-Account: russelledeming@gmail.com
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@QuicksilverSlick
QuicksilverSlick merged commit fd3bdee into main Nov 10, 2026
65 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