• Joined on 2026-03-08
ltms pushed to main at fleet/fleetd 2026-09-03 08:29:58 +02:00
38dec72152 Merge #155: refuse the spawn when allow-list policy cannot be enforced
bd2774b5f1 fleetd #155: refuse a member spawn under memberCredentials.policy=allow-list on a non-zsh shell
Compare 2 commits »
ltms closed issue fleet/fleetd#176 2026-09-03 08:26:20 +02:00
capacity counts panes, not subscription seats, so a subscription profile reports a free slot that cannot be filled
ltms opened issue fleet/fleetd#257 2026-09-03 08:26:14 +02:00
fleet_list's free and the spawn gate now disagree by one on subscription profiles
ltms commented on issue fleet/fleetd#176 2026-09-03 08:25:46 +02:00
capacity counts panes, not subscription seats, so a subscription profile reports a free slot that cannot be filled

Stage 2 merged to main as 0e8bfb7. 1250 tests, 0 failures, 0 compile errors on the merged tree.

Why stage 1 needed a stage 2

Stage 1 was correct code that did nothing on this host, and…

ltms pushed to main at fleet/fleetd 2026-09-03 08:24:24 +02:00
0e8bfb74fc Merge #176 stage 2: group subscription profiles by account, not by name
c50f5b2d61 fleetd #176 stage 2: make effectiveCredentialId() subscription-aware
c796eac09c fleetd #176: subtract the lead's own subscription seat from free
Compare 3 commits »
ltms commented on issue fleet/fleetd#113 2026-09-03 08:19:29 +02:00
CB-611: our checkers keep covering less than they look like they cover — three instances in one day

Instance 1 (the config guard) is fixed on main — 21c539f.

First: two parts of this ticket had gone stale

The ticket was filed 2026-08-17. Checked today before starting:

  • **CB-610 is…
ltms pushed to main at fleet/fleetd 2026-09-03 08:18:56 +02:00
21c539f22e #113: derive the config guard from the record tree, both directions
ltms pushed to main at fleet/fleetd 2026-09-03 08:06:16 +02:00
01a840cc14 #248 follow-up: drive the real backendErrorSink, not a copy of it
ltms closed pull request fleet/fleetd#253 2026-09-03 07:59:45 +02:00
fleetd #249: withhold agentSessionId for a non-provisioned opencode cwd
ltms commented on issue fleet/fleetd#249 2026-09-03 07:59:24 +02:00
fleet_list can report another session's agentSessionId, and fleet_spawn{resumeSessionId} will resume it

Merged to main as c4deef0 (PR #253). 1234 tests, 0 failures, 0 compile errors.

The fix is the one this ticket asked for: refuse to answer rather than guess. agentSessionId() returns…

ltms closed issue fleet/fleetd#249 2026-09-03 07:57:06 +02:00
fleet_list can report another session's agentSessionId, and fleet_spawn{resumeSessionId} will resume it
ltms pushed to main at fleet/fleetd 2026-09-03 07:57:06 +02:00
c4deef08be fleetd #249: withhold agentSessionId when the cwd is not a provisioned worktree
2afa3652bb fleetd #249: withhold agentSessionId for a non-provisioned opencode cwd
Compare 2 commits »
ltms commented on issue fleet/fleetd#176 2026-09-03 07:53:38 +02:00
capacity counts panes, not subscription seats, so a subscription profile reports a free slot that cannot be filled

A third mechanism, measured 20 minutes after the last comment — and this one the spawn gate cannot catch

gx reported maxLoad: 2, live: 0, free: 2. I spawned two members onto it. **Both…

ltms pushed to main at fleet/fleetd 2026-09-03 07:52:18 +02:00
e897e5257b fleetd #114: delete the drifted tool catalogue, keep the flows, guard the names
ltms opened issue fleet/fleetd#252 2026-09-03 07:50:04 +02:00
The REST surface is a supported operator fallback and is documented nowhere — 14 routes, 0 entries
ltms commented on issue fleet/fleetd#176 2026-09-03 07:43:51 +02:00
capacity counts panes, not subscription seats, so a subscription profile reports a free slot that cannot be filled

Live evidence, 2026-09-03 ~09:35 — cause 2 is already handled. Cause 1 is not, and I watched it lie again.

I hit the same exhaustion an hour after the last comment, and this time the…

ltms pushed to main at fleet/fleetd 2026-09-03 07:41:31 +02:00
80092ff359 fleetd #247: stop writing a trust key Claude Code strips on every save
ltms commented on issue fleet/fleetd#201 2026-09-03 07:35:16 +02:00
Backend-error classification needs a real mechanism, not hard-coded strings (#164 points 3 and 4)

Follow-up fix after this closed — coverage() named the wrong config key

Merged as 9d37f3a on main (1229 tests). Recording it here because the ticket has the context.

I found this by…

ltms closed issue fleet/fleetd#115 2026-09-03 07:35:03 +02:00
CB-612: the daemon warns at every boot about a token no profile needs, teaching operators to skim startup warnings
ltms commented on issue fleet/fleetd#115 2026-09-03 07:35:01 +02:00
CB-612: the daemon warns at every boot about a token no profile needs, teaching operators to skim startup warnings

Criterion 4 measured. All three predictions confirmed. Closing.

I redeployed onto the merged jar and checked the boot log against the three predictions I posted here before the restart, so…