openpencil/crates
Fini 09e1f5f606 fix(editor): clear agent indicators the instant a design turn stops
Stopping a turn or starting a new chat drops the DesignSession, but the
canvas indicators only cleared when the worker thread next touched its
channel and unwound — which lags seconds behind when the worker is
mid-LLM-call. The breathing borders lingered on a canvas the user had
already moved on from.

Give the host (which owns the turn lifecycle) the indicator epoch:
DesignSession::start mints it (clearing the prior turn at once) and the
session's Drop ends it immediately via end_if_epoch. The worker registers
under the same epoch via Orchestrator::with_indicator_epoch; headless and
test callers pass none and the concurrent path mints its own, so run()'s
signature and the DesignRequest construction sites are untouched.

end_if_epoch clears AND retires the epoch (vs clear_if_epoch which only
clears), so a worker still in its add_frame loop when the turn is stopped
can't re-populate the set under the now-stale epoch. It's epoch-scoped, so
a newer turn that already began is left untouched.
2026-06-10 11:18:38 +08:00
..
op-acp
op-ai
op-ai-skills feat(ai-skills): add shared compose_system_prompt helper 2026-06-07 14:55:21 +08:00
op-app feat(mcp): expand rust editor mcp surface 2026-06-05 22:19:08 +08:00
op-cli fix(ci): handle windows cli paths 2026-06-06 14:26:55 +08:00
op-codegen fix(editor): polish rust ui interactions 2026-06-09 09:55:33 +08:00
op-design-lint
op-editor-core fix(editor): clear agent indicators the instant a design turn stops 2026-06-10 11:18:38 +08:00
op-editor-ui fix(ai): align chat input hit testing with painted text 2026-06-10 00:08:04 +08:00
op-figma fix(ai): read frame image search queries 2026-05-31 00:25:52 +08:00
op-git feat(panels): git-panel commit-detail diff, overflow menu, signature form 2026-06-02 09:42:03 +08:00
op-host-desktop fix(editor): clear agent indicators the instant a design turn stops 2026-06-10 11:18:38 +08:00
op-host-native fix(ai): align chat input hit testing with painted text 2026-06-10 00:08:04 +08:00
op-host-web chore(editor): checkpoint chrome WIP + web picker select-all wiring 2026-06-09 23:27:39 +08:00
op-i18n chore(editor): checkpoint chrome WIP + web picker select-all wiring 2026-06-09 23:27:39 +08:00
op-mcp fix(mcp): exclude debug tools from release builds 2026-06-06 23:16:26 +08:00
op-opmerge
op-orchestrator fix(editor): clear agent indicators the instant a design turn stops 2026-06-10 11:18:38 +08:00
op-pen-loader fix(renderer): prevent fit-content text overlap 2026-06-07 19:11:32 +08:00
op-smoke test(ai): add direct-client headless benchmark harness to op-smoke 2026-06-06 15:45:37 +08:00
wasm-libc-shim feat(mcp): expand rust editor mcp surface 2026-06-05 22:19:08 +08:00
CLAUDE.md