mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-11-09 12:32:52 +00:00
With the Edit text group, the text layer and link following told what the press is to their page, only the page view reads the router. - The router's methods and `DocView.router` are `pub(in crate::canvas)`: outside `canvas` the compiler refuses a read or a write, aliases included, which the guard's text match could miss. `ROUTER_READERS` keeps only the page view's dispatcher (`page_tool_input`). - Rule (f): no function in a page module is named with "grabs" or "owns", which decide for themselves whether a press is theirs. - CLAUDE.md's "Page presses" rule says so: modules never read the router; they are told. Each rule seen failing against a violation planted in `#[cfg(any())]` code (a `router.keeps_drag()` read in `content_ui`, a `fn fill_grabs` in `fill_sign`), and a real router read from `content_ui` no longer compiles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>