Some checks failed
CI / Windows build (push) Has been cancelled
Notes now use the single performant inking engine (PenCanvas) instead of the old ink_canvas, per "all note features on the pen-first canvas". - ink_stroke_adapter: pure InkStroke<->PenStroke bridge (normalize against a logical note page; drop non-freehand shapes/text). Round-trip tested. - pen_palette_widgets: shared M3 ToolButton/PaletteDivider/RoundIconButton so PDF + note editors use identical chrome (PenEditorScreen migrated to them; its private copies deleted). - PenNoteScreen: PenCanvas over a white logical page, undo/redo, title, save -> Note.strokes (+ local OCR for search). Pressure curve, eraser size/mode and palm rejection all inherited from the shared canvas. - Route home (new/open) + search note hits -> PenNoteScreen; remove the now-redundant "Pen Canvas (beta)" spike button; delete the dead old note_editor_screen. Tests: ink_stroke_adapter (5) + pen_note_screen widget (load + commit, 2). flutter analyze: 0 issues. Full suite: 265/265.
1.6 KiB
1.6 KiB
PUA Loop — status (BadNote 整体重构)
Oracle: flutter analyze lib/editor && flutter test → GREEN, exit 0, 145/145.
Delivered this loop (all committed + pushed, 6829076..eedb52d)
P0 completion + P0.5 automatable layer + bonus pure cores:
6829076zoom absolute-snapshot fix + pen streamline (P0/live)a48c0e7input_arbiter (P0 step4)d500872export single-source recipe / R7 (P0 step7)f64e656SaveScheduler tests (P0 step8)eca5141live canvas → revision-gated ui.Picture cache (P0 step3)07b543fPageTileCache DPI-bucketed (P0.5)1a3d106PageStackMetrics windowing (P0.5)6b7cc14PageDocumentSource + fit-to-width glue (P0.5)c03513dPdfrxPageDocumentSource + API source-pin (P0.5 step12/SF4)c31bfd3navigation math current-page/scroll-clamp (P0.5)852eb38双链 link_graph pure core (F7)eedb52dpressure curve floor+gamma (F5)
THE BLOCKER (honest)
The refactor's CRITICAL PATH is device validation, which only the user's Surface can provide and which the plan ITSELF gates on:
- P0 step9: pen/palm/pinch on Surface (build
eedb52d). - P0.5 exit: crisp-at-4× + 60fps profile — no automatable acceptance test exists. The remaining work (page_tile renderer, page_viewport WIDGET, perf bench) is device/GPU-gated; writing it blind = a claim with no acceptance evidence.
Options for the user
- Device-test
eedb52d(zoom/pen/render/export) → I wire the P0.5 pure pieces into the viewport widget and push the P0.5 device gate. - Tell me to keep PRE-BUILDING unwired pure cores (F6 page-map, F8 snippet extraction, more F5/F7) — real + tested, but NOT on the blocked critical path.
- /pua:cancel-pua-loop to end the loop.