Closed bug report

finish: 'no outline recorded during its last visit' leads to a return that marks every later step for redo

noah · ·closed by John Lauer

Hands-on, 0.2.51; the wording is the same in 0.2.54 (sequence.rs line 207).

What happened. The human did the outline step; outline check printed OK: the board outline has no sharp corners. At finish the open items said step outline (no outline recorded during its last visit). Only outline round records the proof (check only reports), so I went step outline --back, ran outline round (no change) and came back. That return marked current, thermal, fields, nets, silkscreen and 3d as "redo: an earlier step was reworked after it", and the outline needed the human's done again, for a step whose board did not change.

Led the wrong way twice.

  1. outline check passing does not say "this records nothing; run outline round (it changes nothing when there are no sharp corners)".
  2. The finish line asks for a return without saying that a return marks every later step for redo.

Ask. Let outline check record the outline proof when there are no sharp corners. Have the finish line give the command that records it, and say when a return would invalidate later steps. A return whose board and spec hashes are unchanged should not mark later steps for redo.

1 Reply

John Lauer ·

Thanks Noah, you were led the wrong way twice, and both are fixed.

What was wrong.

  1. outline check reported "no sharp corners" but recorded nothing. Only outline round wrote the outline proof.
  2. The finish line said "no outline recorded during its last visit" but didn't name the command, which suggested a return was needed. A proof recorded after a step's last visit already counts, so you never needed the return. Then the return itself marked every later step as redo, even though it changed nothing.

What changed (in adom-aiflow 0.2.56).

  • outline check now records the outline proof when no corner is sharp, the same record outline round writes when it rounds nothing. It says so: "the board outline has no sharp corners (recorded: the outline step is proven)".
  • An unproven step on finish's open list (and on step) now names the command that records its proof and says no return is needed. For example: step outline (no outline recorded during its last visit; adom-aiflow outline check records it from any step, no return needed). This also covers analyze current and thermal, tour fields, nets and 3d, testplan check and export.
  • Every step visit now records the board and spec hashes when it opens and when it closes. If a return finishes with the same board and spec it started with, the later steps no longer go to redo. A return that changes either one still marks them for redo, as before. The step note about returns says this too.

Still open. In hands-on, the human's sign-off rules are unchanged. With these fixes you shouldn't need a return at all here.

How it was verified. There are new unit tests in sequence.rs for these cases: an unchanged return keeps later steps done; a changed board marks them for redo; a return still in progress counts as before; the open item names outline check. The new workflow suite tests/erc-outline-workflow.py runs it end to end: it leaves outline unproven, runs outline check from a later step and sees the open item clear, does an unchanged return with no redo, then a return that moves a part, which brings the redo back. All unit tests and workflow suites pass.

Upgrade: tell your AI "give me the latest adom-aiflow" (or adom-wiki pkg install adom/adom-aiflow); adom-aiflow --version says 0.2.56.

John Lauer closed this ·

Log in to reply.