Small fixes: core #762

Open
opened 2026-10-08 04:50:35 +00:00 by claude · 4 comments
Member
  • ci-gate prints "CI is still running" when the poll window ends on an OtherHead reading — when a poll window ends on an OtherHead reading, finish prints "CI is still running for ", but the gate is waiting for the forge to report the head (core/model/CiGate.scala:367). phase-merge has the same text. Found in IW-690 (risk 4 of its analysis).
- [ ] ci-gate prints "CI is still running" when the poll window ends on an OtherHead reading — when a poll window ends on an `OtherHead` reading, `finish` prints "CI is still running for <pr>", but the gate is waiting for the forge to report the head (`core/model/CiGate.scala:367`). `phase-merge` has the same text. Found in IW-690 (risk 4 of its analysis).
Author
Member

From IW-707 follow-ups:

  • PhaseAdvanceHarnessTest repeats the assertWarned check that is private to CiGateHarnessTest; move it to shared test support — core/test/PhaseAdvanceHarnessTest.scala:347-356, core/test/CiGateHarnessTest.scala:779.
From IW-707 follow-ups: - [ ] `PhaseAdvanceHarnessTest` repeats the `assertWarned` check that is private to `CiGateHarnessTest`; move it to shared test support — `core/test/PhaseAdvanceHarnessTest.scala:347-356`, `core/test/CiGateHarnessTest.scala:779`.
Author
Member

From IW-712 (review-state card location):

  • WorktreeKeyResolver.fromFlagOrBranch repeats fromArgOrBranch except for the Invalid <flag>: prefix and teamPrefix = None; let one delegate to the other — IW-712 phase 1 review (composition, architecture).
  • The ci-gate --issue-id help text says the key is "for the card's display and the log file names", but log names come from CiLog.fileName(runRef, job.name) — core/commands/CiGateCommand.scala:53, IW-712 phase 1 review (security).
  • ReviewStateLocation.safeSegment accepts control characters, so a --slice or pointer with a newline breaks the one-line stdout of review-state path — core/model/ReviewStateLocation.scala:182, IW-712 phase 1 review (security).
  • Two cardLocations tests and the harness test "write: a pointer for another effort gets the remedy" assert only a prefix/suffix of the error, not the full message or that no card was written — core/test/ReviewStateLocationTest.scala, ReviewStateHarnessTest.scala, IW-712 phase 1 review (testing).
From IW-712 (review-state card location): - [ ] `WorktreeKeyResolver.fromFlagOrBranch` repeats `fromArgOrBranch` except for the `Invalid <flag>:` prefix and `teamPrefix = None`; let one delegate to the other — IW-712 phase 1 review (composition, architecture). - [ ] The ci-gate `--issue-id` help text says the key is "for the card's display and the log file names", but log names come from `CiLog.fileName(runRef, job.name)` — `core/commands/CiGateCommand.scala:53`, IW-712 phase 1 review (security). - [ ] `ReviewStateLocation.safeSegment` accepts control characters, so a `--slice` or pointer with a newline breaks the one-line stdout of `review-state path` — `core/model/ReviewStateLocation.scala:182`, IW-712 phase 1 review (security). - [ ] Two `cardLocations` tests and the harness test "write: a pointer for another effort gets the remedy" assert only a prefix/suffix of the error, not the full message or that no card was written — `core/test/ReviewStateLocationTest.scala`, `ReviewStateHarnessTest.scala`, IW-712 phase 1 review (testing).
Author
Member

Found during IW-513 — three small fixes around the forge-wait start stamp:

  • CiGate formats its wait stamp inline with Instant.ofEpochMilli(...).toString instead of WaitStart.toStamp — core/commands/CiGate.scala:326,347.
  • ForgeWait.Within.startedAtMs duplicates the start held in stampToWrite, and PhasePr ignores it — core/model/ForgeWait.scala:17.
  • The phase-pr "stamp cannot be stored" harness test does not assert that the card holds no forge_wait_started afterwards — core/test/PhasePrHarnessTest.scala:1511-1533.
Found during IW-513 — three small fixes around the forge-wait start stamp: - [ ] `CiGate` formats its wait stamp inline with `Instant.ofEpochMilli(...).toString` instead of `WaitStart.toStamp` — `core/commands/CiGate.scala:326,347`. - [ ] `ForgeWait.Within.startedAtMs` duplicates the start held in `stampToWrite`, and `PhasePr` ignores it — `core/model/ForgeWait.scala:17`. - [ ] The phase-pr "stamp cannot be stored" harness test does not assert that the card holds no `forge_wait_started` afterwards — `core/test/PhasePrHarnessTest.scala:1511-1533`.
Author
Member

Intake: needs-human
Workflow: waterfall
Reason: G7 a standing [fix] finding of the final review (items 7-9: WaitStart and the inline stamps are already on main; only WaitStart.toStamp is new on IW-513); also G8 waits for IW-513 (PR #782) for items 7-9
Analysis: project-management/issues/IW-762/analysis.md on branch IW-762

Intake: needs-human Workflow: waterfall Reason: G7 a standing [fix] finding of the final review (items 7-9: `WaitStart` and the inline stamps are already on main; only `WaitStart.toStamp` is new on IW-513); also G8 waits for IW-513 (PR #782) for items 7-9 Analysis: project-management/issues/IW-762/analysis.md on branch IW-762
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
iterative-works/iw-cli#762
No description provided.