This website requires JavaScript.
3916adc372
fleetd #184 : stop claiming memberHerdrSocket proves a different OS user
worker/fleetd-184-uid-claim-8e1f31-4
Dai Ha
2026-09-03 20:10:22 +07:00
fa97f598dd
Merge #265 : state the member trust model at startup (#184 )
Dai Ha
2026-09-03 16:48:44 +07:00
ea9aa4fd77
fleetd #184 : report member trust model
worker/fleetd-184-warn-b381ee-10
Dai Ha
2026-09-03 16:48:13 +07:00
a2b8caf6b5
#184 : keep the reason SSH_AUTH_SOCK matters, and the measurement
Dai Ha
2026-09-03 16:42:11 +07:00
b5ddbe5757
Merge #264 : sshAuthSock is not a control, and the config now says so (#184 )
Dai Ha
2026-09-03 16:41:52 +07:00
d223a93039
fleetd #184 : correct sshAuthSock guidance
worker/fleetd-184-docs-be1d12-9
Dai Ha
2026-09-03 16:38:56 +07:00
96d8191149
Merge #263 : free reports what the spawn gate grants (#257 )
Dai Ha
2026-09-03 16:33:20 +07:00
f0e7ac73d6
#103 : give the operator the string that is actually in the log
Dai Ha
2026-09-03 16:32:23 +07:00
e2fe861b4d
Merge #262 : the systemd unit names all three secrets it needs (#103 )
Dai Ha
2026-09-03 16:32:07 +07:00
279d6f5fbd
fleetd #257 : free must stop subtracting leadSeatCount
worker/fleetd-257-9bf010-7
Dai Ha
2026-09-03 16:28:32 +07:00
34480cebef
Merge #261 : compare-and-swap the workspace-trust seed against an external writer (#247 )
Dai Ha
2026-09-03 16:26:37 +07:00
9d0bf14c46
fleetd #103 : document systemd worker secrets
worker/fleetd-103-23a113-6
Dai Ha
2026-09-03 16:23:29 +07:00
5a3ab5764c
fleetd #247 : CAS seedTrustDialog against the operator's own live Claude Code
worker/fleetd-247-342356-5
Dai Ha
2026-09-03 16:20:20 +07:00
3bad9f5785
Merge #260 : restore the already-gone-worktree teardown test (#116 )
Dai Ha
2026-09-03 16:13:15 +07:00
8308c0b68f
fleetd #116 : recover the already-gone-worktree teardown regression test
worker/fleetd-116-04dea8-4
Dai Ha
2026-09-03 16:11:27 +07:00
3b3063eb2b
#252 : the route scrape counted commented-out registrations as live
Dai Ha
2026-09-03 15:59:35 +07:00
df9086263d
Merge #259 : guard the REST route inventory against drift (#252 )
Dai Ha
2026-09-03 15:56:15 +07:00
eb568ff451
fleetd #252 : guard test for the REST route inventory
worker/fleetd-252-a830e0-3
Dai Ha
2026-09-03 15:54:45 +07:00
ac790e4cce
#258 : stop two test fixtures writing the operator's real ~/.claude.json
Dai Ha
2026-09-03 14:01:45 +07:00
6b5f3f472f
Merge #111 : the credential probe reads the policy instead of copying it
Dai Ha
2026-09-03 13:30:57 +07:00
38dec72152
Merge #155 : refuse the spawn when allow-list policy cannot be enforced
Dai Ha
2026-09-03 13:28:18 +07:00
0e8bfb74fc
Merge #176 stage 2: group subscription profiles by account, not by name
Dai Ha
2026-09-03 13:20:22 +07:00
51f7b0a3ca
fleetd #111 : probe reads the live memberCredentials policy, no hardcoded name list
worker/fleetd-111-7e8673-9
Dai Ha
2026-09-03 13:21:35 +07:00
21c539f22e
#113 : derive the config guard from the record tree, both directions
Dai Ha
2026-09-03 13:18:50 +07:00
bd2774b5f1
fleetd #155 : refuse a member spawn under memberCredentials.policy=allow-list on a non-zsh shell
worker/fleetd-155c-f8ef4b-8
Dai Ha
2026-09-03 13:13:23 +07:00
c50f5b2d61
fleetd #176 stage 2: make effectiveCredentialId() subscription-aware
worker/fleetd-176-b928ca-3
Dai Ha
2026-09-03 13:10:10 +07:00
01a840cc14
#248 follow-up: drive the real backendErrorSink, not a copy of it
Dai Ha
2026-09-03 13:06:11 +07:00
c4deef08be
fleetd #249 : withhold agentSessionId when the cwd is not a provisioned worktree
Dai Ha
2026-09-03 12:55:29 +07:00
c796eac09c
fleetd #176 : subtract the lead's own subscription seat from free
Dai Ha
2026-09-03 12:55:08 +07:00
e897e5257b
fleetd #114 : delete the drifted tool catalogue, keep the flows, guard the names
Dai Ha
2026-09-03 12:52:12 +07:00
2afa3652bb
fleetd #249 : withhold agentSessionId for a non-provisioned opencode cwd
worker/fleetd-249-7a7878-2
Dai Ha
2026-09-03 12:51:56 +07:00
80092ff359
fleetd #247 : stop writing a trust key Claude Code strips on every save
Dai Ha
2026-09-03 12:41:20 +07:00
9d37f3aa29
fleetd #201 : the coverage line must name the key its caller actually means
Dai Ha
2026-09-03 12:29:27 +07:00
eaf89abaf6
fleetd #248 : make Fleetd's CompletionResolver wiring provable
Dai Ha
2026-09-03 12:22:32 +07:00
d895f02bc1
fleetd #248 : prove main() wires CompletionResolver's arguments, not just the class
worker/cb248-composition-root-b-9acdf7-15
Dai Ha
2026-09-03 12:20:28 +07:00
43206cac2f
fleetd #148 point 2: drop .envrc from the default parity overlay
Dai Ha
2026-09-03 12:03:21 +07:00
8bba3a8184
fleetd #148 (point 2): drop .envrc from the default parityOverlay
worker/cb148-envrc-default-fa6c82-12
Dai Ha
2026-09-03 12:00:13 +07:00
5cf3ca9a89
fleetd #241 : never hand the lead back its own brief as the member's report
Dai Ha
2026-09-03 11:54:06 +07:00
ac474981e4
fleetd #201/#227 Unit 5: wire the backend-error cool-off into config, placement and the MCP surface
Dai Ha
2026-09-03 11:48:42 +07:00
ba04b2359b
fleetd #201/#227 unit 5: wire errorPattern, cool-off spawn gate, and fleet views
worker/cb201-unit5-wiring-6c12e6-8
Dai Ha
2026-09-03 11:45:11 +07:00
2e5b63f6f6
fleetd #149 : seed the workspace-trust entry before a claude-code spawn
Dai Ha
2026-09-03 11:44:03 +07:00
3437d6313d
fleetd #241 : bound the echo match so a real report is never swallowed
worker/cb241-fallback-echo-1175e9-11
Dai Ha
2026-09-03 11:39:11 +07:00
743377d6cd
fleetd #149 review round 2: make the trust-dialog seed atomic and lock-protected
worker/cb149-trust-dialog-2392a5-9
Dai Ha
2026-09-03 11:38:10 +07:00
5952d559c7
fleetd #134 point 3: tell the lead which files a worktree neutralizes
Dai Ha
2026-09-03 11:32:03 +07:00
205ad823b0
fleetd #134 : make tool-surface neutralization visible to the daemon and the worker
Dai Ha
2026-09-03 11:31:24 +07:00
d654ccb818
fleetd #134 : make tool-surface neutralization visible to the daemon and the worker
worker/cb134-148-overlay-visible-c9b986-10
Dai Ha
2026-09-03 11:24:41 +07:00
a89dcc9b7e
fleetd #149 : seed the workspace-trust entry before a claude-code spawn
Dai Ha
2026-09-03 11:23:06 +07:00
0d7b4fb026
fleetd #134 + #148 point 3: make the parity overlay say what it did
Dai Ha
2026-09-03 11:14:21 +07:00
321d8dcbb5
fleetd #241 : suppress echoed fallback briefs
Dai Ha
2026-09-03 11:10:48 +07:00
ef8c97871e
fleetd #134/#148 point 3: make overlayParity's copy and skip-worktree visible
Dai Ha
2026-09-03 11:09:50 +07:00
26bafe824b
fleetd #201/#227 unit 1: classify a backend error at the scrape
Dai Ha
2026-09-03 10:52:09 +07:00
838a701109
fleetd #234 : carry the profile hint to the exhaustion sink
Dai Ha
2026-09-03 10:52:01 +07:00
e5eb3534c7
fleetd #201/#227 unit 3: lead outage nudge
Dai Ha
2026-09-03 10:49:25 +07:00
959c83534f
fleetd #201/#227 unit 2: credential outage policy
Dai Ha
2026-09-03 10:49:10 +07:00
31b028e860
fleetd #234 round 4: invert ExhaustionSink's abstract method so the bug class is unrepresentable
worker/cb234-session-id-keyed-04e1fc-1
Dai Ha
2026-09-03 10:46:27 +07:00
7840e9adf6
CB-201: make unmapped target notice truthful
worker/cb201-unit3-nudge-abdf5c-6
Dai Ha
2026-09-03 10:44:18 +07:00
c3672f5472
fleetd #201/#227 unit 4: durable BACKEND_ERROR member outcome
Dai Ha
2026-09-03 10:43:58 +07:00
cf54aed451
CB-201 unit 2 review fix: threshold counts distinct targets, not raw events
worker/cb201-unit2-policy-c1102c-5
Dai Ha
2026-09-03 10:42:37 +07:00
bbf68f3e3c
CB-201: cover losing completion CAS
worker/cb201-unit4-outcome-a13bfa-7
Dai Ha
2026-09-03 10:35:36 +07:00
776743cbe2
fleetd#201 Unit 1: typed backend-error classification in CompletionResolver
worker/cb201-unit1-classifier-91b9b1-4
Dai Ha
2026-09-03 10:33:59 +07:00
826e0aeb2a
CB-201 unit 2: credential-keyed backend outage policy
Dai Ha
2026-09-03 10:30:40 +07:00
c935b181dd
fleetd #234 round 3: make ExhaustionSink's forwarder a shared factory, not a rebuilt-per-caller shape
Dai Ha
2026-09-03 10:30:37 +07:00
ee932fd85b
CB-201: nudge leads about backend outages
Dai Ha
2026-09-03 10:28:51 +07:00
fe2e5ede34
CB-201: retain backend failure outcome
Dai Ha
2026-09-03 10:26:54 +07:00
c325054242
fleetd #234 round 2: fix the ExhaustionSink forwarding hop Fleetd.java actually uses
Dai Ha
2026-09-03 10:22:31 +07:00
7662e2d0c8
fleetd #201/#227: refine backend outage work
Dai Ha
2026-09-03 10:05:45 +07:00
4877992a70
fleetd #234 : key the opencode model check on the resolved session id, and make the spawn-time quarantine actually happen
Dai Ha
2026-09-03 10:09:26 +07:00
7aa45b234b
fleetd #201/#227: refine backend outage work
worker/cb201-227-refine-831980-3
Dai Ha
2026-09-03 10:05:45 +07:00
1c051c4e47
fleetd #115 : a profile that needs no token no longer warns, and no longer crashes
ltms
2026-09-03 05:02:27 +02:00
adb7a67880
CB-612: support tokenless Claude Code profiles
Dai Ha
2026-09-03 09:59:21 +07:00
723fe494e9
CB-612: suppress unneeded token warnings
Dai Ha
2026-09-03 09:50:49 +07:00
0f08b93659
fleetd #176 : spawn gate fails fast on a dead backend, and refines UNKNOWN safely
ltms
2026-09-03 04:20:23 +02:00
432c1d92d1
fleetd #176 review: cover the namePrefix guard, the adapter-refinement corroboration that had no test
Dai Ha
2026-09-03 09:17:10 +07:00
60b7e67b42
fleetd #176 : fail fast when the spawn gate's backend exits mid-wait, and safely refine its UNKNOWN status
Dai Ha
2026-09-03 09:10:49 +07:00
3fbd43fe3f
fleetd #175 : read back the model opencode actually resolved, and quarantine a silent substitution
ltms
2026-09-02 13:01:33 +02:00
32ebf065ac
fleetd #175 review: a missing providerID in opencode's model JSON is UNKNOWN, not a mismatch
worker/cb175-model-readback-0f085f-1
Dai Ha
2026-09-02 17:59:04 +07:00
1178b3f684
fleetd #175 : check opencode's actual model against the profile, quarantine on a real mismatch
Dai Ha
2026-09-02 17:53:59 +07:00
2a434ced2f
fleetd #222 : keep the member's charter file out of fleetd's own java.io.tmpdir
ltms
2026-09-02 02:56:36 +02:00
cc919aa2b6
fleetd #226 : reserve an architect slot before launch, so no member runs on a charter it will not hold
ltms
2026-09-02 02:54:52 +02:00
6417b0edd9
fleetd#222: fix currentUserGroup() to resolve the real primary group (fleetd#225)
worker/cb222-charter-tmpdir-17f013-1
Dai Ha
2026-09-02 07:54:11 +07:00
39c7ce76f3
fleetd #224 + #225 : make worktreeRoot group-traversable, and stop two tests depending on the checkout location
ltms
2026-09-02 02:52:12 +02:00
b40f477210
#226 retain architect fallback coverage
worker/cb226-architect-slot-race-cd3aa8-3
Dai Ha
2026-09-02 07:50:34 +07:00
5c56cb347f
fleetd #224 / #225 : share worktreeRoot with the group, and fix the group-detection test helper
worker/cb224-worktree-root-group-024523-2
Dai Ha
2026-09-02 07:47:13 +07:00
e694deace3
#226 reserve architect slots before launch
Dai Ha
2026-09-02 07:44:41 +07:00
748367b7d6
fleetd#222: put the claude-code charter file where the member can read it
Dai Ha
2026-09-02 07:44:34 +07:00
dcf5fb3be3
Merge pull request 'CB-619 / fleetd #123 : refuse an architect spawn with no matching slot' (#223 ) from worker/cb-123-role-demotion-c600f7-2 into main
ltms
2026-09-01 10:41:47 +02:00
f9d2ee2a2b
Merge pull request 'fleetd#219: fix OpenCodeLauncher config/discovery roots under memberHerdrSocket' (#221 ) from worker/cb-219-opencode-roots-1f677e-1 into main
ltms
2026-09-01 10:33:04 +02:00
866c7f2e9a
CB-619 / fleetd #123 : refuse an architect spawn with no matching slot
worker/cb-123-role-demotion-c600f7-2
Dai Ha
2026-09-01 15:29:39 +07:00
d9168de43e
fleetd#219: OpenCodeLauncher config/discovery roots must not assume fleetd's own filesystem
worker/cb-219-opencode-roots-1f677e-1
Dai Ha
2026-09-01 14:38:48 +07:00
c3fa1136d4
#220 : keep the launch command inside the pane's 1024-byte line
Dai Ha
2026-09-01 14:11:28 +07:00
cabcd87b66
#211 follow-up: the raw-scrape fallback must carry the pane, not just the matched line
Dai Ha
2026-09-01 13:26:05 +07:00
bf0e09b1a2
#214 : mint a session id on every claude-code spawn, so every member is resumable
Dai Ha
2026-09-01 13:23:32 +07:00
e1eb50ce65
#213 : fix ZDOTDIR credential scrub gate + directory under memberHerdrSocket
Dai Ha
2026-09-01 13:23:32 +07:00
049e7d9d54
fleetd#211: classify BACKEND_EXHAUSTED/BACKEND_ERROR from the raw scrape as a fallback
Dai Ha
2026-09-01 13:23:32 +07:00
ff3b49cd1e
#214 : mint a session id on every claude-code spawn, so every member is resumable
worker/cb214-claude-session-id-b9eab4-4
Dai Ha
2026-09-01 11:27:10 +07:00
0373b6c41b
#213 : fix ZDOTDIR credential scrub gate + directory under memberHerdrSocket
worker/cb213-zdotdir-wrong-process-dd6de4-3
Dai Ha
2026-09-01 11:07:11 +07:00
445a45f6e1
fleetd#211: classify BACKEND_EXHAUSTED/BACKEND_ERROR from the raw scrape as a fallback
worker/cb211-exhaustion-classification-9546e0-2
Dai Ha
2026-09-01 10:50:10 +07:00
966c58a3b8
#137 : don't hand one stranded reply to every open async ticket (#215 )
Dai Ha
2026-08-31 23:23:07 +07:00
de026b8f8a
#137 follow-up: document defect-1 and defect-2 reachability, drop unconstructible test
worker/cb137-ambiguous-task-4df3d8-4
Dai Ha
2026-08-31 23:17:50 +07:00
97f6c33a45
#137 : don't guess when a target has more than one open async task
Dai Ha
2026-08-31 22:46:23 +07:00