PhasePr models the CI wait as two exclusive Booleans guarded at runtime, not as one disposition #569
Labels
No labels
agent-ready
bug
contract
documentation
duplicate
enhancement
good first issue
help wanted
invalid
needs-human
needs-input
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
iterative-works/iw-cli#569
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found while working IW-566.
PhasePrOptionsand itsResolvedform carrybatchandnoWaitas two independent Booleans, but only three of the four combinations are legal. The fourth (--batch --no-wait) is refused by a runtime guard inPhasePr.run, which means the type permits a state the command then rejects, and the guard has to be remembered by anyone who adds a third wait-related flag.PROPOSED FIX. Replace the two Booleans with one sum type naming the three real dispositions — gate only, gate and merge, hand the wait to the caller. The illegal pair becomes unrepresentable and the runtime guard, plus its test, can be deleted.
Not urgent: the guard is tested and correct today. This is about keeping it correct without anyone having to know it exists.
Found during IW-513. Two more items in the same
PhasePrwait-flag code — the resume lines rebuild the CI-wait flags by hand, so they belong with the disposition change:phase-prrepeats only--batchand--no-wait; a non-default--timeout,--poll-intervalor--bodyis lost on resume. — IW-513 FOLLOW-UPS.md--batchand does not useresumeCommand(PhasePr.finish,Unreadablereport: double quotes, not the shell-safe single quotes). — IW-513 FOLLOW-UPS.mdIntake: agent-ready
Workflow: waterfall
Reason: all gates passed
Analysis: project-management/issues/IW-569/analysis.md on branch IW-569
Implement: needs-human
Reason: batch-implement exit 1 — the kanon plugin does not compile against iw-cli core at main: lib/batch/ForgeCatchUp.scala:143 expects Either[String, Option[ForgeState]], but the tracker port on main returns Either[TrackerError, ...] since #778–#780. No phase ran. This blocks every iw-cli item until the plugin is updated, not only this issue.
Release: the implement loop failed this issue for a reason outside it. The kanon plugin did not compile against iw-cli main, because the tracker port now returns TrackerError (iw-cli #778). The plugin fix is dev-docs #484, and iw-cli 0.22.1 carries the core change. The issue goes back to the implement loop.