Repository navigation
Conversation
… gone #815 removed the dispatcher, `connect redispatch` and the connector's per-launch hold of connect.json's lock, and left comments that still describe them as live: - handoff.go said a hold can land while the boost is in flight. None can: `connect --hold` sets the marker as a run starts, before any part runs, and `shadow promote` needs the connector stopped. It now says so, and says what a hold beside a running handoff would need beyond the re-check. - setup/private.go named three holders of the policy lock and sized LockWait for the dispatcher's. Only setup holds it now; TryLock has no caller. - ledger_tasks.go, ledger_decisions.go and ledger_admission.go named Dispatcher.launch and `connect redispatch` as the callers that make their served-set checks current. Neither exists; nothing outside tests calls LaunchTask or Redispatch. - ledger.go, intake.go, admission/verdict.go and admission/matrix.go told a person to run `basecamp connect redispatch <id>`. - connect_run.go's served-set reader said "Dispatch"; it now names the handoff and the window #952 asks about. Comments only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
🟢 Approved
The changes are limited to comments, align with current behavior, and have no unresolved review findings.
No open issues 🎉
What changed in this PR
Updates comments left stale by #815’s removal of the connector’s worker side. The changes clarify current handoff and locking behavior without changing runtime behavior.
Changes:
- Clarifies when holds can act and which setup flows hold the policy lock.
- Removes instructions to use the deleted
connect redispatchcommand and identifies former callers. - Documents the handoff’s existing served-set window tracked in #952.
[!TIP]
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or rungh pr ready --undo.
Click "Ready for review" or rungh pr readyto reengage.
| File | Description |
|---|---|
internal/connector/setup/private.go |
Corrects lock-holder and wait-policy comments. |
internal/connector/ledger.go |
Removes obsolete manual retry instructions. |
internal/connector/ledger_tasks.go |
Clarifies the former launch caller’s locking responsibility. |
internal/connector/ledger_decisions.go |
Identifies redispatch’s former caller and locking contract. |
internal/connector/ledger_admission.go |
Updates the revision guard’s rationale. |
internal/connector/intake.go |
Clarifies reliance on automatic blocked-record retries. |
internal/connector/handoff.go |
Corrects hold timing assumptions and explains future concurrency requirements. |
internal/connector/admission/verdict.go |
Removes obsolete redispatch guidance for configuration recovery. |
internal/connector/admission/matrix.go |
Removes the deleted immediate-retry command reference. |
internal/commands/connect_run.go |
Describes the handoff’s unlocked served-set read and known window. |
Review effort: Balanced
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#815 removed the dispatcher,
connect redispatchand the connector's per-launch hold of connect.json's lock. It left comments in ten files that still describe them as live. This PR changes comments only.What the comments claimed and what is true
handoff.go, the post-boost re-checkconnect --holdsets the marker as a run starts, before any part runs (connect_run.go#L331-L339), andshadow promotetakes both instance locks (promote.go#L90-L99).setup/private.go, the policy lockconnect redispatchand the connector'sTryLockper launch.LockWaitis sized for the connector's hold.connect setupand guided setup hold it.TryLockhas no caller.ledger_tasks.go,ledger_decisions.goDispatcher.launchandconnect redispatch'sauthorizedRedispatchmake the served-set checks currentLaunchTaskorLedger.Redispatch.ledger_admission.goconnect redispatchruns beside a live connectorledger.go,intake.go,admission/verdict.go,admission/matrix.gobasecamp connect redispatch <id>"connect_run.go, the served-set readerWhy this matters more than tidiness
The handoff comment is the one that misled. A TLA+ model built from it found two races in the handoff: a hold landing between the line and the close stops the connector, and a hold plus a redispatch during a boost sends a line under the hold. Both reproduced in Go, and both were fixed, before it turned out that no production actor can interleave a hold with a running handoff. The fix was reverted. If a command ever lets a hold or a redispatch act beside a running connector, the corrected comment says what the handoff would then need.
Not in this PR
Ledger.Redispatch,LaunchTask,DropContent,SetHooks,setup.TryLockand the outbox's remaining functions have no production callers (rg;make deadcodedoesn't list the methods). They are candidates for removal, but removing them is a separate call.bin/cipasses.Summary by cubic
Corrects comments in ten files left behind by #815, which removed the dispatcher,
connect redispatch, and the connector's per-launch hold of connect.json's lock. Comments only; no behavior changes.The handoff comment is the one that mattered most: it claimed a hold could land while a boost was in flight, which is no longer possible since
connect --holdsets the marker before any part runs andshadow promoterequires the connector stopped. The corrected comment notes what a hold beside a running handoff would need.setup/private.gonamed three holders of the policy lock; onlyconnect setupholds it now, andTryLockhas no caller.ledger_tasks.go,ledger_decisions.go, andledger_admission.gonamedDispatcher.launchandconnect redispatchas the callers keeping served-set checks current; neither exists.ledger.go,intake.go,admission/verdict.go, andadmission/matrix.gotold operators to runbasecamp connect redispatch <id>, which no longer exists.Written for commit a9f2bf2. Summary will update on new commits.