This website requires JavaScript.
325d0771a4
fleetd #480 Unit B: add handover skill for lead session handoff
worker/480-b-handover-skill-45bf1f-5
Dai Ha
2026-09-11 06:13:49 +07:00
7b97aae85b
docs: move the redeploy procedure out of CLAUDE.md into a skill
Dai Ha
2026-09-11 05:48:06 +07:00
49a404ddf3
Merge #474 follow-up: pin main's ConfigRef wiring against the surviving mutation
Dai Ha
2026-09-10 20:50:13 +07:00
72d6a6878b
fleetd #474 follow-up: pin main's config wiring against M2
worker/474-followup-source-pin-f54a55-17
Dai Ha
2026-09-10 20:48:05 +07:00
4466ee0ef2
fleetd #474 : ConfigRef.reload() runs the charter tool-surface gate too
Dai Ha
2026-09-10 20:25:23 +07:00
97e4c1d658
fleetd #474 : ConfigRef.reload() runs the charter tool-surface gate too
worker/474-charter-check-on-reload-f54a55-17
Dai Ha
2026-09-10 20:25:23 +07:00
25ba7f16bb
Merge #473 : fleet_profiles and fleet_list report which attempt a quarantine is on (fleetd #466 item 2)
Dai Ha
2026-09-10 20:21:14 +07:00
5ba69c9cf2
fleetd #393 : correct a comment that claimed two tests pin a call they cannot
Dai Ha
2026-09-10 20:15:22 +07:00
17052bb515
Merge #471 : seeded skills reach an opencode member, and instructions[] stops depending on write order (fleetd #393 )
Dai Ha
2026-09-10 20:17:21 +07:00
435e022560
Merge #471 : seeded skills reach an opencode member, and instructions[] stops depending on write order (fleetd #393 )
Dai Ha
2026-09-10 20:11:57 +07:00
e95ed99bf7
fleetd #466 scope item 2: report the quarantine repeat count, not only the seconds
worker/466-quarantine-repeatcount-report
Dai Ha
2026-09-10 20:09:13 +07:00
1477e4358a
Merge #472 : one canonical tool-name set, and charters are checked against it (fleetd #469 )
Dai Ha
2026-09-10 19:59:03 +07:00
9e4e423ad6
fleetd #393 follow-up: remove the instructions[] writer-ordering hazard
worker/393-opencode-skill-seeding-71854b-13
Dai Ha
2026-09-10 19:58:25 +07:00
6c2d6e93cb
fleetd #469 : one canonical FleetTool set backs registration, authz and charter checks
worker/469-canonical-tool-names-2a472a-16
Dai Ha
2026-09-10 19:55:02 +07:00
789b6a8716
Merge #470 : the exhaustion quarantine escalates instead of retrying flat (fleetd #466 )
Dai Ha
2026-09-10 19:51:00 +07:00
01462c9695
fleetd #466 follow-up: pin main's choice of the escalating quarantine factory
worker/466-quarantine-escalation-5ae9c1-15
Dai Ha
2026-09-10 19:47:59 +07:00
8b4ff78546
Merge #470 : the exhaustion quarantine escalates instead of retrying flat (fleetd #466 )
Dai Ha
2026-09-10 19:40:15 +07:00
d4a2cd720c
fleetd #393 : deliver memberSkills to opencode members, and stop overclaiming seeding success
Dai Ha
2026-09-10 19:37:00 +07:00
5a467e1f8b
fleetd #466 : escalate BackendQuarantine's cooldown on repeated exhaustion
Dai Ha
2026-09-10 19:33:09 +07:00
1fb6176783
Merge #457 : exhaustedPattern goes hot, and the warning names the fix (fleetd #446 )
Dai Ha
2026-09-10 19:14:46 +07:00
49df79203c
Merge #464 : a test that charter text names only registered tools (fleetd #464 )
Dai Ha
2026-09-10 19:10:56 +07:00
235644c0f0
Merge #467 : listFleet's callerIsPrimary default fails closed (fleetd #463 )
Dai Ha
2026-09-10 19:04:51 +07:00
7772b41993
fleetd #446 round 3: extract exhaustionSink and pin its caller (Cell A/B)
worker/446-hot-exhausted-pattern-0af580-6
Dai Ha
2026-09-10 19:00:07 +07:00
eccd0548ce
Merge #465 : state canonical invariant 5 as a purpose, not a banned tool (fleetd #458 )
lead
2026-09-10 18:56:04 +07:00
c4e23eebad
fleetd #464 : guard charter tool names
worker/464-charter-tool-name-guard-a85635-12
Dai Ha
2026-09-10 18:55:16 +07:00
7df503dfc2
fleetd #463 : default listFleet's callerIsPrimary to false, fail closed
worker/463-listfleet-default-fails-open-f1c76c-11
Dai Ha
2026-09-10 18:55:13 +07:00
f5e02fedd6
plans: commit the fleet01 move plan, with today's state measured on the host
Dai Ha
2026-09-10 18:53:11 +07:00
29e7a06c49
fleetd #458 : restate invariant 5 by purpose, not mechanism
worker/458-invariant-5-by-purpose-862f9a-10
Dai Ha
2026-09-10 18:50:41 +07:00
92a96fcbd8
Merge #462 : gate the coordinator row on a named predicate the handler must consult (fleetd #439 )
Dai Ha
2026-09-10 18:40:48 +07:00
13482872bb
contract test: keep the loaded run's passes, discard only its failure
Dai Ha
2026-09-10 18:37:41 +07:00
c1ca6273fc
fleetd #439 : pin the caller at the fleet_list call site, not just the gate
worker/439-coordinator-row-gate-bc032a-8
Dai Ha
2026-09-10 18:28:16 +07:00
5f1b260c81
addendum: the canonical sync check is the lead's, not a member's
Dai Ha
2026-09-10 18:25:32 +07:00
30d6872779
fleetd #446 follow-up: pin the WARNING text and the fleet_profiles model/reason fields
Dai Ha
2026-09-10 18:22:51 +07:00
9d1306d442
Merge #461 : project addendum for the herdr socket carve-out (fleetd #455 )
ltms
2026-09-10 13:18:17 +02:00
e54e3d87ea
fleetd #439 : omit fleet_list's coordinator key for non-primary callers
Dai Ha
2026-09-10 18:16:48 +07:00
bf027f10b9
#455 : document herdr test socket exception
Dai Ha
2026-09-10 18:13:50 +07:00
3c5873dfe2
fleetd #453 : point the new javadoc at the right javadoc
Dai Ha
2026-09-10 18:05:07 +07:00
e29227d5f4
Merge #456 : document the override obligation on PeerLauncher.defaultProfileFor/place (fleetd #453 )
ltms
2026-09-10 13:04:09 +02:00
45aca9eb3e
fleetd #446 : make exhaustedPattern hot, name the fix in the warning, report it in fleet_profiles
Dai Ha
2026-09-10 18:02:00 +07:00
2af13ab1ff
fleetd #449 : name the decisive cell and the load the claim was measured at
Dai Ha
2026-09-10 17:59:52 +07:00
0788d84be8
fleetd #453 : document the override obligation on PeerLauncher.defaultProfileFor/place
Dai Ha
2026-09-10 17:49:37 +07:00
20c1094cbf
fleetd #449 : say what the timing fix actually proved, not what it assumed
Dai Ha
2026-09-10 17:36:22 +07:00
9011c59b9f
Merge #452 : run the contract tag in CI, fix the stale protocol 14 assertion (fleetd #449 )
ltms
2026-09-10 12:35:10 +02:00
c11ad71ed0
Merge #448 : fleet_ack errors instead of claiming success on a miss (fleetd #437 )
ltms
2026-09-10 12:20:49 +02:00
bdcf285265
Merge #451 : make PeerLauncher.spawn(req, decision) abstract (fleetd #450 )
ltms
2026-09-10 12:16:47 +02:00
d4f93a7b13
fleetd #449 : fix stale herdr protocol 14 javadocs/assertion, diagnose and fix the timing-raced AgentControlContractTest, select contract tests by tag in CI
worker/449-herdr-protocol-576015-4
Dai Ha
2026-09-10 17:14:09 +07:00
cfebc575ea
fleetd #450 : make PeerLauncher.spawn(SpawnRequest, PlacementDecision) abstract
worker/450-abstract-spawn-599e1c-5
Dai Ha
2026-09-10 17:10:44 +07:00
822327eed5
Merge #447 : pin the place()-to-spawn() window PlacementDecision closes (fleetd #444 )
ltms
2026-09-10 12:00:59 +02:00
5289eb509f
fleetd #437 : pin the ack hit/miss contract in the AMQP contract test
worker/437-ack-refuses-177d91-1
Dai Ha
2026-09-10 16:58:55 +07:00
e4c703a51a
fleetd #444 : separate the adapter's fallback default from the decided profile
worker/444-placement-window-feb56a-2
Dai Ha
2026-09-10 16:50:39 +07:00
703a05db41
fleetd #437 : fleet_ack errors instead of claiming success on a miss
Dai Ha
2026-09-10 16:44:08 +07:00
3f036b2a62
fleetd #444 : pin the place()-to-spawn() window PlacementDecision closes
Dai Ha
2026-09-10 16:41:52 +07:00
82fae94c55
Merge #445 : pin every startup report call in Fleetd.main (fleetd #442 )
ltms
2026-09-10 11:30:31 +02:00
b1f34c2e6b
fleetd #442 : drop the unused java.util.List import
Dai Ha
2026-09-10 16:29:56 +07:00
3f807d9f1b
Merge #443 : derive coordinator.heldDurable from queue durability + ack mode (fleetd #440 )
ltms
2026-09-10 11:21:41 +02:00
e70263062c
fleetd #442 : pin startup report calls
Dai Ha
2026-09-10 14:41:10 +07:00
1a1e586b62
Merge #433 : carry the PlacementDecision instead of re-resolving the profile (fleetd #425 )
ltms
2026-09-10 09:35:02 +02:00
c16d118f09
fleetd #440 : derive coordinator.heldDurable from queue durability + ack mode
worker/440-helddurable-derived-d462d7-13
Dai Ha
2026-09-10 14:31:44 +07:00
4b10d02207
fleetd #425 rework round 4: mutation-pinning test for the dropped PlacementDecision
worker/425-rework-placement-resolve-c58ba1-9
Dai Ha
2026-09-10 14:24:14 +07:00
c5fbfdbf4a
Merge main into #425 rework branch (brings #438 held-peer-mail read)
Dai Ha
2026-09-10 14:11:37 +07:00
12cff28abb
Merge #438 : let a lead read its own held peer mail, primary-only (fleetd #421 )
ltms
2026-09-10 09:08:17 +02:00
77a6a7142e
Merge main into #421 branch (brings #434 model-gate observability and #436 fixed-placement cap)
worker/421-lead-peek-held-msgs-cdbad2-10
Dai Ha
2026-09-10 14:06:34 +07:00
9f3671b801
fleetd #425 rework round 3: rewrite prose after #435 made fixed honour maxLoad
Dai Ha
2026-09-10 14:06:10 +07:00
84034b34d1
Merge remote-tracking branch 'origin/main' into worker/425-rework-placement-resolve-c58ba1-9
Dai Ha
2026-09-10 13:56:54 +07:00
1e9b2c9b7e
fleetd #421 : let a lead peek its own held peer mail, primary-only
Dai Ha
2026-09-10 13:54:50 +07:00
5d422f85fa
Merge #436 : make fixed placement honour maxLoad (fleetd #435 )
ltms
2026-09-10 08:54:18 +02:00
ed2027b202
fleetd #435 : make FixedPlacementPolicy honor maxLoad
worker/435-fixed-policy-cap-fe11de-12
Dai Ha
2026-09-10 13:46:06 +07:00
6b0a99b2b7
fleetd #425 rework round 2: stop routedProfileFor's caller re-entering the throwing branch
Dai Ha
2026-09-10 13:42:06 +07:00
6b7caba248
Merge #434 : make the model gate's own state observable
ltms
2026-09-10 08:32:54 +02:00
f8b0d42a5c
fleetd #431 follow-up: profileForSlot's javadoc named a caller that does not exist
Dai Ha
2026-09-10 13:25:19 +07:00
d1e7d71eee
Merge #432 : pin profileForSlot, isSlot and nameForSlot against a live reload
ltms
2026-09-10 08:24:26 +02:00
7fd914df1a
fleetd #422 follow-up: make the model gate's own state observable
worker/422-gate-state-observability-9e79d6-11
Dai Ha
2026-09-10 13:18:52 +07:00
b066eb1903
fleetd #425 rework: resolve acquireWithWorktree through real placement, not a blind pool-first read
Dai Ha
2026-09-10 13:10:30 +07:00
a196d34455
fleetd #431 : pin profileForSlot, isSlot and nameForSlot against a live reload
worker/431-memberregistry-live-readers-cdbad2-10
Dai Ha
2026-09-10 13:06:56 +07:00
051d320ea0
fleetd #425 : fleet_profiles' default and worktree provisioning must read live placement
Dai Ha
2026-09-10 12:23:42 +07:00
766772763f
Merge #428 : revoke the ARCHITECT privilege on reload, not just future spawns
Dai Ha
2026-09-10 12:54:35 +07:00
eab8185d7b
Merge #429 : enforce the models.allow on/off gate at spawn, hot — including under fixed placement
ltms
2026-09-10 07:44:35 +02:00
7f672f0fb8
fleetd #424 : revoke the ARCHITECT privilege on reload, not just future spawns
worker/424-architect-slot-hot-038b41-7
Dai Ha
2026-09-10 12:29:35 +07:00
e2801b9bbc
fleetd #422 follow-up: gate FixedPlacementPolicy on modelOff too
worker/422-model-gate-spawn-c29f48-6
Dai Ha
2026-09-10 12:25:31 +07:00
e1d7ddeabb
fleetd #425 : fleet_profiles' default and worktree provisioning must read live placement
worker/425-default-profile-live-f55534-8
Dai Ha
2026-09-10 12:23:42 +07:00
ea02c7b248
fleetd #422 : enforce the model allow-list on/off state at spawn, hot
Dai Ha
2026-09-10 12:08:18 +07:00
ce74e164c6
fleetd #424 : make architect-slot identity checks read fleet.architects live
Dai Ha
2026-09-10 12:05:18 +07:00
e60f892efd
Merge pull request 'fleetd #415 : split coverage() feature-state wording by pattern fallback semantics' (#423 ) from worker/415-coverage-wording-2cbf9c-5 into main
ltms
2026-09-10 06:57:33 +02:00
ce05886831
fleetd #415 : pin which UnsetMeaning Fleetd pairs with which pattern key
worker/415-coverage-wording-2cbf9c-5
Dai Ha
2026-09-10 11:54:02 +07:00
be123d0ac7
fleetd #415 : split coverage() feature-state wording by pattern-key fallback semantics
Dai Ha
2026-09-10 11:40:32 +07:00
2d09c8b027
Merge pull request 'fleetd #418 : barrier the throw-path push-loop test on state decide() reads' (#419 ) from worker/418-588283-3 into main
ltms
2026-09-10 06:29:23 +02:00
ed54f0224e
Merge pull request 'fleetd #416 : fleet_list must enumerate the STARTUP profile set' (#420 ) from worker/416-3ad1da-1 into main
ltms
2026-09-10 06:27:36 +02:00
8d5bc3ee89
fleetd #416 : fleet_list must enumerate the STARTUP profile set
worker/416-3ad1da-1
Dai Ha
2026-09-10 11:25:56 +07:00
ab0cc71aa4
fleetd #418 : barrier the throw-path push-loop test on state decide() reads
worker/418-588283-3
Dai Ha
2026-09-10 11:24:41 +07:00
4cd9046353
Merge pull request 'fleetd #409 : deterministic test for the #399 completion-stamp ordering race' (#414 ) from worker/deterministic-stamp-race-409-3cb7b6-10 into main
ltms
2026-09-10 04:48:44 +02:00
4e98a74047
fleetd #409 : deterministic test for the #399 completion-stamp ordering race
worker/deterministic-stamp-race-409-3cb7b6-10
Dai Ha
2026-09-10 09:39:08 +07:00
a502ba53e0
Merge #404 : the armed field reads the startup pattern map, both directions pinned
ltms
2026-09-10 04:20:54 +02:00
446cc11d1d
fleetd #404 : pin the armed field's TRUE direction too
worker/armed-reads-live-config-404-ed931f-9
Dai Ha
2026-09-10 09:20:43 +07:00
ddd81fe174
Merge #391 : fleet_reply refuses a lead, and the role argument is now mandatory
ltms
2026-09-10 04:18:36 +02:00
ae74cc081f
Merge #399 : wait on a real completion stamp, not on DONE
ltms
2026-09-10 04:14:29 +02:00
cf8da1d5fa
fleetd #391 : require reply caller role
worker/reply-peer-refusal-391-5a34bd-7
Dai Ha
2026-09-10 09:13:16 +07:00
b8aedeafcb
fleetd #404 : test armed startup map behavior
Dai Ha
2026-09-10 09:13:07 +07:00
3d61af6f6f
Merge #400 : the scrub receipt now measures the blank, not the attempt
Dai Ha
2026-09-10 09:05:30 +07:00
ed99c209ac
Merge #398 : a central allow-list of usable models, with the startup validators pinned
Dai Ha
2026-09-10 09:02:18 +07:00
af4c88d54b
t398: correct two false statements in FleetConfigValidateAllTest
worker/models-allowlist-aa9e9b-3
Dai Ha
2026-09-10 09:01:49 +07:00