When is a move considered complete in xiangqi?
These answers restate the rules implemented by our open-source engine, which follows the WXF laws and is regression-tested against the official 110-diagram repetition casebook. Where an answer refers to a specific position, that position lives on the linked reference page, where the build verifies it against the engine before publishing.
Direct answer
In over-the-board formal play, a move is complete the moment your hand releases the piece on its destination point; adjusting a piece without releasing does not count as moving it, provided you announced the adjustment first. Online, a move is complete the instant it is submitted, and there is no equivalent grace period for hovering.
Why the release matters
It is the dividing line for touch-move: touching a piece obliges you to move it if it has a legal move, but you are not committed to a specific destination until you let go. This is exactly why announcing "I adjust" (or the local equivalent) before touching a piece you only want to straighten matters so much, and it is a separate question from whether a completed move can later be taken back (it cannot).
Why online play differs
There is no physical release to mark the boundary, so the client's submission is the rule instead. Drag-and-drop interfaces, click-to-move interfaces and premove features all define "submitted" slightly differently, which is worth checking on any server before you rely on changing your mind mid-drag.
Related questions
Can I change a move before releasing the piece?
Yes, in formal over-the-board play, as long as you have not let go of it.
Does a premove online count as complete before it is your turn?
It commits the moment your turn arrives and the move is legal; if it is illegal by then, it is simply not played.