Skip to content

feat(host): deliver //action:* via an on_action callback (#25)#27

Merged
CameronBrooks11 merged 1 commit into
mainfrom
feat/on-action-callback
Jun 28, 2026
Merged

feat(host): deliver //action:* via an on_action callback (#25)#27
CameronBrooks11 merged 1 commit into
mainfrom
feat/on-action-callback

Conversation

@CameronBrooks11

Copy link
Copy Markdown
Member

Closes #25.

Board-initiated //action: messages (M600 filament change, runout, LCD pause → //action:pause/paused/resume/cancel/prompt) were parsed (MarlinResponseKind.ACTION) then dropped in _await_terminal (non-terminal, no collect). Add an opt-in on_action callback fired whenever an ACTION line is seen during send()/query()/stream().

Delivery only (app-neutral, no forced policy). Needed by the fiberpath machine cutover (fiberpath/fiberpath#195). 3 FakeTransport tests (send + stream); 115 pass, just check clean. (A real //action needs a powered M600/runout scenario — deferred to a 12V hardware session.)

Board-initiated host actions (//action:pause/paused/resume/cancel/prompt
— M600, runout, LCD pause) were parsed as MarlinResponseKind.ACTION then
silently dropped in _await_terminal (non-terminal, no collect). A host
that cannot see them can't react. Add an opt-in on_action callback fired
whenever an ACTION line is seen during send()/query()/stream(), before
the collect fall-through. Delivery only — no forced policy; auto-honoring
pause/resume/cancel can follow.

Covered by FakeTransport unit tests (send + stream paths).
@CameronBrooks11
CameronBrooks11 merged commit 9098924 into main Jun 28, 2026
5 checks passed
@CameronBrooks11
CameronBrooks11 deleted the feat/on-action-callback branch June 28, 2026 01:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(host): deliver //action:* messages via an on_action callback

1 participant